diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po
index 574fdec665..95a8ff0c60 100644
--- a/InvenTree/locale/de/LC_MESSAGES/django.po
+++ b/InvenTree/locale/de/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-07 13:19+0000\n"
+"POT-Creation-Date: 2021-05-07 13:55+0000\n"
"PO-Revision-Date: 2021-05-06 02:54\n"
"Last-Translator: \n"
"Language-Team: German\n"
@@ -122,7 +122,7 @@ msgstr "Kommentar"
msgid "File comment"
msgstr "Datei-Kommentar"
-#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908
+#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/stock.js:1041
msgid "User"
@@ -133,7 +133,7 @@ msgid "upload date"
msgstr "Hochladedatum"
#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101
-#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27
+#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27
#: report/models.py:179 templates/InvenTree/search.html:137
#: templates/InvenTree/search.html:289 templates/js/part.js:110
#: templates/js/part.js:553 templates/js/stock.js:944
@@ -141,8 +141,8 @@ msgid "Name"
msgstr "Name"
#: InvenTree/models.py:114 build/models.py:134
-#: build/templates/build/detail.html:21 company/models.py:342
-#: company/models.py:494 company/templates/company/detail.html:27
+#: build/templates/build/detail.html:21 company/models.py:339
+#: company/models.py:491 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:108
@@ -387,21 +387,20 @@ msgstr "Zieldatum für Bauauftrag-Fertigstellung."
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:123
-#: build/templates/build/detail.html:31 common/models.py:703
+#: build/templates/build/detail.html:31 common/models.py:705
#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261
-#: order/forms.py:278 order/models.py:603 order/models.py:794
+#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262
+#: order/forms.py:279 order/models.py:603 order/models.py:804
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:175
#: order/templates/order/sales_order_detail.html:70
#: order/templates/order/sales_order_detail.html:77
#: order/templates/order/sales_order_detail.html:159
#: order/templates/order/sales_order_detail.html:224 part/forms.py:342
-#: part/forms.py:371 part/forms.py:387 part/models.py:2178
+#: part/forms.py:371 part/forms.py:387 part/models.py:2216
#: part/templates/part/allocation.html:19
#: part/templates/part/allocation.html:53
-#: part/templates/part/part_pricing.html:11
-#: part/templates/part/part_pricing.html:18
+#: part/templates/part/part_pricing.html:13
#: part/templates/part/sale_prices.html:85
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -423,7 +422,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:233 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:234 stock/forms.py:118
msgid "Serial Numbers"
msgstr "Seriennummer"
@@ -526,7 +525,7 @@ msgstr "Bauauftragsreferenz"
#: build/models.py:127 order/models.py:99 order/models.py:605
#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:219 part/models.py:2187
+#: order/templates/order/sales_order_detail.html:219 part/models.py:2225
#: 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:565 templates/js/build.js:1008
@@ -548,16 +547,16 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
#: build/models.py:152 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:118
-#: build/templates/build/detail.html:26 company/models.py:688
-#: order/models.py:647 order/models.py:679
+#: build/templates/build/detail.html:26 company/models.py:622
+#: order/models.py:647 order/models.py:680
#: order/templates/order/order_wizard/select_parts.html:30
#: order/templates/order/purchase_order_detail.html:131
#: order/templates/order/receive_parts.html:19
#: order/templates/order/sales_order_detail.html:207 part/models.py:321
-#: part/models.py:1876 part/models.py:1888 part/models.py:1906
-#: part/models.py:1981 part/models.py:2077 part/models.py:2162
+#: part/models.py:1914 part/models.py:1926 part/models.py:1944
+#: part/models.py:2019 part/models.py:2115 part/models.py:2200
#: part/templates/part/part_app_base.html:8
-#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29
+#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
@@ -683,13 +682,13 @@ msgid "Link to external URL"
msgstr "Link zu einer externen URL"
#: build/models.py:261 build/templates/build/navbar.html:53
-#: company/models.py:135 company/models.py:501
+#: company/models.py:132 company/models.py:498
#: company/templates/company/navbar.html:70
#: company/templates/company/navbar.html:73 order/models.py:123
#: order/models.py:607 order/templates/order/po_navbar.html:29
#: order/templates/order/po_navbar.html:32
#: order/templates/order/purchase_order_detail.html:209
-#: order/templates/order/sales_order_detail.html:264
+#: order/templates/order/sales_order_detail.html:272
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:871
#: part/templates/part/navbar.html:128
@@ -739,11 +738,11 @@ msgstr "Ausgewähltes BestandsObjekt nicht Stückliste für Teil '{p}' gefunden"
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:1172 order/models.py:768
+#: build/models.py:1172 order/models.py:778
msgid "StockItem is over-allocated"
msgstr "Zu viele BestandsObjekt zugewiesen"
-#: build/models.py:1176 order/models.py:771
+#: build/models.py:1176 order/models.py:781
msgid "Allocation quantity must be greater than zero"
msgstr "Reserviermenge muss größer null sein"
@@ -819,7 +818,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:795
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:797
#: part/templates/part/category.html:127
msgid "Order Parts"
msgstr "Teile bestellen"
@@ -962,7 +961,7 @@ msgid "Progress"
msgstr "Fortschritt"
#: build/templates/build/build_base.html:160
-#: build/templates/build/detail.html:84 order/models.py:677
+#: build/templates/build/detail.html:84 order/models.py:678
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:33
#: order/templates/order/sales_order_ship.html:25
@@ -1355,372 +1354,372 @@ msgstr "Bauobjekt aktualisiert"
msgid "Add Build Order Attachment"
msgstr "Bauauftrags-Anhang hinzufügen"
-#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172
+#: build/views.py:1083 order/views.py:112 order/views.py:164 part/views.py:172
#: stock/views.py:277
msgid "Added attachment"
msgstr "Anhang hinzugefügt"
-#: build/views.py:1119 order/views.py:189 order/views.py:210
+#: build/views.py:1119 order/views.py:191 order/views.py:212
msgid "Edit Attachment"
msgstr "Anhang bearbeiten"
-#: build/views.py:1129 order/views.py:193 order/views.py:214
+#: build/views.py:1129 order/views.py:195 order/views.py:216
msgid "Attachment updated"
msgstr "Anhang aktualisiert"
-#: build/views.py:1139 order/views.py:229 order/views.py:243
+#: build/views.py:1139 order/views.py:231 order/views.py:245
msgid "Delete Attachment"
msgstr "Anhang löschen"
-#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333
+#: build/views.py:1144 order/views.py:237 order/views.py:251 stock/views.py:333
msgid "Deleted attachment"
msgstr "Anhang gelöscht"
-#: common/models.py:56
+#: common/models.py:58
msgid "InvenTree Instance Name"
msgstr "InvenTree Instanzname"
-#: common/models.py:58
+#: common/models.py:60
msgid "String descriptor for the server instance"
msgstr "Kurze Beschreibung der Instanz"
-#: common/models.py:62
+#: common/models.py:64
msgid "Use instance name"
msgstr "Name der Instanz verwenden"
-#: common/models.py:63
+#: common/models.py:65
msgid "Use the instance name in the title-bar"
msgstr "Den Namen der Instanz in der Titelleiste verwenden"
-#: common/models.py:69 company/models.py:97 company/models.py:98
+#: common/models.py:71 company/models.py:94 company/models.py:95
msgid "Company name"
msgstr "Firmenname"
-#: common/models.py:70
+#: common/models.py:72
msgid "Internal company name"
msgstr "interner Firmenname"
-#: common/models.py:75
+#: common/models.py:77
msgid "Base URL"
msgstr "Basis-URL"
-#: common/models.py:76
+#: common/models.py:78
msgid "Base URL for server instance"
msgstr "Basis-URL für dieses Instanz"
-#: common/models.py:82
+#: common/models.py:84
msgid "Default Currency"
msgstr "Standard-Währung"
-#: common/models.py:83
+#: common/models.py:85
msgid "Default currency"
msgstr "Standard-Währung"
-#: common/models.py:89
+#: common/models.py:91
msgid "Download from URL"
msgstr "Von URL herunterladen"
-#: common/models.py:90
+#: common/models.py:92
msgid "Allow download of remote images and files from external URL"
msgstr "Herunterladen von externen Bildern und Dateien von URLs erlaubt"
-#: common/models.py:96
+#: common/models.py:98
msgid "Barcode Support"
msgstr "Bacode-Feature verwenden"
-#: common/models.py:97
+#: common/models.py:99
msgid "Enable barcode scanner support"
msgstr "Barcode-Scanner Unterstützung"
-#: common/models.py:103
+#: common/models.py:105
msgid "IPN Regex"
msgstr "IPN Regex"
-#: common/models.py:104
+#: common/models.py:106
msgid "Regular expression pattern for matching Part IPN"
msgstr "RegEx Muster für die Zuordnung von Teil-IPN"
-#: common/models.py:108
+#: common/models.py:110
msgid "Allow Duplicate IPN"
msgstr "Mehrere Artikel mit gleicher IPN erlaubt"
-#: common/models.py:109
+#: common/models.py:111
msgid "Allow multiple parts to share the same IPN"
msgstr "Mehrere Artikel mit gleicher IPN erlaubt"
-#: common/models.py:115
+#: common/models.py:117
msgid "Allow Editing IPN"
msgstr "Ändern von IPN erlaubt"
-#: common/models.py:116
+#: common/models.py:118
msgid "Allow changing the IPN value while editing a part"
msgstr "Ändern der IPN während des Bearbeiten eines Teils erlaubt"
-#: common/models.py:122
+#: common/models.py:124
msgid "Copy Part BOM Data"
msgstr "Teil-Stückliste kopieren"
-#: common/models.py:123
+#: common/models.py:125
msgid "Copy BOM data by default when duplicating a part"
msgstr "Stückliste von Teil kopieren wenn das Teil dupliziert wird "
-#: common/models.py:129
+#: common/models.py:131
msgid "Copy Part Parameter Data"
msgstr "Teil-Parameter kopieren"
-#: common/models.py:130
+#: common/models.py:132
msgid "Copy parameter data by default when duplicating a part"
msgstr "Parameter-Daten für dieses Teil kopieren wenn das Teil dupliziert wird"
-#: common/models.py:136
+#: common/models.py:138
msgid "Copy Part Test Data"
msgstr "Teil-Testdaten kopieren"
-#: common/models.py:137
+#: common/models.py:139
msgid "Copy test data by default when duplicating a part"
msgstr "Test-Daten für dieses Teil kopieren wenn das Teil dupliziert wird"
-#: common/models.py:143
+#: common/models.py:145
msgid "Copy Category Parameter Templates"
msgstr "Kategorie-Parametervorlage kopieren"
-#: common/models.py:144
+#: common/models.py:146
msgid "Copy category parameter templates when creating a part"
msgstr "Kategorie-Parameter Vorlagen kopieren wenn ein Teil angelegt wird"
-#: common/models.py:150
+#: common/models.py:152
msgid "Recent Part Count"
msgstr "Aktuelle Teile-Stände"
-#: common/models.py:151
+#: common/models.py:153
msgid "Number of recent parts to display on index page"
msgstr "Anzahl der neusten Teile auf der Startseite"
-#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160
+#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160
#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24
#: templates/js/table_filters.js:310
msgid "Template"
msgstr "Vorlage"
-#: common/models.py:158
+#: common/models.py:160
msgid "Parts are templates by default"
msgstr "Teile sind standardmäßig Vorlagen"
-#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170
+#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170
#: templates/js/table_filters.js:123 templates/js/table_filters.js:322
msgid "Assembly"
msgstr "Baugruppe"
-#: common/models.py:165
+#: common/models.py:167
msgid "Parts can be assembled from other components by default"
msgstr "Teile können standardmäßig aus anderen Teilen angefertigt werden"
-#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180
+#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180
#: templates/js/table_filters.js:326
msgid "Component"
msgstr "Komponente"
-#: common/models.py:172
+#: common/models.py:174
msgid "Parts can be used as sub-components by default"
msgstr "Teile können standardmäßig in Baugruppen benutzt werden"
-#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200
+#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr "Kaufbar"
-#: common/models.py:179
+#: common/models.py:181
msgid "Parts are purchaseable by default"
msgstr "Artikel sind grundsätzlich kaufbar"
-#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210
+#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210
#: templates/js/table_filters.js:334
msgid "Salable"
msgstr "Verkäuflich"
-#: common/models.py:186
+#: common/models.py:188
msgid "Parts are salable by default"
msgstr "Artikel sind grundsätzlich verkaufbar"
-#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190
+#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190
#: templates/js/table_filters.js:32 templates/js/table_filters.js:338
msgid "Trackable"
msgstr "Nachverfolgbar"
-#: common/models.py:193
+#: common/models.py:195
msgid "Parts are trackable by default"
msgstr "Artikel sind grundsätzlich verfolgbar"
-#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150
+#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150
#: templates/js/table_filters.js:28
msgid "Virtual"
msgstr "Virtuell"
-#: common/models.py:200
+#: common/models.py:202
msgid "Parts are virtual by default"
msgstr "Teile sind grundsätzlich virtuell"
-#: common/models.py:206
+#: common/models.py:208
msgid "Show Quantity in Forms"
msgstr "zeige Bestand in Eingabemasken"
-#: common/models.py:207
+#: common/models.py:209
msgid "Display available part quantity in some forms"
msgstr "Zeige den verfügbaren Bestand in einigen Eingabemasken"
-#: common/models.py:213
+#: common/models.py:215
msgid "Debug Mode"
msgstr "Entwickler-Modus"
-#: common/models.py:214
+#: common/models.py:216
msgid "Generate reports in debug mode (HTML output)"
msgstr "Berichte im Entwickler-Modus generieren (als HTML)"
-#: common/models.py:220
+#: common/models.py:222
msgid "Page Size"
msgstr "Seitengröße"
-#: common/models.py:221
+#: common/models.py:223
msgid "Default page size for PDF reports"
msgstr "Standardseitenformat für PDF-Bericht"
-#: common/models.py:231
+#: common/models.py:233
msgid "Test Reports"
msgstr "Test-Berichte"
-#: common/models.py:232
+#: common/models.py:234
msgid "Enable generation of test reports"
msgstr "Erstellung von Test-Berichten aktivieren"
-#: common/models.py:238
+#: common/models.py:240
msgid "Stock Expiry"
msgstr "Bestands-Ablauf"
-#: common/models.py:239
+#: common/models.py:241
msgid "Enable stock expiry functionality"
msgstr "Ablaufen von Bestand ermöglichen"
-#: common/models.py:245
+#: common/models.py:247
msgid "Sell Expired Stock"
msgstr "Abgelaufenen Bestand verkaufen"
-#: common/models.py:246
+#: common/models.py:248
msgid "Allow sale of expired stock"
msgstr "Verkauf von abgelaufenem Bestand erlaubt"
-#: common/models.py:252
+#: common/models.py:254
msgid "Stock Stale Time"
msgstr "Bestands-Stehzeit"
-#: common/models.py:253
+#: common/models.py:255
msgid "Number of days stock items are considered stale before expiring"
msgstr "Anzahl an Tagen, an denen Bestand als abgestanden markiert wird, bevor sie ablaufen"
-#: common/models.py:255 part/templates/part/detail.html:121
+#: common/models.py:257 part/templates/part/detail.html:121
msgid "days"
msgstr "Tage"
-#: common/models.py:260
+#: common/models.py:262
msgid "Build Expired Stock"
msgstr "Abgelaufenen Bestand verbauen"
-#: common/models.py:261
+#: common/models.py:263
msgid "Allow building with expired stock"
msgstr "Verbauen von abgelaufenen Bestand erlaubt"
-#: common/models.py:267
+#: common/models.py:269
msgid "Stock Ownership Control"
msgstr "Bestands-Eigentümerkontrolle"
-#: common/models.py:268
+#: common/models.py:270
msgid "Enable ownership control over stock locations and items"
msgstr "Eigentümerkontrolle für Lagerorte und Teile aktivieren"
-#: common/models.py:274
+#: common/models.py:276
msgid "Group by Part"
msgstr "Gruppieren nach Teil"
-#: common/models.py:275
+#: common/models.py:277
msgid "Group stock items by part reference in table views"
msgstr "Bestand in Tabellen anhand von Teil-Referenz gruppieren"
-#: common/models.py:281
+#: common/models.py:283
msgid "Recent Stock Count"
msgstr "aktueller Bestand"
-#: common/models.py:282
+#: common/models.py:284
msgid "Number of recent stock items to display on index page"
msgstr "Anzahl des geänderten Bestands auf der Startseite"
-#: common/models.py:288
+#: common/models.py:290
msgid "Build Order Reference Prefix"
msgstr "Bauauftrag-Referenz Präfix"
-#: common/models.py:289
+#: common/models.py:291
msgid "Prefix value for build order reference"
msgstr "Präfix für Bauauftrag-Referenz"
-#: common/models.py:294
+#: common/models.py:296
msgid "Build Order Reference Regex"
msgstr "Bauauftrag-Referenz RegEx"
-#: common/models.py:295
+#: common/models.py:297
msgid "Regular expression pattern for matching build order reference"
msgstr "RegEx Muster für die Zuordnung von Bauauftrag-Referenzen"
-#: common/models.py:299
+#: common/models.py:301
msgid "Sales Order Reference Prefix"
msgstr "Auftrags-Referenz Präfix"
-#: common/models.py:300
+#: common/models.py:302
msgid "Prefix value for sales order reference"
msgstr "Präfix für Auftrags-Referenz"
-#: common/models.py:305
+#: common/models.py:307
msgid "Purchase Order Reference Prefix"
msgstr "Bestellungs-Referenz Präfix"
-#: common/models.py:306
+#: common/models.py:308
msgid "Prefix value for purchase order reference"
msgstr "Präfix für Bestellungs-Referenz"
-#: common/models.py:529
+#: common/models.py:531
msgid "Settings key (must be unique - case insensitive"
msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)"
-#: common/models.py:531
+#: common/models.py:533
msgid "Settings value"
msgstr "Einstellungs-Wert"
-#: common/models.py:566
+#: common/models.py:568
msgid "Must be an integer value"
msgstr "Nur Ganzzahl eingeben"
-#: common/models.py:589
+#: common/models.py:591
msgid "Value must be a boolean value"
msgstr "Wahrheitswert erforderlich"
-#: common/models.py:600
+#: common/models.py:602
msgid "Value must be an integer value"
msgstr "Nur Ganzzahl eingeben"
-#: common/models.py:623
+#: common/models.py:625
msgid "Key string must be unique"
msgstr "Schlüsseltext muss eindeutig sein"
-#: common/models.py:704 company/forms.py:177
+#: common/models.py:706 company/forms.py:177
msgid "Price break quantity"
msgstr "Preisstaffelungs Anzahl"
-#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82
#: part/templates/part/sale_prices.html:90 templates/js/bom.js:255
msgid "Price"
msgstr "Preis"
-#: common/models.py:713
+#: common/models.py:715
msgid "Unit price at specified quantity"
msgstr "Stückpreis für die angegebene Anzahl"
-#: common/models.py:736
+#: common/models.py:804
msgid "Default"
msgstr "Standard"
@@ -1740,12 +1739,12 @@ msgstr "Angegebener Wert nicht erlaubt"
msgid "Supplied value must be a boolean"
msgstr "Angegebener Wert muss ein Wahrheitswert sein"
-#: company/forms.py:38 company/models.py:145
+#: company/forms.py:38 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
msgstr "Währung"
-#: company/forms.py:39 company/models.py:147
+#: company/forms.py:39 company/models.py:144
msgid "Default currency used for this company"
msgstr "Standard-Währung für diese Firma"
@@ -1765,15 +1764,15 @@ msgstr "Einzelpreis"
msgid "Single quantity price"
msgstr "Preis für eine Einheit"
-#: company/forms.py:128 company/models.py:324
+#: company/forms.py:128 company/models.py:321
msgid "Select manufacturer"
msgstr "Hersteller auswählen"
-#: company/forms.py:134 company/models.py:331
+#: company/forms.py:134 company/models.py:328
msgid "Manufacturer Part Number"
msgstr "Hersteller-Teilenummer"
-#: company/forms.py:136 company/models.py:330
+#: company/forms.py:136 company/models.py:327
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:101
@@ -1783,56 +1782,56 @@ msgstr "Hersteller-Teilenummer"
msgid "MPN"
msgstr "MPN"
-#: company/models.py:102
+#: company/models.py:99
msgid "Company description"
msgstr "Firmenbeschreibung"
-#: company/models.py:103
+#: company/models.py:100
msgid "Description of the company"
msgstr "Firmenbeschreibung"
-#: company/models.py:107 company/templates/company/company_base.html:70
+#: company/models.py:104 company/templates/company/company_base.html:70
#: company/templates/company/detail.html:33 templates/js/company.js:60
msgid "Website"
msgstr "Website"
-#: company/models.py:107
+#: company/models.py:104
msgid "Company website URL"
msgstr "Firmenwebsite Adresse/URL"
-#: company/models.py:110 company/templates/company/company_base.html:77
+#: company/models.py:107 company/templates/company/company_base.html:77
msgid "Address"
msgstr "Adresse"
-#: company/models.py:111
+#: company/models.py:108
msgid "Company address"
msgstr "Firmenadresse"
-#: company/models.py:114
+#: company/models.py:111
msgid "Phone number"
msgstr "Kontakt-Tel."
-#: company/models.py:115
+#: company/models.py:112
msgid "Contact phone number"
msgstr "Kontakt-Telefon"
-#: company/models.py:118 company/templates/company/company_base.html:91
+#: company/models.py:115 company/templates/company/company_base.html:91
msgid "Email"
msgstr "Email"
-#: company/models.py:118
+#: company/models.py:115
msgid "Contact email address"
msgstr "Kontakt-Email"
-#: company/models.py:121 company/templates/company/company_base.html:98
+#: company/models.py:118 company/templates/company/company_base.html:98
msgid "Contact"
msgstr "Kontakt"
-#: company/models.py:122
+#: company/models.py:119
msgid "Point of contact"
msgstr "Anlaufstelle"
-#: company/models.py:124 company/models.py:336 company/models.py:488
+#: company/models.py:121 company/models.py:333 company/models.py:485
#: order/models.py:103 part/models.py:743
#: report/templates/report/inventree_build_order_base.html:165
#: stock/models.py:1556 templates/js/company.js:188 templates/js/company.js:318
@@ -1840,48 +1839,48 @@ msgstr "Anlaufstelle"
msgid "Link"
msgstr "Link"
-#: company/models.py:124
+#: company/models.py:121
msgid "Link to external company information"
msgstr "Link auf externe Firmeninformation"
-#: company/models.py:132 part/models.py:753
+#: company/models.py:129 part/models.py:753
msgid "Image"
msgstr "Bild"
-#: company/models.py:137
+#: company/models.py:134
msgid "is customer"
msgstr "ist Kunde"
-#: company/models.py:137
+#: company/models.py:134
msgid "Do you sell items to this company?"
msgstr "Verkaufen Sie Teile an diese Firma?"
-#: company/models.py:139
+#: company/models.py:136
msgid "is supplier"
msgstr "ist Zulieferer"
-#: company/models.py:139
+#: company/models.py:136
msgid "Do you purchase items from this company?"
msgstr "Kaufen Sie Teile von dieser Firma?"
-#: company/models.py:141
+#: company/models.py:138
msgid "is manufacturer"
msgstr "ist Hersteller"
-#: company/models.py:141
+#: company/models.py:138
msgid "Does this company manufacture parts?"
msgstr "Produziert diese Firma Teile?"
-#: company/models.py:308 company/models.py:459 stock/models.py:373
+#: company/models.py:305 company/models.py:456 stock/models.py:373
#: stock/templates/stock/item_base.html:224
msgid "Base Part"
msgstr "Basisteil"
-#: company/models.py:312 company/models.py:463 order/views.py:1384
+#: company/models.py:309 company/models.py:460 order/views.py:1398
msgid "Select part"
msgstr "Teil auswählen"
-#: company/models.py:323 company/templates/company/detail.html:57
+#: company/models.py:320 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
@@ -1892,15 +1891,15 @@ msgstr "Teil auswählen"
msgid "Manufacturer"
msgstr "Hersteller"
-#: company/models.py:337
+#: company/models.py:334
msgid "URL for external manufacturer part link"
msgstr "Externe URL für das Herstellerteil"
-#: company/models.py:343
+#: company/models.py:340
msgid "Manufacturer part description"
msgstr "Teilbeschreibung des Herstellers"
-#: company/models.py:469 company/templates/company/detail.html:62
+#: company/models.py:466 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:190
#: order/templates/order/order_base.html:92
@@ -1911,70 +1910,70 @@ msgstr "Teilbeschreibung des Herstellers"
msgid "Supplier"
msgstr "Zulieferer"
-#: company/models.py:470
+#: company/models.py:467
msgid "Select supplier"
msgstr "Zulieferer auswählen"
-#: company/models.py:475 company/templates/company/supplier_part_base.html:88
+#: company/models.py:472 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
#: order/templates/order/purchase_order_detail.html:149 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr "SKU (Lagerbestandseinheit)"
-#: company/models.py:476
+#: company/models.py:473
msgid "Supplier stock keeping unit"
msgstr "Lagerbestandseinheit (SKU) des Zulieferers"
-#: company/models.py:482
+#: company/models.py:479
#: company/templates/company/manufacturer_part_base.html:6
#: company/templates/company/manufacturer_part_base.html:19
#: stock/templates/stock/item_base.html:346
msgid "Manufacturer Part"
msgstr "Herstellerteil"
-#: company/models.py:483
+#: company/models.py:480
msgid "Select manufacturer part"
msgstr "Herstellerteil auswählen"
-#: company/models.py:489
+#: company/models.py:486
msgid "URL for external supplier part link"
msgstr "Teil-URL des Zulieferers"
-#: company/models.py:495
+#: company/models.py:492
msgid "Supplier part description"
msgstr "Zuliefererbeschreibung des Teils"
-#: company/models.py:500 company/templates/company/supplier_part_base.html:115
-#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190
+#: company/models.py:497 company/templates/company/supplier_part_base.html:115
+#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr "Notiz"
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "base cost"
msgstr "Basiskosten"
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Mindestpreis"
-#: company/models.py:506 company/templates/company/supplier_part_base.html:108
+#: company/models.py:503 company/templates/company/supplier_part_base.html:108
#: stock/models.py:397 stock/templates/stock/item_base.html:299
#: templates/js/stock.js:667
msgid "Packaging"
msgstr "Verpackungen"
-#: company/models.py:506
+#: company/models.py:503
msgid "Part packaging"
msgstr "Teile-Verpackungen"
-#: company/models.py:508
+#: company/models.py:505 part/models.py:1616
msgid "multiple"
msgstr "Vielfache"
-#: company/models.py:508
+#: company/models.py:505
msgid "Order multiple"
msgstr "Mehrere bestellen"
@@ -2000,7 +1999,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:306
+#: company/templates/company/company_base.html:46 order/views.py:308
msgid "Create Purchase Order"
msgstr "Bestellung anlegen"
@@ -2372,7 +2371,7 @@ msgid "Pricing Information"
msgstr "Preisinformationen ansehen"
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794
-#: part/templates/part/sale_prices.html:17 part/views.py:2636
+#: part/templates/part/sale_prices.html:17 part/views.py:2644
msgid "Add Price Break"
msgstr "Preisstaffel hinzufügen"
@@ -2488,15 +2487,15 @@ msgstr "Neues Zuliefererteil anlegen"
msgid "Delete Supplier Part"
msgstr "Zuliefererteil entfernen"
-#: company/views.py:799 part/views.py:2640
+#: company/views.py:799 part/views.py:2648
msgid "Added new price break"
msgstr "neue Preisstaffel hinzufügt"
-#: company/views.py:855 part/views.py:2684
+#: company/views.py:855 part/views.py:2692
msgid "Edit Price Break"
msgstr "Preisstaffel bearbeiten"
-#: company/views.py:870 part/views.py:2698
+#: company/views.py:870 part/views.py:2706
msgid "Delete Price Break"
msgstr "Preisstaffel löschen"
@@ -2590,11 +2589,11 @@ msgstr "Auftrag-Nummer eingeben"
msgid "Target date for order completion. Order will be overdue after this date."
msgstr "Zieldatum für Auftrags-Fertigstellung."
-#: order/forms.py:235
+#: order/forms.py:236
msgid "Enter stock item serial numbers"
msgstr "Seriennummern für BestandsObjekt eingeben"
-#: order/forms.py:241
+#: order/forms.py:242
msgid "Enter quantity of stock items"
msgstr "Menge der BestandsObjekt eingeben"
@@ -2730,7 +2729,7 @@ msgstr "Position - Referenz"
msgid "Line item notes"
msgstr "Position - Notizen"
-#: order/models.py:633 order/models.py:677
+#: order/models.py:633 order/models.py:678
#: part/templates/part/allocation.html:17
#: part/templates/part/allocation.html:45
msgid "Order"
@@ -2767,39 +2766,50 @@ msgstr "Preis"
msgid "Unit purchase price"
msgstr "Preis pro Einheit"
-#: order/models.py:753 order/models.py:755
+#: order/models.py:687 part/templates/part/navbar.html:95
+#: part/templates/part/part_pricing.html:78
+msgid "Sale Price"
+msgstr "Verkaufspreis"
+
+#: order/models.py:688
+#, fuzzy
+#| msgid "Unit purchase price"
+msgid "Unit sale price"
+msgstr "Preis pro Einheit"
+
+#: order/models.py:763 order/models.py:765
msgid "Stock item has not been assigned"
msgstr "BestandsObjekt wurde nicht zugewiesen"
-#: order/models.py:759
+#: order/models.py:769
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:761
+#: order/models.py:771
msgid "Cannot allocate stock to a line without a part"
msgstr "Kann BestandsObjekt keiner Zeile ohne Teil hinzufügen"
-#: order/models.py:764
+#: order/models.py:774
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Die zugeordnete Anzahl darf nicht die verfügbare Anzahl überschreiten"
-#: order/models.py:774
+#: order/models.py:784
msgid "Quantity must be 1 for serialized stock item"
msgstr "Anzahl für BestandsObjekt mit Seriennummer muss 1 sein"
-#: order/models.py:779
+#: order/models.py:789
msgid "Line"
msgstr "Position"
-#: order/models.py:790
+#: order/models.py:800
msgid "Item"
msgstr "Position"
-#: order/models.py:791
+#: order/models.py:801
msgid "Select stock item to allocate"
msgstr "BestandsObjekt für Zuordnung auswählen"
-#: order/models.py:794
+#: order/models.py:804
msgid "Enter stock allocation quantity"
msgstr "Anzahl für Bestandszuordnung eingeben"
@@ -2957,8 +2967,8 @@ 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:1120
-#: order/views.py:1203
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1122
+#: order/views.py:1205
msgid "Add Line Item"
msgstr "Position hinzufügen"
@@ -2967,11 +2977,12 @@ msgid "No line items found"
msgstr "Keine Positionen gefunden"
#: order/templates/order/purchase_order_detail.html:180
+#: order/templates/order/sales_order_detail.html:229
msgid "Unit Price"
msgstr "Stück-Preis"
#: order/templates/order/purchase_order_detail.html:221
-#: order/templates/order/sales_order_detail.html:294
+#: order/templates/order/sales_order_detail.html:303
msgid "Edit line item"
msgstr "Position bearbeiten"
@@ -3086,36 +3097,49 @@ msgstr "Keine passenden Positionen gefunden"
msgid "ID"
msgstr "ID"
-#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579
+#: order/templates/order/sales_order_detail.html:237 templates/js/build.js:579
#: templates/js/build.js:845
msgid "Allocated"
msgstr "Zugeordnet"
-#: order/templates/order/sales_order_detail.html:231
+#: order/templates/order/sales_order_detail.html:239
msgid "Fulfilled"
msgstr "Erledigt"
-#: order/templates/order/sales_order_detail.html:279
+#: order/templates/order/sales_order_detail.html:287
msgid "Allocate serial numbers"
msgstr "Seriennummern zuweisen"
-#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641
+#: order/templates/order/sales_order_detail.html:290 templates/js/build.js:641
msgid "Allocate stock"
msgstr "Lagerbestand zuweisen"
-#: order/templates/order/sales_order_detail.html:285
+#: order/templates/order/sales_order_detail.html:293
msgid "Purchase stock"
msgstr "Lagerbestand kaufen"
-#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634
+#: order/templates/order/sales_order_detail.html:297 templates/js/build.js:634
#: templates/js/build.js:1052
msgid "Build stock"
msgstr "Lagerbestand bauen"
-#: order/templates/order/sales_order_detail.html:295
+#: order/templates/order/sales_order_detail.html:300
+#: order/templates/order/sales_order_detail.html:409
+#, fuzzy
+#| msgid "Calculate"
+msgid "Calculate price"
+msgstr "Berechnen"
+
+#: order/templates/order/sales_order_detail.html:304
msgid "Delete line item "
msgstr "Position löschen "
+#: order/templates/order/sales_order_detail.html:415
+#, fuzzy
+#| msgid "Unit Price"
+msgid "Update Unit Price"
+msgstr "Stück-Preis"
+
#: order/templates/order/sales_order_notes.html:14
msgid "Sales Order Notes"
msgstr "Auftrags-Positionen"
@@ -3157,170 +3181,192 @@ msgstr "Auftrags-Anhänge"
msgid "Are you sure you wish to delete this line item?"
msgstr "Sind Sie sicher, dass Sie diese Position löschen möchten?"
-#: order/views.py:99
+#: order/views.py:101
msgid "Add Purchase Order Attachment"
msgstr "Bestellungs-Anhang hinzufügen"
-#: order/views.py:149
+#: order/views.py:151
msgid "Add Sales Order Attachment"
msgstr "Auftrags-Anhang hinzufügen"
-#: order/views.py:341
+#: order/views.py:343
msgid "Create Sales Order"
msgstr "Auftrag anlegen"
-#: order/views.py:376
+#: order/views.py:378
msgid "Edit Purchase Order"
msgstr "Bestellung bearbeiten"
-#: order/views.py:396
+#: order/views.py:398
msgid "Edit Sales Order"
msgstr "Auftrag bearbeiten"
-#: order/views.py:412
+#: order/views.py:414
msgid "Cancel Order"
msgstr "Bestellung stornieren"
-#: order/views.py:421 order/views.py:447
+#: order/views.py:423 order/views.py:449
msgid "Confirm order cancellation"
msgstr "Bestellstornierung bestätigen"
-#: order/views.py:424 order/views.py:450
+#: order/views.py:426 order/views.py:452
msgid "Order cannot be cancelled"
msgstr "Bestellung kann nicht verworfen werden"
-#: order/views.py:438
+#: order/views.py:440
msgid "Cancel sales order"
msgstr "Auftrag stornieren"
-#: order/views.py:464
+#: order/views.py:466
msgid "Issue Order"
msgstr "Bestellung aufgeben"
-#: order/views.py:473
+#: order/views.py:475
msgid "Confirm order placement"
msgstr "Bestellungstätigung bestätigen"
-#: order/views.py:483
+#: order/views.py:485
msgid "Purchase order issued"
msgstr "Bestellung plaziert"
-#: order/views.py:494
+#: order/views.py:496
msgid "Complete Order"
msgstr "Auftrag fertigstellen"
-#: order/views.py:510
+#: order/views.py:512
msgid "Confirm order completion"
msgstr "Fertigstellung bestätigen"
-#: order/views.py:521
+#: order/views.py:523
msgid "Purchase order completed"
msgstr "Bestellung als vollständig markieren"
-#: order/views.py:531
+#: order/views.py:533
msgid "Ship Order"
msgstr "Versenden"
-#: order/views.py:547
+#: order/views.py:549
msgid "Confirm order shipment"
msgstr "Versand bestätigen"
-#: order/views.py:553
+#: order/views.py:555
msgid "Could not ship order"
msgstr "Versand fehlgeschlagen"
-#: order/views.py:607
+#: order/views.py:609
msgid "Receive Parts"
msgstr "Teile empfangen"
-#: order/views.py:677
+#: order/views.py:679
msgid "Items received"
msgstr "Anzahl empfangener Positionen"
-#: order/views.py:691
+#: order/views.py:693
msgid "No destination set"
msgstr "Kein Ziel gesetzt"
-#: order/views.py:736
+#: order/views.py:738
msgid "Error converting quantity to number"
msgstr "Fehler beim Konvertieren zu Zahl"
-#: order/views.py:742
+#: order/views.py:744
msgid "Receive quantity less than zero"
msgstr "Anzahl kleiner null empfangen"
-#: order/views.py:748
+#: order/views.py:750
msgid "No lines specified"
msgstr "Keine Zeilen angegeben"
-#: order/views.py:1069
+#: order/views.py:1071
#, python-brace-format
msgid "Ordered {n} parts"
msgstr "{n} Teile bestellt"
-#: order/views.py:1129
+#: order/views.py:1131
msgid "Supplier part must be specified"
msgstr "Zuliefererteil muss ausgewählt werden"
-#: order/views.py:1135
+#: order/views.py:1137
msgid "Supplier must match for Part and Order"
msgstr "Zulieferer muss zu Teil und Bestellung passen"
-#: order/views.py:1254 order/views.py:1272
+#: order/views.py:1268 order/views.py:1286
msgid "Edit Line Item"
msgstr "Position bearbeiten"
-#: order/views.py:1288 order/views.py:1300
+#: order/views.py:1302 order/views.py:1314
msgid "Delete Line Item"
msgstr "Position löschen"
-#: order/views.py:1293 order/views.py:1305
+#: order/views.py:1307 order/views.py:1319
msgid "Deleted line item"
msgstr "Position gelöscht"
-#: order/views.py:1318
+#: order/views.py:1332
msgid "Allocate Serial Numbers"
msgstr "Seriennummern zuweisen"
-#: order/views.py:1363
+#: order/views.py:1377
#, python-brace-format
msgid "Allocated {n} items"
msgstr "{n} Positionen zugeordnet"
-#: order/views.py:1379
+#: order/views.py:1393
msgid "Select line item"
msgstr "Position auswählen"
-#: order/views.py:1410
+#: order/views.py:1424
#, fuzzy, python-brace-format
#| msgid "No matching item for serial"
msgid "No matching item for serial {serial}"
msgstr "Kein passends Teil für Seriennummer gefunden"
-#: order/views.py:1420
+#: order/views.py:1434
#, fuzzy, python-brace-format
#| msgid "is not in stock"
msgid "{serial} is not in stock"
msgstr "ist nicht auf Lager"
-#: order/views.py:1428
+#: order/views.py:1442
#, fuzzy, python-brace-format
#| msgid "already allocated to an order"
msgid "{serial} already allocated to an order"
msgstr "bereits einem Auftrag zugeordnet"
-#: order/views.py:1482
+#: order/views.py:1496
msgid "Allocate Stock to Order"
msgstr "Lagerbestand dem Auftrag zuweisen"
-#: order/views.py:1556
+#: order/views.py:1570
msgid "Edit Allocation Quantity"
msgstr "Zuordnung bearbeiten"
-#: order/views.py:1571
+#: order/views.py:1585
msgid "Remove allocation"
msgstr "Zuordnung entfernen"
+#: order/views.py:1657
+#, fuzzy
+#| msgid "No sales orders found"
+msgid "Sales order not found"
+msgstr "Keine Aufträge gefunden"
+
+#: order/views.py:1663
+#, fuzzy
+#| msgid "Part image not found"
+msgid "Price not found"
+msgstr "Teilbild nicht gefunden"
+
+#: order/views.py:1666
+#, python-brace-format
+msgid "Updated {part} unit-price to {price}"
+msgstr ""
+
+#: order/views.py:1671
+#, python-brace-format
+msgid "Updated {part} unit-price to {price} and quantity to {qty}"
+msgstr ""
+
#: part/bom.py:138 part/models.py:72 part/models.py:762
#: part/templates/part/category.html:66 part/templates/part/detail.html:90
msgid "Default Location"
@@ -3399,7 +3445,7 @@ msgstr "Zulieferer einschließen"
msgid "Include part supplier data in exported BOM"
msgstr "Zulieferer-Daten in Stückliste-Export einschließen"
-#: part/forms.py:122 part/models.py:2077
+#: part/forms.py:122 part/models.py:2115
msgid "Parent Part"
msgstr "Ausgangsteil"
@@ -3475,7 +3521,7 @@ msgstr "Parameter-Vorlage zu Kategorien dieser Ebene hinzufügen"
msgid "Add parameter template to all categories"
msgstr "Parameter-Vorlage zu allen Kategorien hinzufügen"
-#: part/forms.py:344 part/models.py:2171
+#: part/forms.py:344 part/models.py:2209
msgid "Sub part"
msgstr "Untergeordnetes Teil"
@@ -3495,7 +3541,7 @@ 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:2123
+#: part/models.py:82 part/models.py:2161
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Teil-Kategorie"
@@ -3565,7 +3611,7 @@ msgstr "Schlüsselwörter"
msgid "Part keywords to improve visibility in search results"
msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern"
-#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73
+#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73
#: part/templates/part/set_category.html:15 templates/js/part.js:385
msgid "Category"
msgstr "Kategorie"
@@ -3620,7 +3666,7 @@ msgstr "Minimaler Lagerbestand"
msgid "Minimum allowed stock level"
msgstr "Minimal zulässiger Lagerbestand"
-#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106
+#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106
#: part/templates/part/params.html:29
msgid "Units"
msgstr "Einheiten"
@@ -3687,167 +3733,173 @@ msgstr "BOM Kontrolldatum"
msgid "Creation User"
msgstr "Erstellungs-Nutzer"
-#: part/models.py:1949
+#: part/models.py:1616
+#, fuzzy
+#| msgid "multiple"
+msgid "Sell multiple"
+msgstr "Vielfache"
+
+#: part/models.py:1987
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:1966
+#: part/models.py:2004
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:1986 templates/js/part.js:638 templates/js/stock.js:104
+#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104
msgid "Test Name"
msgstr "Test-Name"
-#: part/models.py:1987
+#: part/models.py:2025
msgid "Enter a name for the test"
msgstr "Namen für diesen Test eingeben"
-#: part/models.py:1992
+#: part/models.py:2030
msgid "Test Description"
msgstr "Test-Beschreibung"
-#: part/models.py:1993
+#: part/models.py:2031
msgid "Enter description for this test"
msgstr "Beschreibung für diesen Test eingeben"
-#: part/models.py:1998 templates/js/part.js:647
+#: part/models.py:2036 templates/js/part.js:647
#: templates/js/table_filters.js:222
msgid "Required"
msgstr "benötigt"
-#: part/models.py:1999
+#: part/models.py:2037
msgid "Is this test required to pass?"
msgstr "Muss dieser Test erfolgreich sein?"
-#: part/models.py:2004 templates/js/part.js:655
+#: part/models.py:2042 templates/js/part.js:655
msgid "Requires Value"
msgstr "verpflichtender Wert"
-#: part/models.py:2005
+#: part/models.py:2043
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:2010 templates/js/part.js:662
+#: part/models.py:2048 templates/js/part.js:662
msgid "Requires Attachment"
msgstr "Anhang muss eingegeben werden"
-#: part/models.py:2011
+#: part/models.py:2049
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:2044
+#: part/models.py:2082
msgid "Parameter template name must be unique"
msgstr "Vorlagen-Name des Parameters muss eindeutig sein"
-#: part/models.py:2049
+#: part/models.py:2087
msgid "Parameter Name"
msgstr "Name des Parameters"
-#: part/models.py:2051
+#: part/models.py:2089
msgid "Parameter Units"
msgstr "Einheit des Parameters"
-#: part/models.py:2079 part/models.py:2128 part/models.py:2129
+#: part/models.py:2117 part/models.py:2166 part/models.py:2167
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr "Parameter Vorlage"
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Data"
msgstr "Wert"
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Parameter Value"
msgstr "Parameter Wert"
-#: part/models.py:2133 templates/InvenTree/settings/category.html:67
+#: part/models.py:2171 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr "Standard-Wert"
-#: part/models.py:2134
+#: part/models.py:2172
msgid "Default Parameter Value"
msgstr "Standard Parameter Wert"
-#: part/models.py:2163
+#: part/models.py:2201
msgid "Select parent part"
msgstr "Ausgangsteil auswählen"
-#: part/models.py:2172
+#: part/models.py:2210
msgid "Select part to be used in BOM"
msgstr "Teil für die Nutzung in der Stückliste auswählen"
-#: part/models.py:2178
+#: part/models.py:2216
msgid "BOM quantity for this BOM item"
msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil"
-#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269
+#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269
msgid "Optional"
msgstr "Optional"
-#: part/models.py:2180
+#: part/models.py:2218
msgid "This BOM item is optional"
msgstr "Diese Stücklisten-Position ist optional"
-#: part/models.py:2183
+#: part/models.py:2221
msgid "Overage"
msgstr "Überschuss"
-#: part/models.py:2184
+#: part/models.py:2222
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "Geschätzter Ausschuss (absolut oder prozentual)"
-#: part/models.py:2187
+#: part/models.py:2225
msgid "BOM item reference"
msgstr "Referenz der Postion auf der Stückliste"
-#: part/models.py:2190
+#: part/models.py:2228
msgid "BOM item notes"
msgstr "Notizen zur Stücklisten-Position"
-#: part/models.py:2192
+#: part/models.py:2230
msgid "Checksum"
msgstr "Prüfsumme"
-#: part/models.py:2192
+#: part/models.py:2230
msgid "BOM line checksum"
msgstr "Prüfsumme der Stückliste"
-#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286
+#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286
#: templates/js/table_filters.js:50
msgid "Inherited"
msgstr "Geerbt"
-#: part/models.py:2197
+#: part/models.py:2235
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:2273 part/views.py:1592 part/views.py:1644
+#: part/models.py:2311 part/views.py:1592 part/views.py:1644
#: stock/models.py:260
msgid "Quantity must be integer value for trackable parts"
msgstr "Menge muss eine Ganzzahl sein"
-#: part/models.py:2282 part/models.py:2284
+#: part/models.py:2320 part/models.py:2322
msgid "Sub part must be specified"
msgstr "Zuliefererteil muss festgelegt sein"
-#: part/models.py:2287
+#: part/models.py:2325
msgid "BOM Item"
msgstr "Stücklisten-Position"
-#: part/models.py:2404
+#: part/models.py:2442
msgid "Part 1"
msgstr "Teil 1"
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Part 2"
msgstr "Teil 2"
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Select Related Part"
msgstr "verknüpftes Teil auswählen"
-#: part/models.py:2440
+#: part/models.py:2478
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?"
@@ -4050,7 +4102,7 @@ msgstr "Neuen Bauauftrag beginnen"
msgid "All parts"
msgstr "Alle Teile"
-#: part/templates/part/category.html:29 part/views.py:2282
+#: part/templates/part/category.html:29 part/views.py:2290
msgid "Create new part category"
msgstr "Teil-Kategorie anlegen"
@@ -4309,10 +4361,6 @@ msgstr "Benutzt in"
msgid "Sales Price Information"
msgstr "Preisinformationen ansehen"
-#: part/templates/part/navbar.html:95
-msgid "Sale Price"
-msgstr "Verkaufspreis"
-
#: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr "Teil Test-Vorlagen"
@@ -4447,42 +4495,39 @@ msgstr "Im Bau"
msgid "Calculate"
msgstr "Berechnen"
-#: part/templates/part/part_pricing.html:8
-#, python-format
-msgid "Pricing information for:
%(part)s."
-msgstr "Preisinformationen für:
%(part)s."
-
-#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:19
msgid "Supplier Pricing"
msgstr "Zulieferer-Preise"
-#: part/templates/part/part_pricing.html:27
-#: part/templates/part/part_pricing.html:53
+#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:81
msgid "Unit Cost"
msgstr "Stückpreis"
-#: part/templates/part/part_pricing.html:33
-#: part/templates/part/part_pricing.html:59
+#: part/templates/part/part_pricing.html:29
+#: part/templates/part/part_pricing.html:55
+#: part/templates/part/part_pricing.html:85
msgid "Total Cost"
msgstr "Gesamtkosten"
-#: part/templates/part/part_pricing.html:41
+#: part/templates/part/part_pricing.html:37
msgid "No supplier pricing available"
msgstr "Keine Zulieferer-Preise verfügbar"
-#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:45
msgid "BOM Pricing"
msgstr "Stücklistenpreise"
-#: part/templates/part/part_pricing.html:67
+#: part/templates/part/part_pricing.html:63
msgid "Note: BOM pricing is incomplete for this part"
msgstr "Anmerkung: Stücklistenbepreisung für dieses Teil ist unvollständig"
-#: part/templates/part/part_pricing.html:74
+#: part/templates/part/part_pricing.html:70
msgid "No BOM pricing available"
msgstr "Keine Stücklisten-Preise verfügbar"
-#: part/templates/part/part_pricing.html:84
+#: part/templates/part/part_pricing.html:94
msgid "No pricing information is available for this part."
msgstr "Keine Preise für dieses Teil verfügbar"
@@ -4740,63 +4785,63 @@ msgstr "Teil wurde gelöscht"
msgid "Part Pricing"
msgstr "Teilbepreisung"
-#: part/views.py:2081
+#: part/views.py:2089
msgid "Create Part Parameter Template"
msgstr "Teilparametervorlage anlegen"
-#: part/views.py:2091
+#: part/views.py:2099
msgid "Edit Part Parameter Template"
msgstr "Teilparametervorlage bearbeiten"
-#: part/views.py:2098
+#: part/views.py:2106
msgid "Delete Part Parameter Template"
msgstr "Teilparametervorlage löschen"
-#: part/views.py:2106
+#: part/views.py:2114
msgid "Create Part Parameter"
msgstr "Teilparameter anlegen"
-#: part/views.py:2156
+#: part/views.py:2164
msgid "Edit Part Parameter"
msgstr "Teilparameter bearbeiten"
-#: part/views.py:2170
+#: part/views.py:2178
msgid "Delete Part Parameter"
msgstr "Teilparameter löschen"
-#: part/views.py:2230
+#: part/views.py:2238
msgid "Edit Part Category"
msgstr "Teil-Kategorie bearbeiten"
-#: part/views.py:2268
+#: part/views.py:2276
msgid "Delete Part Category"
msgstr "Teil-Kategorie löschen"
-#: part/views.py:2274
+#: part/views.py:2282
msgid "Part category was deleted"
msgstr "Teil-Kategorie wurde gelöscht"
-#: part/views.py:2326
+#: part/views.py:2334
msgid "Create Category Parameter Template"
msgstr "Kategorieparametervorlage anlegen"
-#: part/views.py:2427
+#: part/views.py:2435
msgid "Edit Category Parameter Template"
msgstr "Kategorieparametervorlage bearbeiten"
-#: part/views.py:2483
+#: part/views.py:2491
msgid "Delete Category Parameter Template"
msgstr "Kategorieparametervorlage löschen"
-#: part/views.py:2502
+#: part/views.py:2510
msgid "Create BOM Item"
msgstr "Stücklisten-Position anlegen"
-#: part/views.py:2572
+#: part/views.py:2580
msgid "Edit BOM item"
msgstr "Stücklisten-Position bearbeiten"
-#: part/views.py:2628
+#: part/views.py:2636
msgid "Confim BOM item deletion"
msgstr "löschen von Stücklisten-Position bestätigen"
@@ -6193,9 +6238,9 @@ msgstr "Mobile App"
msgid "Submit Bug Report"
msgstr "Fehlerbericht senden"
-#: templates/about.html:82 templates/js/modals.js:550
-#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52
-#: templates/modals.html:93
+#: templates/about.html:82 templates/js/modals.js:559
+#: templates/js/modals.js:837 templates/modals.html:29 templates/modals.html:54
+#: templates/modals.html:97
msgid "Close"
msgstr "Schliessen"
@@ -6259,7 +6304,7 @@ msgstr "Server-Fehler"
msgid "Unknown response from server"
msgstr "Unbekannte Antwort von Server erhalten"
-#: templates/js/barcode.js:119 templates/js/modals.js:857
+#: templates/js/barcode.js:119 templates/js/modals.js:892
msgid "Invalid server response"
msgstr "Ungültige Antwort von Server"
@@ -6506,92 +6551,92 @@ msgstr "Label-Vorlage auswählen"
msgid "Waiting for server..."
msgstr "Warte auf Server..."
-#: templates/js/modals.js:406
+#: templates/js/modals.js:415
msgid "Show Error Information"
msgstr "Fehler-Informationen anzeigen"
-#: templates/js/modals.js:473 templates/modals.html:73
+#: templates/js/modals.js:482 templates/modals.html:76
msgid "Accept"
msgstr "Akzeptieren"
-#: templates/js/modals.js:474 templates/modals.html:72
+#: templates/js/modals.js:483 templates/modals.html:75
msgid "Cancel"
msgstr "abbrechen"
-#: templates/js/modals.js:538
+#: templates/js/modals.js:547
msgid "Loading Data"
msgstr "Lade Daten"
-#: templates/js/modals.js:549 templates/js/modals.js:808
-#: templates/modals.html:29 templates/modals.html:53
+#: templates/js/modals.js:558 templates/js/modals.js:836
+#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr "Abschicken"
-#: templates/js/modals.js:760
+#: templates/js/modals.js:788
msgid "Invalid response from server"
msgstr "ungültige Antwort vom Server"
-#: templates/js/modals.js:760
+#: templates/js/modals.js:788
msgid "Form data missing from server response"
msgstr "Formulardaten fehlen bei Serverantwort"
-#: templates/js/modals.js:773
+#: templates/js/modals.js:801
msgid "Error posting form data"
msgstr "Formulardaten fehlerhaft"
-#: templates/js/modals.js:857
+#: templates/js/modals.js:892
msgid "JSON response missing form data"
msgstr "JSON Antwort enthält keine Formulardaten"
-#: templates/js/modals.js:867
+#: templates/js/modals.js:902
msgid "No Response"
msgstr "Keine Antwort"
-#: templates/js/modals.js:868
+#: templates/js/modals.js:903
msgid "No response from the InvenTree server"
msgstr "keine Antwort vom InvenTree Server"
-#: templates/js/modals.js:872
+#: templates/js/modals.js:907
msgid "Error 400: Bad Request"
msgstr "Fehler 400: Ungültige Anfrage"
-#: templates/js/modals.js:873
+#: templates/js/modals.js:908
msgid "Server returned error code 400"
msgstr "Fehler 400 von Server erhalten"
-#: templates/js/modals.js:877
+#: templates/js/modals.js:912
msgid "Error 401: Not Authenticated"
msgstr "Fehler 401: Nicht Angemeldet"
-#: templates/js/modals.js:878
+#: templates/js/modals.js:913
msgid "Authentication credentials not supplied"
msgstr "Authentication Kredentials nicht angegeben"
-#: templates/js/modals.js:882
+#: templates/js/modals.js:917
msgid "Error 403: Permission Denied"
msgstr "Fehler 403: keine Berechtigung"
-#: templates/js/modals.js:883
+#: templates/js/modals.js:918
msgid "You do not have the required permissions to access this function"
msgstr "Fehlende Berechtigung für diese Aktion"
-#: templates/js/modals.js:887
+#: templates/js/modals.js:922
msgid "Error 404: Resource Not Found"
msgstr "Fehler 404: Ressource nicht gefunden"
-#: templates/js/modals.js:888
+#: templates/js/modals.js:923
msgid "The requested resource could not be located on the server"
msgstr "Die angefragte Ressource kann auf diesem Server nicht gefunden werden"
-#: templates/js/modals.js:892
+#: templates/js/modals.js:927
msgid "Error 408: Timeout"
msgstr "Fehler 408: Zeitüberschreitung"
-#: templates/js/modals.js:893
+#: templates/js/modals.js:928
msgid "Connection timeout while requesting data from server"
msgstr "Verbindungszeitüberschreitung bei der Datenanforderung"
-#: templates/js/modals.js:896
+#: templates/js/modals.js:931
msgid "Error requesting form data"
msgstr "Fehler bei Formulardaten-Anfrage"
@@ -7096,7 +7141,7 @@ msgstr "Spalten"
msgid "All"
msgstr "Alle"
-#: templates/modals.html:21 templates/modals.html:46
+#: templates/modals.html:21 templates/modals.html:47
msgid "Form errors exist"
msgstr "Fehler in Formular"
@@ -7351,3 +7396,6 @@ msgstr "Berechtigungen Einträge zu ändern"
#: users/models.py:187
msgid "Permission to delete items"
msgstr "Berechtigung Einträge zu löschen"
+
+#~ msgid "Pricing information for:
%(part)s."
+#~ msgstr "Preisinformationen für:
%(part)s."
diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po
index 4afdd6bfdc..5289ad4ead 100644
--- a/InvenTree/locale/en/LC_MESSAGES/django.po
+++ b/InvenTree/locale/en/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-07 13:19+0000\n"
+"POT-Creation-Date: 2021-05-07 13:55+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -123,7 +123,7 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908
+#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/stock.js:1041
msgid "User"
@@ -134,7 +134,7 @@ msgid "upload date"
msgstr ""
#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101
-#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27
+#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27
#: report/models.py:179 templates/InvenTree/search.html:137
#: templates/InvenTree/search.html:289 templates/js/part.js:110
#: templates/js/part.js:553 templates/js/stock.js:944
@@ -142,8 +142,8 @@ msgid "Name"
msgstr ""
#: InvenTree/models.py:114 build/models.py:134
-#: build/templates/build/detail.html:21 company/models.py:342
-#: company/models.py:494 company/templates/company/detail.html:27
+#: build/templates/build/detail.html:21 company/models.py:339
+#: company/models.py:491 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:108
@@ -387,21 +387,20 @@ msgstr ""
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:123
-#: build/templates/build/detail.html:31 common/models.py:703
+#: build/templates/build/detail.html:31 common/models.py:705
#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261
-#: order/forms.py:278 order/models.py:603 order/models.py:794
+#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262
+#: order/forms.py:279 order/models.py:603 order/models.py:804
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:175
#: order/templates/order/sales_order_detail.html:70
#: order/templates/order/sales_order_detail.html:77
#: order/templates/order/sales_order_detail.html:159
#: order/templates/order/sales_order_detail.html:224 part/forms.py:342
-#: part/forms.py:371 part/forms.py:387 part/models.py:2178
+#: part/forms.py:371 part/forms.py:387 part/models.py:2216
#: part/templates/part/allocation.html:19
#: part/templates/part/allocation.html:53
-#: part/templates/part/part_pricing.html:11
-#: part/templates/part/part_pricing.html:18
+#: part/templates/part/part_pricing.html:13
#: part/templates/part/sale_prices.html:85
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -423,7 +422,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:233 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:234 stock/forms.py:118
msgid "Serial Numbers"
msgstr ""
@@ -526,7 +525,7 @@ msgstr ""
#: build/models.py:127 order/models.py:99 order/models.py:605
#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:219 part/models.py:2187
+#: order/templates/order/sales_order_detail.html:219 part/models.py:2225
#: 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:565 templates/js/build.js:1008
@@ -548,16 +547,16 @@ msgstr ""
#: build/models.py:152 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:118
-#: build/templates/build/detail.html:26 company/models.py:688
-#: order/models.py:647 order/models.py:679
+#: build/templates/build/detail.html:26 company/models.py:622
+#: order/models.py:647 order/models.py:680
#: order/templates/order/order_wizard/select_parts.html:30
#: order/templates/order/purchase_order_detail.html:131
#: order/templates/order/receive_parts.html:19
#: order/templates/order/sales_order_detail.html:207 part/models.py:321
-#: part/models.py:1876 part/models.py:1888 part/models.py:1906
-#: part/models.py:1981 part/models.py:2077 part/models.py:2162
+#: part/models.py:1914 part/models.py:1926 part/models.py:1944
+#: part/models.py:2019 part/models.py:2115 part/models.py:2200
#: part/templates/part/part_app_base.html:8
-#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29
+#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
@@ -683,13 +682,13 @@ msgid "Link to external URL"
msgstr ""
#: build/models.py:261 build/templates/build/navbar.html:53
-#: company/models.py:135 company/models.py:501
+#: company/models.py:132 company/models.py:498
#: company/templates/company/navbar.html:70
#: company/templates/company/navbar.html:73 order/models.py:123
#: order/models.py:607 order/templates/order/po_navbar.html:29
#: order/templates/order/po_navbar.html:32
#: order/templates/order/purchase_order_detail.html:209
-#: order/templates/order/sales_order_detail.html:264
+#: order/templates/order/sales_order_detail.html:272
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:871
#: part/templates/part/navbar.html:128
@@ -739,11 +738,11 @@ msgstr ""
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1172 order/models.py:768
+#: build/models.py:1172 order/models.py:778
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1176 order/models.py:771
+#: build/models.py:1176 order/models.py:781
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -819,7 +818,7 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:795
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:797
#: part/templates/part/category.html:127
msgid "Order Parts"
msgstr ""
@@ -962,7 +961,7 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:160
-#: build/templates/build/detail.html:84 order/models.py:677
+#: build/templates/build/detail.html:84 order/models.py:678
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:33
#: order/templates/order/sales_order_ship.html:25
@@ -1355,372 +1354,372 @@ msgstr ""
msgid "Add Build Order Attachment"
msgstr ""
-#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172
+#: build/views.py:1083 order/views.py:112 order/views.py:164 part/views.py:172
#: stock/views.py:277
msgid "Added attachment"
msgstr ""
-#: build/views.py:1119 order/views.py:189 order/views.py:210
+#: build/views.py:1119 order/views.py:191 order/views.py:212
msgid "Edit Attachment"
msgstr ""
-#: build/views.py:1129 order/views.py:193 order/views.py:214
+#: build/views.py:1129 order/views.py:195 order/views.py:216
msgid "Attachment updated"
msgstr ""
-#: build/views.py:1139 order/views.py:229 order/views.py:243
+#: build/views.py:1139 order/views.py:231 order/views.py:245
msgid "Delete Attachment"
msgstr ""
-#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333
+#: build/views.py:1144 order/views.py:237 order/views.py:251 stock/views.py:333
msgid "Deleted attachment"
msgstr ""
-#: common/models.py:56
+#: common/models.py:58
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:58
+#: common/models.py:60
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:62
+#: common/models.py:64
msgid "Use instance name"
msgstr ""
-#: common/models.py:63
+#: common/models.py:65
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:69 company/models.py:97 company/models.py:98
+#: common/models.py:71 company/models.py:94 company/models.py:95
msgid "Company name"
msgstr ""
-#: common/models.py:70
+#: common/models.py:72
msgid "Internal company name"
msgstr ""
-#: common/models.py:75
+#: common/models.py:77
msgid "Base URL"
msgstr ""
-#: common/models.py:76
+#: common/models.py:78
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:82
+#: common/models.py:84
msgid "Default Currency"
msgstr ""
-#: common/models.py:83
+#: common/models.py:85
msgid "Default currency"
msgstr ""
-#: common/models.py:89
+#: common/models.py:91
msgid "Download from URL"
msgstr ""
-#: common/models.py:90
+#: common/models.py:92
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:96
+#: common/models.py:98
msgid "Barcode Support"
msgstr ""
-#: common/models.py:97
+#: common/models.py:99
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:103
+#: common/models.py:105
msgid "IPN Regex"
msgstr ""
-#: common/models.py:104
+#: common/models.py:106
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:108
+#: common/models.py:110
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:109
+#: common/models.py:111
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:115
+#: common/models.py:117
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:116
+#: common/models.py:118
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:122
+#: common/models.py:124
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:123
+#: common/models.py:125
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:129
+#: common/models.py:131
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:130
+#: common/models.py:132
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:136
+#: common/models.py:138
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:137
+#: common/models.py:139
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:143
+#: common/models.py:145
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:144
+#: common/models.py:146
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:150
+#: common/models.py:152
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:151
+#: common/models.py:153
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160
+#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160
#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24
#: templates/js/table_filters.js:310
msgid "Template"
msgstr ""
-#: common/models.py:158
+#: common/models.py:160
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170
+#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170
#: templates/js/table_filters.js:123 templates/js/table_filters.js:322
msgid "Assembly"
msgstr ""
-#: common/models.py:165
+#: common/models.py:167
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180
+#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180
#: templates/js/table_filters.js:326
msgid "Component"
msgstr ""
-#: common/models.py:172
+#: common/models.py:174
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200
+#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr ""
-#: common/models.py:179
+#: common/models.py:181
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210
+#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210
#: templates/js/table_filters.js:334
msgid "Salable"
msgstr ""
-#: common/models.py:186
+#: common/models.py:188
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190
+#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190
#: templates/js/table_filters.js:32 templates/js/table_filters.js:338
msgid "Trackable"
msgstr ""
-#: common/models.py:193
+#: common/models.py:195
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150
+#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150
#: templates/js/table_filters.js:28
msgid "Virtual"
msgstr ""
-#: common/models.py:200
+#: common/models.py:202
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:206
+#: common/models.py:208
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:207
+#: common/models.py:209
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:213
+#: common/models.py:215
msgid "Debug Mode"
msgstr ""
-#: common/models.py:214
+#: common/models.py:216
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:220
+#: common/models.py:222
msgid "Page Size"
msgstr ""
-#: common/models.py:221
+#: common/models.py:223
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:231
+#: common/models.py:233
msgid "Test Reports"
msgstr ""
-#: common/models.py:232
+#: common/models.py:234
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:238
+#: common/models.py:240
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:239
+#: common/models.py:241
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:245
+#: common/models.py:247
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:246
+#: common/models.py:248
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:252
+#: common/models.py:254
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:253
+#: common/models.py:255
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:255 part/templates/part/detail.html:121
+#: common/models.py:257 part/templates/part/detail.html:121
msgid "days"
msgstr ""
-#: common/models.py:260
+#: common/models.py:262
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:261
+#: common/models.py:263
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:267
+#: common/models.py:269
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:268
+#: common/models.py:270
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:274
+#: common/models.py:276
msgid "Group by Part"
msgstr ""
-#: common/models.py:275
+#: common/models.py:277
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:281
+#: common/models.py:283
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:282
+#: common/models.py:284
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:288
+#: common/models.py:290
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:289
+#: common/models.py:291
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:294
+#: common/models.py:296
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:295
+#: common/models.py:297
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:299
+#: common/models.py:301
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:300
+#: common/models.py:302
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:305
+#: common/models.py:307
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:306
+#: common/models.py:308
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:529
+#: common/models.py:531
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:531
+#: common/models.py:533
msgid "Settings value"
msgstr ""
-#: common/models.py:566
+#: common/models.py:568
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:589
+#: common/models.py:591
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:600
+#: common/models.py:602
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:623
+#: common/models.py:625
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:704 company/forms.py:177
+#: common/models.py:706 company/forms.py:177
msgid "Price break quantity"
msgstr ""
-#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82
#: part/templates/part/sale_prices.html:90 templates/js/bom.js:255
msgid "Price"
msgstr ""
-#: common/models.py:713
+#: common/models.py:715
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:736
+#: common/models.py:804
msgid "Default"
msgstr ""
@@ -1740,12 +1739,12 @@ msgstr ""
msgid "Supplied value must be a boolean"
msgstr ""
-#: company/forms.py:38 company/models.py:145
+#: company/forms.py:38 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
msgstr ""
-#: company/forms.py:39 company/models.py:147
+#: company/forms.py:39 company/models.py:144
msgid "Default currency used for this company"
msgstr ""
@@ -1765,15 +1764,15 @@ msgstr ""
msgid "Single quantity price"
msgstr ""
-#: company/forms.py:128 company/models.py:324
+#: company/forms.py:128 company/models.py:321
msgid "Select manufacturer"
msgstr ""
-#: company/forms.py:134 company/models.py:331
+#: company/forms.py:134 company/models.py:328
msgid "Manufacturer Part Number"
msgstr ""
-#: company/forms.py:136 company/models.py:330
+#: company/forms.py:136 company/models.py:327
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:101
@@ -1783,56 +1782,56 @@ msgstr ""
msgid "MPN"
msgstr ""
-#: company/models.py:102
+#: company/models.py:99
msgid "Company description"
msgstr ""
-#: company/models.py:103
+#: company/models.py:100
msgid "Description of the company"
msgstr ""
-#: company/models.py:107 company/templates/company/company_base.html:70
+#: company/models.py:104 company/templates/company/company_base.html:70
#: company/templates/company/detail.html:33 templates/js/company.js:60
msgid "Website"
msgstr ""
-#: company/models.py:107
+#: company/models.py:104
msgid "Company website URL"
msgstr ""
-#: company/models.py:110 company/templates/company/company_base.html:77
+#: company/models.py:107 company/templates/company/company_base.html:77
msgid "Address"
msgstr ""
-#: company/models.py:111
+#: company/models.py:108
msgid "Company address"
msgstr ""
-#: company/models.py:114
+#: company/models.py:111
msgid "Phone number"
msgstr ""
-#: company/models.py:115
+#: company/models.py:112
msgid "Contact phone number"
msgstr ""
-#: company/models.py:118 company/templates/company/company_base.html:91
+#: company/models.py:115 company/templates/company/company_base.html:91
msgid "Email"
msgstr ""
-#: company/models.py:118
+#: company/models.py:115
msgid "Contact email address"
msgstr ""
-#: company/models.py:121 company/templates/company/company_base.html:98
+#: company/models.py:118 company/templates/company/company_base.html:98
msgid "Contact"
msgstr ""
-#: company/models.py:122
+#: company/models.py:119
msgid "Point of contact"
msgstr ""
-#: company/models.py:124 company/models.py:336 company/models.py:488
+#: company/models.py:121 company/models.py:333 company/models.py:485
#: order/models.py:103 part/models.py:743
#: report/templates/report/inventree_build_order_base.html:165
#: stock/models.py:1556 templates/js/company.js:188 templates/js/company.js:318
@@ -1840,48 +1839,48 @@ msgstr ""
msgid "Link"
msgstr ""
-#: company/models.py:124
+#: company/models.py:121
msgid "Link to external company information"
msgstr ""
-#: company/models.py:132 part/models.py:753
+#: company/models.py:129 part/models.py:753
msgid "Image"
msgstr ""
-#: company/models.py:137
+#: company/models.py:134
msgid "is customer"
msgstr ""
-#: company/models.py:137
+#: company/models.py:134
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:139
+#: company/models.py:136
msgid "is supplier"
msgstr ""
-#: company/models.py:139
+#: company/models.py:136
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:141
+#: company/models.py:138
msgid "is manufacturer"
msgstr ""
-#: company/models.py:141
+#: company/models.py:138
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:308 company/models.py:459 stock/models.py:373
+#: company/models.py:305 company/models.py:456 stock/models.py:373
#: stock/templates/stock/item_base.html:224
msgid "Base Part"
msgstr ""
-#: company/models.py:312 company/models.py:463 order/views.py:1384
+#: company/models.py:309 company/models.py:460 order/views.py:1398
msgid "Select part"
msgstr ""
-#: company/models.py:323 company/templates/company/detail.html:57
+#: company/models.py:320 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
@@ -1892,15 +1891,15 @@ msgstr ""
msgid "Manufacturer"
msgstr ""
-#: company/models.py:337
+#: company/models.py:334
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:343
+#: company/models.py:340
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:469 company/templates/company/detail.html:62
+#: company/models.py:466 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:190
#: order/templates/order/order_base.html:92
@@ -1911,70 +1910,70 @@ msgstr ""
msgid "Supplier"
msgstr ""
-#: company/models.py:470
+#: company/models.py:467
msgid "Select supplier"
msgstr ""
-#: company/models.py:475 company/templates/company/supplier_part_base.html:88
+#: company/models.py:472 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
#: order/templates/order/purchase_order_detail.html:149 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr ""
-#: company/models.py:476
+#: company/models.py:473
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:482
+#: company/models.py:479
#: company/templates/company/manufacturer_part_base.html:6
#: company/templates/company/manufacturer_part_base.html:19
#: stock/templates/stock/item_base.html:346
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:483
+#: company/models.py:480
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:489
+#: company/models.py:486
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:495
+#: company/models.py:492
msgid "Supplier part description"
msgstr ""
-#: company/models.py:500 company/templates/company/supplier_part_base.html:115
-#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190
+#: company/models.py:497 company/templates/company/supplier_part_base.html:115
+#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "base cost"
msgstr ""
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:506 company/templates/company/supplier_part_base.html:108
+#: company/models.py:503 company/templates/company/supplier_part_base.html:108
#: stock/models.py:397 stock/templates/stock/item_base.html:299
#: templates/js/stock.js:667
msgid "Packaging"
msgstr ""
-#: company/models.py:506
+#: company/models.py:503
msgid "Part packaging"
msgstr ""
-#: company/models.py:508
+#: company/models.py:505 part/models.py:1616
msgid "multiple"
msgstr ""
-#: company/models.py:508
+#: company/models.py:505
msgid "Order multiple"
msgstr ""
@@ -2000,7 +1999,7 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:46 order/views.py:306
+#: company/templates/company/company_base.html:46 order/views.py:308
msgid "Create Purchase Order"
msgstr ""
@@ -2370,7 +2369,7 @@ msgid "Pricing Information"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794
-#: part/templates/part/sale_prices.html:17 part/views.py:2636
+#: part/templates/part/sale_prices.html:17 part/views.py:2644
msgid "Add Price Break"
msgstr ""
@@ -2485,15 +2484,15 @@ msgstr ""
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:799 part/views.py:2640
+#: company/views.py:799 part/views.py:2648
msgid "Added new price break"
msgstr ""
-#: company/views.py:855 part/views.py:2684
+#: company/views.py:855 part/views.py:2692
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:870 part/views.py:2698
+#: company/views.py:870 part/views.py:2706
msgid "Delete Price Break"
msgstr ""
@@ -2587,11 +2586,11 @@ msgstr ""
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:235
+#: order/forms.py:236
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:241
+#: order/forms.py:242
msgid "Enter quantity of stock items"
msgstr ""
@@ -2726,7 +2725,7 @@ msgstr ""
msgid "Line item notes"
msgstr ""
-#: order/models.py:633 order/models.py:677
+#: order/models.py:633 order/models.py:678
#: part/templates/part/allocation.html:17
#: part/templates/part/allocation.html:45
msgid "Order"
@@ -2763,39 +2762,48 @@ msgstr ""
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:753 order/models.py:755
+#: order/models.py:687 part/templates/part/navbar.html:95
+#: part/templates/part/part_pricing.html:78
+msgid "Sale Price"
+msgstr ""
+
+#: order/models.py:688
+msgid "Unit sale price"
+msgstr ""
+
+#: order/models.py:763 order/models.py:765
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:759
+#: order/models.py:769
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:761
+#: order/models.py:771
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:764
+#: order/models.py:774
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:774
+#: order/models.py:784
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:779
+#: order/models.py:789
msgid "Line"
msgstr ""
-#: order/models.py:790
+#: order/models.py:800
msgid "Item"
msgstr ""
-#: order/models.py:791
+#: order/models.py:801
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:794
+#: order/models.py:804
msgid "Enter stock allocation quantity"
msgstr ""
@@ -2953,8 +2961,8 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1120
-#: order/views.py:1203
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1122
+#: order/views.py:1205
msgid "Add Line Item"
msgstr ""
@@ -2963,11 +2971,12 @@ msgid "No line items found"
msgstr ""
#: order/templates/order/purchase_order_detail.html:180
+#: order/templates/order/sales_order_detail.html:229
msgid "Unit Price"
msgstr ""
#: order/templates/order/purchase_order_detail.html:221
-#: order/templates/order/sales_order_detail.html:294
+#: order/templates/order/sales_order_detail.html:303
msgid "Edit line item"
msgstr ""
@@ -3082,36 +3091,45 @@ msgstr ""
msgid "ID"
msgstr ""
-#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579
+#: order/templates/order/sales_order_detail.html:237 templates/js/build.js:579
#: templates/js/build.js:845
msgid "Allocated"
msgstr ""
-#: order/templates/order/sales_order_detail.html:231
+#: order/templates/order/sales_order_detail.html:239
msgid "Fulfilled"
msgstr ""
-#: order/templates/order/sales_order_detail.html:279
+#: order/templates/order/sales_order_detail.html:287
msgid "Allocate serial numbers"
msgstr ""
-#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641
+#: order/templates/order/sales_order_detail.html:290 templates/js/build.js:641
msgid "Allocate stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:285
+#: order/templates/order/sales_order_detail.html:293
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634
+#: order/templates/order/sales_order_detail.html:297 templates/js/build.js:634
#: templates/js/build.js:1052
msgid "Build stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:295
+#: order/templates/order/sales_order_detail.html:300
+#: order/templates/order/sales_order_detail.html:409
+msgid "Calculate price"
+msgstr ""
+
+#: order/templates/order/sales_order_detail.html:304
msgid "Delete line item "
msgstr ""
+#: order/templates/order/sales_order_detail.html:415
+msgid "Update Unit Price"
+msgstr ""
+
#: order/templates/order/sales_order_notes.html:14
msgid "Sales Order Notes"
msgstr ""
@@ -3153,167 +3171,185 @@ msgstr ""
msgid "Are you sure you wish to delete this line item?"
msgstr ""
-#: order/views.py:99
+#: order/views.py:101
msgid "Add Purchase Order Attachment"
msgstr ""
-#: order/views.py:149
+#: order/views.py:151
msgid "Add Sales Order Attachment"
msgstr ""
-#: order/views.py:341
+#: order/views.py:343
msgid "Create Sales Order"
msgstr ""
-#: order/views.py:376
+#: order/views.py:378
msgid "Edit Purchase Order"
msgstr ""
-#: order/views.py:396
+#: order/views.py:398
msgid "Edit Sales Order"
msgstr ""
-#: order/views.py:412
+#: order/views.py:414
msgid "Cancel Order"
msgstr ""
-#: order/views.py:421 order/views.py:447
+#: order/views.py:423 order/views.py:449
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:424 order/views.py:450
+#: order/views.py:426 order/views.py:452
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:438
+#: order/views.py:440
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:464
+#: order/views.py:466
msgid "Issue Order"
msgstr ""
-#: order/views.py:473
+#: order/views.py:475
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:483
+#: order/views.py:485
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:494
+#: order/views.py:496
msgid "Complete Order"
msgstr ""
-#: order/views.py:510
+#: order/views.py:512
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:521
+#: order/views.py:523
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:531
+#: order/views.py:533
msgid "Ship Order"
msgstr ""
-#: order/views.py:547
+#: order/views.py:549
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:553
+#: order/views.py:555
msgid "Could not ship order"
msgstr ""
-#: order/views.py:607
+#: order/views.py:609
msgid "Receive Parts"
msgstr ""
-#: order/views.py:677
+#: order/views.py:679
msgid "Items received"
msgstr ""
-#: order/views.py:691
+#: order/views.py:693
msgid "No destination set"
msgstr ""
-#: order/views.py:736
+#: order/views.py:738
msgid "Error converting quantity to number"
msgstr ""
-#: order/views.py:742
+#: order/views.py:744
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:748
+#: order/views.py:750
msgid "No lines specified"
msgstr ""
-#: order/views.py:1069
+#: order/views.py:1071
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1129
+#: order/views.py:1131
msgid "Supplier part must be specified"
msgstr ""
-#: order/views.py:1135
+#: order/views.py:1137
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1254 order/views.py:1272
+#: order/views.py:1268 order/views.py:1286
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1288 order/views.py:1300
+#: order/views.py:1302 order/views.py:1314
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1293 order/views.py:1305
+#: order/views.py:1307 order/views.py:1319
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1318
+#: order/views.py:1332
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1363
+#: order/views.py:1377
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1379
+#: order/views.py:1393
msgid "Select line item"
msgstr ""
-#: order/views.py:1410
+#: order/views.py:1424
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1420
+#: order/views.py:1434
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1428
+#: order/views.py:1442
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1482
+#: order/views.py:1496
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1556
+#: order/views.py:1570
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1571
+#: order/views.py:1585
msgid "Remove allocation"
msgstr ""
+#: order/views.py:1657
+msgid "Sales order not found"
+msgstr ""
+
+#: order/views.py:1663
+msgid "Price not found"
+msgstr ""
+
+#: order/views.py:1666
+#, python-brace-format
+msgid "Updated {part} unit-price to {price}"
+msgstr ""
+
+#: order/views.py:1671
+#, python-brace-format
+msgid "Updated {part} unit-price to {price} and quantity to {qty}"
+msgstr ""
+
#: part/bom.py:138 part/models.py:72 part/models.py:762
#: part/templates/part/category.html:66 part/templates/part/detail.html:90
msgid "Default Location"
@@ -3392,7 +3428,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:122 part/models.py:2077
+#: part/forms.py:122 part/models.py:2115
msgid "Parent Part"
msgstr ""
@@ -3468,7 +3504,7 @@ msgstr ""
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:344 part/models.py:2171
+#: part/forms.py:344 part/models.py:2209
msgid "Sub part"
msgstr ""
@@ -3488,7 +3524,7 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:82 part/models.py:2123
+#: part/models.py:82 part/models.py:2161
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -3558,7 +3594,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73
+#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73
#: part/templates/part/set_category.html:15 templates/js/part.js:385
msgid "Category"
msgstr ""
@@ -3613,7 +3649,7 @@ msgstr ""
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106
+#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106
#: part/templates/part/params.html:29
msgid "Units"
msgstr ""
@@ -3680,167 +3716,171 @@ msgstr ""
msgid "Creation User"
msgstr ""
-#: part/models.py:1949
-msgid "Test templates can only be created for trackable parts"
-msgstr ""
-
-#: part/models.py:1966
-msgid "Test with this name already exists for this part"
-msgstr ""
-
-#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104
-msgid "Test Name"
+#: part/models.py:1616
+msgid "Sell multiple"
msgstr ""
#: part/models.py:1987
+msgid "Test templates can only be created for trackable parts"
+msgstr ""
+
+#: part/models.py:2004
+msgid "Test with this name already exists for this part"
+msgstr ""
+
+#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104
+msgid "Test Name"
+msgstr ""
+
+#: part/models.py:2025
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:1992
+#: part/models.py:2030
msgid "Test Description"
msgstr ""
-#: part/models.py:1993
+#: part/models.py:2031
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:1998 templates/js/part.js:647
+#: part/models.py:2036 templates/js/part.js:647
#: templates/js/table_filters.js:222
msgid "Required"
msgstr ""
-#: part/models.py:1999
+#: part/models.py:2037
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2004 templates/js/part.js:655
+#: part/models.py:2042 templates/js/part.js:655
msgid "Requires Value"
msgstr ""
-#: part/models.py:2005
+#: part/models.py:2043
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2010 templates/js/part.js:662
+#: part/models.py:2048 templates/js/part.js:662
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2011
+#: part/models.py:2049
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2044
+#: part/models.py:2082
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2049
+#: part/models.py:2087
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2051
+#: part/models.py:2089
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2079 part/models.py:2128 part/models.py:2129
+#: part/models.py:2117 part/models.py:2166 part/models.py:2167
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Data"
msgstr ""
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2133 templates/InvenTree/settings/category.html:67
+#: part/models.py:2171 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2172
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2163
+#: part/models.py:2201
msgid "Select parent part"
msgstr ""
-#: part/models.py:2172
+#: part/models.py:2210
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2178
+#: part/models.py:2216
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269
+#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269
msgid "Optional"
msgstr ""
-#: part/models.py:2180
+#: part/models.py:2218
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2183
+#: part/models.py:2221
msgid "Overage"
msgstr ""
-#: part/models.py:2184
+#: part/models.py:2222
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2187
+#: part/models.py:2225
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2190
+#: part/models.py:2228
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2230
msgid "Checksum"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2230
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286
+#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286
#: templates/js/table_filters.js:50
msgid "Inherited"
msgstr ""
-#: part/models.py:2197
+#: part/models.py:2235
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2273 part/views.py:1592 part/views.py:1644
+#: part/models.py:2311 part/views.py:1592 part/views.py:1644
#: stock/models.py:260
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2282 part/models.py:2284
+#: part/models.py:2320 part/models.py:2322
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2287
+#: part/models.py:2325
msgid "BOM Item"
msgstr ""
-#: part/models.py:2404
+#: part/models.py:2442
msgid "Part 1"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Part 2"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2440
+#: part/models.py:2478
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4043,7 +4083,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:29 part/views.py:2282
+#: part/templates/part/category.html:29 part/views.py:2290
msgid "Create new part category"
msgstr ""
@@ -4302,10 +4342,6 @@ msgstr ""
msgid "Sales Price Information"
msgstr ""
-#: part/templates/part/navbar.html:95
-msgid "Sale Price"
-msgstr ""
-
#: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr ""
@@ -4440,42 +4476,39 @@ msgstr ""
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_pricing.html:8
-#, python-format
-msgid "Pricing information for:
%(part)s."
-msgstr ""
-
-#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:19
msgid "Supplier Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:27
-#: part/templates/part/part_pricing.html:53
+#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:81
msgid "Unit Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:33
-#: part/templates/part/part_pricing.html:59
+#: part/templates/part/part_pricing.html:29
+#: part/templates/part/part_pricing.html:55
+#: part/templates/part/part_pricing.html:85
msgid "Total Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:41
+#: part/templates/part/part_pricing.html:37
msgid "No supplier pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:45
msgid "BOM Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:67
+#: part/templates/part/part_pricing.html:63
msgid "Note: BOM pricing is incomplete for this part"
msgstr ""
-#: part/templates/part/part_pricing.html:74
+#: part/templates/part/part_pricing.html:70
msgid "No BOM pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:84
+#: part/templates/part/part_pricing.html:94
msgid "No pricing information is available for this part."
msgstr ""
@@ -4733,63 +4766,63 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2081
+#: part/views.py:2089
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2091
+#: part/views.py:2099
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2098
+#: part/views.py:2106
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2106
+#: part/views.py:2114
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2156
+#: part/views.py:2164
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2170
+#: part/views.py:2178
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2230
+#: part/views.py:2238
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:2268
+#: part/views.py:2276
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2274
+#: part/views.py:2282
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2326
+#: part/views.py:2334
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2427
+#: part/views.py:2435
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2483
+#: part/views.py:2491
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2502
+#: part/views.py:2510
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2572
+#: part/views.py:2580
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2628
+#: part/views.py:2636
msgid "Confim BOM item deletion"
msgstr ""
@@ -6167,9 +6200,9 @@ msgstr ""
msgid "Submit Bug Report"
msgstr ""
-#: templates/about.html:82 templates/js/modals.js:550
-#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52
-#: templates/modals.html:93
+#: templates/about.html:82 templates/js/modals.js:559
+#: templates/js/modals.js:837 templates/modals.html:29 templates/modals.html:54
+#: templates/modals.html:97
msgid "Close"
msgstr ""
@@ -6233,7 +6266,7 @@ msgstr ""
msgid "Unknown response from server"
msgstr ""
-#: templates/js/barcode.js:119 templates/js/modals.js:857
+#: templates/js/barcode.js:119 templates/js/modals.js:892
msgid "Invalid server response"
msgstr ""
@@ -6480,92 +6513,92 @@ msgstr ""
msgid "Waiting for server..."
msgstr ""
-#: templates/js/modals.js:406
+#: templates/js/modals.js:415
msgid "Show Error Information"
msgstr ""
-#: templates/js/modals.js:473 templates/modals.html:73
+#: templates/js/modals.js:482 templates/modals.html:76
msgid "Accept"
msgstr ""
-#: templates/js/modals.js:474 templates/modals.html:72
+#: templates/js/modals.js:483 templates/modals.html:75
msgid "Cancel"
msgstr ""
-#: templates/js/modals.js:538
+#: templates/js/modals.js:547
msgid "Loading Data"
msgstr ""
-#: templates/js/modals.js:549 templates/js/modals.js:808
-#: templates/modals.html:29 templates/modals.html:53
+#: templates/js/modals.js:558 templates/js/modals.js:836
+#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
-#: templates/js/modals.js:760
+#: templates/js/modals.js:788
msgid "Invalid response from server"
msgstr ""
-#: templates/js/modals.js:760
+#: templates/js/modals.js:788
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/modals.js:773
+#: templates/js/modals.js:801
msgid "Error posting form data"
msgstr ""
-#: templates/js/modals.js:857
+#: templates/js/modals.js:892
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/modals.js:867
+#: templates/js/modals.js:902
msgid "No Response"
msgstr ""
-#: templates/js/modals.js:868
+#: templates/js/modals.js:903
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/modals.js:872
+#: templates/js/modals.js:907
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/modals.js:873
+#: templates/js/modals.js:908
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/modals.js:877
+#: templates/js/modals.js:912
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/modals.js:878
+#: templates/js/modals.js:913
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/modals.js:882
+#: templates/js/modals.js:917
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/modals.js:883
+#: templates/js/modals.js:918
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/modals.js:887
+#: templates/js/modals.js:922
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/modals.js:888
+#: templates/js/modals.js:923
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/modals.js:892
+#: templates/js/modals.js:927
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/modals.js:893
+#: templates/js/modals.js:928
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/modals.js:896
+#: templates/js/modals.js:931
msgid "Error requesting form data"
msgstr ""
@@ -7070,7 +7103,7 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/modals.html:21 templates/modals.html:46
+#: templates/modals.html:21 templates/modals.html:47
msgid "Form errors exist"
msgstr ""
diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po
index f5014b7d2c..a11f8563a0 100644
--- a/InvenTree/locale/es/LC_MESSAGES/django.po
+++ b/InvenTree/locale/es/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-07 13:19+0000\n"
+"POT-Creation-Date: 2021-05-07 13:55+0000\n"
"PO-Revision-Date: 2021-05-06 02:54\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
@@ -122,7 +122,7 @@ msgstr "Comentario"
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908
+#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/stock.js:1041
msgid "User"
@@ -133,7 +133,7 @@ msgid "upload date"
msgstr ""
#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101
-#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27
+#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27
#: report/models.py:179 templates/InvenTree/search.html:137
#: templates/InvenTree/search.html:289 templates/js/part.js:110
#: templates/js/part.js:553 templates/js/stock.js:944
@@ -141,8 +141,8 @@ msgid "Name"
msgstr "Nombre"
#: InvenTree/models.py:114 build/models.py:134
-#: build/templates/build/detail.html:21 company/models.py:342
-#: company/models.py:494 company/templates/company/detail.html:27
+#: build/templates/build/detail.html:21 company/models.py:339
+#: company/models.py:491 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:108
@@ -386,21 +386,20 @@ msgstr ""
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:123
-#: build/templates/build/detail.html:31 common/models.py:703
+#: build/templates/build/detail.html:31 common/models.py:705
#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261
-#: order/forms.py:278 order/models.py:603 order/models.py:794
+#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262
+#: order/forms.py:279 order/models.py:603 order/models.py:804
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:175
#: order/templates/order/sales_order_detail.html:70
#: order/templates/order/sales_order_detail.html:77
#: order/templates/order/sales_order_detail.html:159
#: order/templates/order/sales_order_detail.html:224 part/forms.py:342
-#: part/forms.py:371 part/forms.py:387 part/models.py:2178
+#: part/forms.py:371 part/forms.py:387 part/models.py:2216
#: part/templates/part/allocation.html:19
#: part/templates/part/allocation.html:53
-#: part/templates/part/part_pricing.html:11
-#: part/templates/part/part_pricing.html:18
+#: part/templates/part/part_pricing.html:13
#: part/templates/part/sale_prices.html:85
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -422,7 +421,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:233 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:234 stock/forms.py:118
msgid "Serial Numbers"
msgstr "Números de serie"
@@ -525,7 +524,7 @@ msgstr ""
#: build/models.py:127 order/models.py:99 order/models.py:605
#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:219 part/models.py:2187
+#: order/templates/order/sales_order_detail.html:219 part/models.py:2225
#: 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:565 templates/js/build.js:1008
@@ -547,16 +546,16 @@ msgstr ""
#: build/models.py:152 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:118
-#: build/templates/build/detail.html:26 company/models.py:688
-#: order/models.py:647 order/models.py:679
+#: build/templates/build/detail.html:26 company/models.py:622
+#: order/models.py:647 order/models.py:680
#: order/templates/order/order_wizard/select_parts.html:30
#: order/templates/order/purchase_order_detail.html:131
#: order/templates/order/receive_parts.html:19
#: order/templates/order/sales_order_detail.html:207 part/models.py:321
-#: part/models.py:1876 part/models.py:1888 part/models.py:1906
-#: part/models.py:1981 part/models.py:2077 part/models.py:2162
+#: part/models.py:1914 part/models.py:1926 part/models.py:1944
+#: part/models.py:2019 part/models.py:2115 part/models.py:2200
#: part/templates/part/part_app_base.html:8
-#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29
+#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
@@ -682,13 +681,13 @@ msgid "Link to external URL"
msgstr ""
#: build/models.py:261 build/templates/build/navbar.html:53
-#: company/models.py:135 company/models.py:501
+#: company/models.py:132 company/models.py:498
#: company/templates/company/navbar.html:70
#: company/templates/company/navbar.html:73 order/models.py:123
#: order/models.py:607 order/templates/order/po_navbar.html:29
#: order/templates/order/po_navbar.html:32
#: order/templates/order/purchase_order_detail.html:209
-#: order/templates/order/sales_order_detail.html:264
+#: order/templates/order/sales_order_detail.html:272
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:871
#: part/templates/part/navbar.html:128
@@ -738,11 +737,11 @@ msgstr ""
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1172 order/models.py:768
+#: build/models.py:1172 order/models.py:778
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1176 order/models.py:771
+#: build/models.py:1176 order/models.py:781
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -818,7 +817,7 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:795
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:797
#: part/templates/part/category.html:127
msgid "Order Parts"
msgstr ""
@@ -961,7 +960,7 @@ msgid "Progress"
msgstr "Progreso"
#: build/templates/build/build_base.html:160
-#: build/templates/build/detail.html:84 order/models.py:677
+#: build/templates/build/detail.html:84 order/models.py:678
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:33
#: order/templates/order/sales_order_ship.html:25
@@ -1354,372 +1353,372 @@ msgstr ""
msgid "Add Build Order Attachment"
msgstr ""
-#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172
+#: build/views.py:1083 order/views.py:112 order/views.py:164 part/views.py:172
#: stock/views.py:277
msgid "Added attachment"
msgstr ""
-#: build/views.py:1119 order/views.py:189 order/views.py:210
+#: build/views.py:1119 order/views.py:191 order/views.py:212
msgid "Edit Attachment"
msgstr ""
-#: build/views.py:1129 order/views.py:193 order/views.py:214
+#: build/views.py:1129 order/views.py:195 order/views.py:216
msgid "Attachment updated"
msgstr ""
-#: build/views.py:1139 order/views.py:229 order/views.py:243
+#: build/views.py:1139 order/views.py:231 order/views.py:245
msgid "Delete Attachment"
msgstr ""
-#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333
+#: build/views.py:1144 order/views.py:237 order/views.py:251 stock/views.py:333
msgid "Deleted attachment"
msgstr ""
-#: common/models.py:56
+#: common/models.py:58
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:58
+#: common/models.py:60
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:62
+#: common/models.py:64
msgid "Use instance name"
msgstr ""
-#: common/models.py:63
+#: common/models.py:65
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:69 company/models.py:97 company/models.py:98
+#: common/models.py:71 company/models.py:94 company/models.py:95
msgid "Company name"
msgstr ""
-#: common/models.py:70
+#: common/models.py:72
msgid "Internal company name"
msgstr ""
-#: common/models.py:75
+#: common/models.py:77
msgid "Base URL"
msgstr ""
-#: common/models.py:76
+#: common/models.py:78
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:82
+#: common/models.py:84
msgid "Default Currency"
msgstr ""
-#: common/models.py:83
+#: common/models.py:85
msgid "Default currency"
msgstr ""
-#: common/models.py:89
+#: common/models.py:91
msgid "Download from URL"
msgstr ""
-#: common/models.py:90
+#: common/models.py:92
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:96
+#: common/models.py:98
msgid "Barcode Support"
msgstr ""
-#: common/models.py:97
+#: common/models.py:99
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:103
+#: common/models.py:105
msgid "IPN Regex"
msgstr ""
-#: common/models.py:104
+#: common/models.py:106
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:108
+#: common/models.py:110
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:109
+#: common/models.py:111
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:115
+#: common/models.py:117
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:116
+#: common/models.py:118
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:122
+#: common/models.py:124
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:123
+#: common/models.py:125
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:129
+#: common/models.py:131
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:130
+#: common/models.py:132
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:136
+#: common/models.py:138
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:137
+#: common/models.py:139
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:143
+#: common/models.py:145
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:144
+#: common/models.py:146
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:150
+#: common/models.py:152
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:151
+#: common/models.py:153
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160
+#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160
#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24
#: templates/js/table_filters.js:310
msgid "Template"
msgstr ""
-#: common/models.py:158
+#: common/models.py:160
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170
+#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170
#: templates/js/table_filters.js:123 templates/js/table_filters.js:322
msgid "Assembly"
msgstr ""
-#: common/models.py:165
+#: common/models.py:167
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180
+#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180
#: templates/js/table_filters.js:326
msgid "Component"
msgstr ""
-#: common/models.py:172
+#: common/models.py:174
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200
+#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr ""
-#: common/models.py:179
+#: common/models.py:181
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210
+#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210
#: templates/js/table_filters.js:334
msgid "Salable"
msgstr ""
-#: common/models.py:186
+#: common/models.py:188
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190
+#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190
#: templates/js/table_filters.js:32 templates/js/table_filters.js:338
msgid "Trackable"
msgstr ""
-#: common/models.py:193
+#: common/models.py:195
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150
+#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150
#: templates/js/table_filters.js:28
msgid "Virtual"
msgstr ""
-#: common/models.py:200
+#: common/models.py:202
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:206
+#: common/models.py:208
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:207
+#: common/models.py:209
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:213
+#: common/models.py:215
msgid "Debug Mode"
msgstr ""
-#: common/models.py:214
+#: common/models.py:216
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:220
+#: common/models.py:222
msgid "Page Size"
msgstr ""
-#: common/models.py:221
+#: common/models.py:223
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:231
+#: common/models.py:233
msgid "Test Reports"
msgstr ""
-#: common/models.py:232
+#: common/models.py:234
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:238
+#: common/models.py:240
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:239
+#: common/models.py:241
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:245
+#: common/models.py:247
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:246
+#: common/models.py:248
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:252
+#: common/models.py:254
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:253
+#: common/models.py:255
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:255 part/templates/part/detail.html:121
+#: common/models.py:257 part/templates/part/detail.html:121
msgid "days"
msgstr "días"
-#: common/models.py:260
+#: common/models.py:262
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:261
+#: common/models.py:263
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:267
+#: common/models.py:269
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:268
+#: common/models.py:270
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:274
+#: common/models.py:276
msgid "Group by Part"
msgstr ""
-#: common/models.py:275
+#: common/models.py:277
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:281
+#: common/models.py:283
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:282
+#: common/models.py:284
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:288
+#: common/models.py:290
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:289
+#: common/models.py:291
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:294
+#: common/models.py:296
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:295
+#: common/models.py:297
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:299
+#: common/models.py:301
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:300
+#: common/models.py:302
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:305
+#: common/models.py:307
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:306
+#: common/models.py:308
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:529
+#: common/models.py:531
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:531
+#: common/models.py:533
msgid "Settings value"
msgstr ""
-#: common/models.py:566
+#: common/models.py:568
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:589
+#: common/models.py:591
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:600
+#: common/models.py:602
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:623
+#: common/models.py:625
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:704 company/forms.py:177
+#: common/models.py:706 company/forms.py:177
msgid "Price break quantity"
msgstr ""
-#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82
#: part/templates/part/sale_prices.html:90 templates/js/bom.js:255
msgid "Price"
msgstr ""
-#: common/models.py:713
+#: common/models.py:715
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:736
+#: common/models.py:804
msgid "Default"
msgstr ""
@@ -1739,12 +1738,12 @@ msgstr ""
msgid "Supplied value must be a boolean"
msgstr ""
-#: company/forms.py:38 company/models.py:145
+#: company/forms.py:38 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
msgstr ""
-#: company/forms.py:39 company/models.py:147
+#: company/forms.py:39 company/models.py:144
msgid "Default currency used for this company"
msgstr ""
@@ -1764,15 +1763,15 @@ msgstr ""
msgid "Single quantity price"
msgstr ""
-#: company/forms.py:128 company/models.py:324
+#: company/forms.py:128 company/models.py:321
msgid "Select manufacturer"
msgstr ""
-#: company/forms.py:134 company/models.py:331
+#: company/forms.py:134 company/models.py:328
msgid "Manufacturer Part Number"
msgstr ""
-#: company/forms.py:136 company/models.py:330
+#: company/forms.py:136 company/models.py:327
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:101
@@ -1782,56 +1781,56 @@ msgstr ""
msgid "MPN"
msgstr ""
-#: company/models.py:102
+#: company/models.py:99
msgid "Company description"
msgstr ""
-#: company/models.py:103
+#: company/models.py:100
msgid "Description of the company"
msgstr ""
-#: company/models.py:107 company/templates/company/company_base.html:70
+#: company/models.py:104 company/templates/company/company_base.html:70
#: company/templates/company/detail.html:33 templates/js/company.js:60
msgid "Website"
msgstr "Página web"
-#: company/models.py:107
+#: company/models.py:104
msgid "Company website URL"
msgstr ""
-#: company/models.py:110 company/templates/company/company_base.html:77
+#: company/models.py:107 company/templates/company/company_base.html:77
msgid "Address"
msgstr ""
-#: company/models.py:111
+#: company/models.py:108
msgid "Company address"
msgstr ""
-#: company/models.py:114
+#: company/models.py:111
msgid "Phone number"
msgstr "Teléfono"
-#: company/models.py:115
+#: company/models.py:112
msgid "Contact phone number"
msgstr "Teléfono de contacto"
-#: company/models.py:118 company/templates/company/company_base.html:91
+#: company/models.py:115 company/templates/company/company_base.html:91
msgid "Email"
msgstr "Email"
-#: company/models.py:118
+#: company/models.py:115
msgid "Contact email address"
msgstr ""
-#: company/models.py:121 company/templates/company/company_base.html:98
+#: company/models.py:118 company/templates/company/company_base.html:98
msgid "Contact"
msgstr "Contacto"
-#: company/models.py:122
+#: company/models.py:119
msgid "Point of contact"
msgstr ""
-#: company/models.py:124 company/models.py:336 company/models.py:488
+#: company/models.py:121 company/models.py:333 company/models.py:485
#: order/models.py:103 part/models.py:743
#: report/templates/report/inventree_build_order_base.html:165
#: stock/models.py:1556 templates/js/company.js:188 templates/js/company.js:318
@@ -1839,48 +1838,48 @@ msgstr ""
msgid "Link"
msgstr ""
-#: company/models.py:124
+#: company/models.py:121
msgid "Link to external company information"
msgstr ""
-#: company/models.py:132 part/models.py:753
+#: company/models.py:129 part/models.py:753
msgid "Image"
msgstr ""
-#: company/models.py:137
+#: company/models.py:134
msgid "is customer"
msgstr ""
-#: company/models.py:137
+#: company/models.py:134
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:139
+#: company/models.py:136
msgid "is supplier"
msgstr ""
-#: company/models.py:139
+#: company/models.py:136
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:141
+#: company/models.py:138
msgid "is manufacturer"
msgstr ""
-#: company/models.py:141
+#: company/models.py:138
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:308 company/models.py:459 stock/models.py:373
+#: company/models.py:305 company/models.py:456 stock/models.py:373
#: stock/templates/stock/item_base.html:224
msgid "Base Part"
msgstr ""
-#: company/models.py:312 company/models.py:463 order/views.py:1384
+#: company/models.py:309 company/models.py:460 order/views.py:1398
msgid "Select part"
msgstr ""
-#: company/models.py:323 company/templates/company/detail.html:57
+#: company/models.py:320 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
@@ -1891,15 +1890,15 @@ msgstr ""
msgid "Manufacturer"
msgstr "Fabricante"
-#: company/models.py:337
+#: company/models.py:334
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:343
+#: company/models.py:340
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:469 company/templates/company/detail.html:62
+#: company/models.py:466 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:190
#: order/templates/order/order_base.html:92
@@ -1910,70 +1909,70 @@ msgstr ""
msgid "Supplier"
msgstr "Proveedor"
-#: company/models.py:470
+#: company/models.py:467
msgid "Select supplier"
msgstr ""
-#: company/models.py:475 company/templates/company/supplier_part_base.html:88
+#: company/models.py:472 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
#: order/templates/order/purchase_order_detail.html:149 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr ""
-#: company/models.py:476
+#: company/models.py:473
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:482
+#: company/models.py:479
#: company/templates/company/manufacturer_part_base.html:6
#: company/templates/company/manufacturer_part_base.html:19
#: stock/templates/stock/item_base.html:346
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:483
+#: company/models.py:480
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:489
+#: company/models.py:486
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:495
+#: company/models.py:492
msgid "Supplier part description"
msgstr ""
-#: company/models.py:500 company/templates/company/supplier_part_base.html:115
-#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190
+#: company/models.py:497 company/templates/company/supplier_part_base.html:115
+#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr "Nota"
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "base cost"
msgstr ""
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:506 company/templates/company/supplier_part_base.html:108
+#: company/models.py:503 company/templates/company/supplier_part_base.html:108
#: stock/models.py:397 stock/templates/stock/item_base.html:299
#: templates/js/stock.js:667
msgid "Packaging"
msgstr ""
-#: company/models.py:506
+#: company/models.py:503
msgid "Part packaging"
msgstr ""
-#: company/models.py:508
+#: company/models.py:505 part/models.py:1616
msgid "multiple"
msgstr ""
-#: company/models.py:508
+#: company/models.py:505
msgid "Order multiple"
msgstr ""
@@ -1999,7 +1998,7 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:46 order/views.py:306
+#: company/templates/company/company_base.html:46 order/views.py:308
msgid "Create Purchase Order"
msgstr ""
@@ -2369,7 +2368,7 @@ msgid "Pricing Information"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794
-#: part/templates/part/sale_prices.html:17 part/views.py:2636
+#: part/templates/part/sale_prices.html:17 part/views.py:2644
msgid "Add Price Break"
msgstr ""
@@ -2484,15 +2483,15 @@ msgstr ""
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:799 part/views.py:2640
+#: company/views.py:799 part/views.py:2648
msgid "Added new price break"
msgstr ""
-#: company/views.py:855 part/views.py:2684
+#: company/views.py:855 part/views.py:2692
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:870 part/views.py:2698
+#: company/views.py:870 part/views.py:2706
msgid "Delete Price Break"
msgstr ""
@@ -2586,11 +2585,11 @@ msgstr ""
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:235
+#: order/forms.py:236
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:241
+#: order/forms.py:242
msgid "Enter quantity of stock items"
msgstr ""
@@ -2725,7 +2724,7 @@ msgstr ""
msgid "Line item notes"
msgstr ""
-#: order/models.py:633 order/models.py:677
+#: order/models.py:633 order/models.py:678
#: part/templates/part/allocation.html:17
#: part/templates/part/allocation.html:45
msgid "Order"
@@ -2762,39 +2761,48 @@ msgstr ""
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:753 order/models.py:755
+#: order/models.py:687 part/templates/part/navbar.html:95
+#: part/templates/part/part_pricing.html:78
+msgid "Sale Price"
+msgstr ""
+
+#: order/models.py:688
+msgid "Unit sale price"
+msgstr ""
+
+#: order/models.py:763 order/models.py:765
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:759
+#: order/models.py:769
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:761
+#: order/models.py:771
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:764
+#: order/models.py:774
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:774
+#: order/models.py:784
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:779
+#: order/models.py:789
msgid "Line"
msgstr ""
-#: order/models.py:790
+#: order/models.py:800
msgid "Item"
msgstr ""
-#: order/models.py:791
+#: order/models.py:801
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:794
+#: order/models.py:804
msgid "Enter stock allocation quantity"
msgstr ""
@@ -2952,8 +2960,8 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1120
-#: order/views.py:1203
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1122
+#: order/views.py:1205
msgid "Add Line Item"
msgstr ""
@@ -2962,11 +2970,12 @@ msgid "No line items found"
msgstr ""
#: order/templates/order/purchase_order_detail.html:180
+#: order/templates/order/sales_order_detail.html:229
msgid "Unit Price"
msgstr ""
#: order/templates/order/purchase_order_detail.html:221
-#: order/templates/order/sales_order_detail.html:294
+#: order/templates/order/sales_order_detail.html:303
msgid "Edit line item"
msgstr ""
@@ -3081,36 +3090,45 @@ msgstr ""
msgid "ID"
msgstr ""
-#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579
+#: order/templates/order/sales_order_detail.html:237 templates/js/build.js:579
#: templates/js/build.js:845
msgid "Allocated"
msgstr ""
-#: order/templates/order/sales_order_detail.html:231
+#: order/templates/order/sales_order_detail.html:239
msgid "Fulfilled"
msgstr ""
-#: order/templates/order/sales_order_detail.html:279
+#: order/templates/order/sales_order_detail.html:287
msgid "Allocate serial numbers"
msgstr ""
-#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641
+#: order/templates/order/sales_order_detail.html:290 templates/js/build.js:641
msgid "Allocate stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:285
+#: order/templates/order/sales_order_detail.html:293
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634
+#: order/templates/order/sales_order_detail.html:297 templates/js/build.js:634
#: templates/js/build.js:1052
msgid "Build stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:295
+#: order/templates/order/sales_order_detail.html:300
+#: order/templates/order/sales_order_detail.html:409
+msgid "Calculate price"
+msgstr ""
+
+#: order/templates/order/sales_order_detail.html:304
msgid "Delete line item "
msgstr ""
+#: order/templates/order/sales_order_detail.html:415
+msgid "Update Unit Price"
+msgstr ""
+
#: order/templates/order/sales_order_notes.html:14
msgid "Sales Order Notes"
msgstr ""
@@ -3152,167 +3170,185 @@ msgstr ""
msgid "Are you sure you wish to delete this line item?"
msgstr ""
-#: order/views.py:99
+#: order/views.py:101
msgid "Add Purchase Order Attachment"
msgstr ""
-#: order/views.py:149
+#: order/views.py:151
msgid "Add Sales Order Attachment"
msgstr ""
-#: order/views.py:341
+#: order/views.py:343
msgid "Create Sales Order"
msgstr ""
-#: order/views.py:376
+#: order/views.py:378
msgid "Edit Purchase Order"
msgstr ""
-#: order/views.py:396
+#: order/views.py:398
msgid "Edit Sales Order"
msgstr ""
-#: order/views.py:412
+#: order/views.py:414
msgid "Cancel Order"
msgstr ""
-#: order/views.py:421 order/views.py:447
+#: order/views.py:423 order/views.py:449
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:424 order/views.py:450
+#: order/views.py:426 order/views.py:452
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:438
+#: order/views.py:440
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:464
+#: order/views.py:466
msgid "Issue Order"
msgstr ""
-#: order/views.py:473
+#: order/views.py:475
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:483
+#: order/views.py:485
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:494
+#: order/views.py:496
msgid "Complete Order"
msgstr ""
-#: order/views.py:510
+#: order/views.py:512
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:521
+#: order/views.py:523
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:531
+#: order/views.py:533
msgid "Ship Order"
msgstr ""
-#: order/views.py:547
+#: order/views.py:549
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:553
+#: order/views.py:555
msgid "Could not ship order"
msgstr ""
-#: order/views.py:607
+#: order/views.py:609
msgid "Receive Parts"
msgstr ""
-#: order/views.py:677
+#: order/views.py:679
msgid "Items received"
msgstr ""
-#: order/views.py:691
+#: order/views.py:693
msgid "No destination set"
msgstr ""
-#: order/views.py:736
+#: order/views.py:738
msgid "Error converting quantity to number"
msgstr ""
-#: order/views.py:742
+#: order/views.py:744
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:748
+#: order/views.py:750
msgid "No lines specified"
msgstr ""
-#: order/views.py:1069
+#: order/views.py:1071
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1129
+#: order/views.py:1131
msgid "Supplier part must be specified"
msgstr ""
-#: order/views.py:1135
+#: order/views.py:1137
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1254 order/views.py:1272
+#: order/views.py:1268 order/views.py:1286
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1288 order/views.py:1300
+#: order/views.py:1302 order/views.py:1314
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1293 order/views.py:1305
+#: order/views.py:1307 order/views.py:1319
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1318
+#: order/views.py:1332
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1363
+#: order/views.py:1377
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1379
+#: order/views.py:1393
msgid "Select line item"
msgstr ""
-#: order/views.py:1410
+#: order/views.py:1424
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1420
+#: order/views.py:1434
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1428
+#: order/views.py:1442
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1482
+#: order/views.py:1496
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1556
+#: order/views.py:1570
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1571
+#: order/views.py:1585
msgid "Remove allocation"
msgstr ""
+#: order/views.py:1657
+msgid "Sales order not found"
+msgstr ""
+
+#: order/views.py:1663
+msgid "Price not found"
+msgstr ""
+
+#: order/views.py:1666
+#, python-brace-format
+msgid "Updated {part} unit-price to {price}"
+msgstr ""
+
+#: order/views.py:1671
+#, python-brace-format
+msgid "Updated {part} unit-price to {price} and quantity to {qty}"
+msgstr ""
+
#: part/bom.py:138 part/models.py:72 part/models.py:762
#: part/templates/part/category.html:66 part/templates/part/detail.html:90
msgid "Default Location"
@@ -3391,7 +3427,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:122 part/models.py:2077
+#: part/forms.py:122 part/models.py:2115
msgid "Parent Part"
msgstr ""
@@ -3467,7 +3503,7 @@ msgstr ""
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:344 part/models.py:2171
+#: part/forms.py:344 part/models.py:2209
msgid "Sub part"
msgstr ""
@@ -3487,7 +3523,7 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:82 part/models.py:2123
+#: part/models.py:82 part/models.py:2161
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -3557,7 +3593,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73
+#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73
#: part/templates/part/set_category.html:15 templates/js/part.js:385
msgid "Category"
msgstr ""
@@ -3612,7 +3648,7 @@ msgstr ""
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106
+#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106
#: part/templates/part/params.html:29
msgid "Units"
msgstr ""
@@ -3679,167 +3715,171 @@ msgstr ""
msgid "Creation User"
msgstr ""
-#: part/models.py:1949
-msgid "Test templates can only be created for trackable parts"
-msgstr ""
-
-#: part/models.py:1966
-msgid "Test with this name already exists for this part"
-msgstr ""
-
-#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104
-msgid "Test Name"
+#: part/models.py:1616
+msgid "Sell multiple"
msgstr ""
#: part/models.py:1987
+msgid "Test templates can only be created for trackable parts"
+msgstr ""
+
+#: part/models.py:2004
+msgid "Test with this name already exists for this part"
+msgstr ""
+
+#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104
+msgid "Test Name"
+msgstr ""
+
+#: part/models.py:2025
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:1992
+#: part/models.py:2030
msgid "Test Description"
msgstr ""
-#: part/models.py:1993
+#: part/models.py:2031
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:1998 templates/js/part.js:647
+#: part/models.py:2036 templates/js/part.js:647
#: templates/js/table_filters.js:222
msgid "Required"
msgstr ""
-#: part/models.py:1999
+#: part/models.py:2037
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2004 templates/js/part.js:655
+#: part/models.py:2042 templates/js/part.js:655
msgid "Requires Value"
msgstr ""
-#: part/models.py:2005
+#: part/models.py:2043
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2010 templates/js/part.js:662
+#: part/models.py:2048 templates/js/part.js:662
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2011
+#: part/models.py:2049
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2044
+#: part/models.py:2082
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2049
+#: part/models.py:2087
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2051
+#: part/models.py:2089
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2079 part/models.py:2128 part/models.py:2129
+#: part/models.py:2117 part/models.py:2166 part/models.py:2167
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Data"
msgstr ""
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2133 templates/InvenTree/settings/category.html:67
+#: part/models.py:2171 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2172
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2163
+#: part/models.py:2201
msgid "Select parent part"
msgstr ""
-#: part/models.py:2172
+#: part/models.py:2210
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2178
+#: part/models.py:2216
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269
+#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269
msgid "Optional"
msgstr ""
-#: part/models.py:2180
+#: part/models.py:2218
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2183
+#: part/models.py:2221
msgid "Overage"
msgstr ""
-#: part/models.py:2184
+#: part/models.py:2222
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2187
+#: part/models.py:2225
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2190
+#: part/models.py:2228
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2230
msgid "Checksum"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2230
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286
+#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286
#: templates/js/table_filters.js:50
msgid "Inherited"
msgstr ""
-#: part/models.py:2197
+#: part/models.py:2235
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2273 part/views.py:1592 part/views.py:1644
+#: part/models.py:2311 part/views.py:1592 part/views.py:1644
#: stock/models.py:260
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2282 part/models.py:2284
+#: part/models.py:2320 part/models.py:2322
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2287
+#: part/models.py:2325
msgid "BOM Item"
msgstr ""
-#: part/models.py:2404
+#: part/models.py:2442
msgid "Part 1"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Part 2"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2440
+#: part/models.py:2478
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4042,7 +4082,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:29 part/views.py:2282
+#: part/templates/part/category.html:29 part/views.py:2290
msgid "Create new part category"
msgstr ""
@@ -4301,10 +4341,6 @@ msgstr ""
msgid "Sales Price Information"
msgstr ""
-#: part/templates/part/navbar.html:95
-msgid "Sale Price"
-msgstr ""
-
#: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr ""
@@ -4439,42 +4475,39 @@ msgstr ""
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_pricing.html:8
-#, python-format
-msgid "Pricing information for:
%(part)s."
-msgstr ""
-
-#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:19
msgid "Supplier Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:27
-#: part/templates/part/part_pricing.html:53
+#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:81
msgid "Unit Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:33
-#: part/templates/part/part_pricing.html:59
+#: part/templates/part/part_pricing.html:29
+#: part/templates/part/part_pricing.html:55
+#: part/templates/part/part_pricing.html:85
msgid "Total Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:41
+#: part/templates/part/part_pricing.html:37
msgid "No supplier pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:45
msgid "BOM Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:67
+#: part/templates/part/part_pricing.html:63
msgid "Note: BOM pricing is incomplete for this part"
msgstr ""
-#: part/templates/part/part_pricing.html:74
+#: part/templates/part/part_pricing.html:70
msgid "No BOM pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:84
+#: part/templates/part/part_pricing.html:94
msgid "No pricing information is available for this part."
msgstr ""
@@ -4732,63 +4765,63 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2081
+#: part/views.py:2089
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2091
+#: part/views.py:2099
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2098
+#: part/views.py:2106
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2106
+#: part/views.py:2114
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2156
+#: part/views.py:2164
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2170
+#: part/views.py:2178
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2230
+#: part/views.py:2238
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:2268
+#: part/views.py:2276
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2274
+#: part/views.py:2282
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2326
+#: part/views.py:2334
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2427
+#: part/views.py:2435
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2483
+#: part/views.py:2491
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2502
+#: part/views.py:2510
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2572
+#: part/views.py:2580
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2628
+#: part/views.py:2636
msgid "Confim BOM item deletion"
msgstr ""
@@ -6168,9 +6201,9 @@ msgstr ""
msgid "Submit Bug Report"
msgstr ""
-#: templates/about.html:82 templates/js/modals.js:550
-#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52
-#: templates/modals.html:93
+#: templates/about.html:82 templates/js/modals.js:559
+#: templates/js/modals.js:837 templates/modals.html:29 templates/modals.html:54
+#: templates/modals.html:97
msgid "Close"
msgstr ""
@@ -6234,7 +6267,7 @@ msgstr ""
msgid "Unknown response from server"
msgstr ""
-#: templates/js/barcode.js:119 templates/js/modals.js:857
+#: templates/js/barcode.js:119 templates/js/modals.js:892
msgid "Invalid server response"
msgstr ""
@@ -6481,92 +6514,92 @@ msgstr ""
msgid "Waiting for server..."
msgstr ""
-#: templates/js/modals.js:406
+#: templates/js/modals.js:415
msgid "Show Error Information"
msgstr ""
-#: templates/js/modals.js:473 templates/modals.html:73
+#: templates/js/modals.js:482 templates/modals.html:76
msgid "Accept"
msgstr ""
-#: templates/js/modals.js:474 templates/modals.html:72
+#: templates/js/modals.js:483 templates/modals.html:75
msgid "Cancel"
msgstr ""
-#: templates/js/modals.js:538
+#: templates/js/modals.js:547
msgid "Loading Data"
msgstr ""
-#: templates/js/modals.js:549 templates/js/modals.js:808
-#: templates/modals.html:29 templates/modals.html:53
+#: templates/js/modals.js:558 templates/js/modals.js:836
+#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
-#: templates/js/modals.js:760
+#: templates/js/modals.js:788
msgid "Invalid response from server"
msgstr ""
-#: templates/js/modals.js:760
+#: templates/js/modals.js:788
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/modals.js:773
+#: templates/js/modals.js:801
msgid "Error posting form data"
msgstr ""
-#: templates/js/modals.js:857
+#: templates/js/modals.js:892
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/modals.js:867
+#: templates/js/modals.js:902
msgid "No Response"
msgstr ""
-#: templates/js/modals.js:868
+#: templates/js/modals.js:903
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/modals.js:872
+#: templates/js/modals.js:907
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/modals.js:873
+#: templates/js/modals.js:908
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/modals.js:877
+#: templates/js/modals.js:912
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/modals.js:878
+#: templates/js/modals.js:913
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/modals.js:882
+#: templates/js/modals.js:917
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/modals.js:883
+#: templates/js/modals.js:918
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/modals.js:887
+#: templates/js/modals.js:922
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/modals.js:888
+#: templates/js/modals.js:923
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/modals.js:892
+#: templates/js/modals.js:927
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/modals.js:893
+#: templates/js/modals.js:928
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/modals.js:896
+#: templates/js/modals.js:931
msgid "Error requesting form data"
msgstr ""
@@ -7071,7 +7104,7 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/modals.html:21 templates/modals.html:46
+#: templates/modals.html:21 templates/modals.html:47
msgid "Form errors exist"
msgstr ""
diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po
index 464cc03956..db14d32c08 100644
--- a/InvenTree/locale/fr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/fr/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-07 13:19+0000\n"
+"POT-Creation-Date: 2021-05-07 13:55+0000\n"
"PO-Revision-Date: 2021-05-06 02:54\n"
"Last-Translator: \n"
"Language-Team: French\n"
@@ -122,7 +122,7 @@ msgstr "Commentaire"
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908
+#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/stock.js:1041
msgid "User"
@@ -133,7 +133,7 @@ msgid "upload date"
msgstr ""
#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101
-#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27
+#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27
#: report/models.py:179 templates/InvenTree/search.html:137
#: templates/InvenTree/search.html:289 templates/js/part.js:110
#: templates/js/part.js:553 templates/js/stock.js:944
@@ -141,8 +141,8 @@ msgid "Name"
msgstr ""
#: InvenTree/models.py:114 build/models.py:134
-#: build/templates/build/detail.html:21 company/models.py:342
-#: company/models.py:494 company/templates/company/detail.html:27
+#: build/templates/build/detail.html:21 company/models.py:339
+#: company/models.py:491 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:108
@@ -386,21 +386,20 @@ msgstr ""
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:123
-#: build/templates/build/detail.html:31 common/models.py:703
+#: build/templates/build/detail.html:31 common/models.py:705
#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261
-#: order/forms.py:278 order/models.py:603 order/models.py:794
+#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262
+#: order/forms.py:279 order/models.py:603 order/models.py:804
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:175
#: order/templates/order/sales_order_detail.html:70
#: order/templates/order/sales_order_detail.html:77
#: order/templates/order/sales_order_detail.html:159
#: order/templates/order/sales_order_detail.html:224 part/forms.py:342
-#: part/forms.py:371 part/forms.py:387 part/models.py:2178
+#: part/forms.py:371 part/forms.py:387 part/models.py:2216
#: part/templates/part/allocation.html:19
#: part/templates/part/allocation.html:53
-#: part/templates/part/part_pricing.html:11
-#: part/templates/part/part_pricing.html:18
+#: part/templates/part/part_pricing.html:13
#: part/templates/part/sale_prices.html:85
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -422,7 +421,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:233 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:234 stock/forms.py:118
msgid "Serial Numbers"
msgstr ""
@@ -525,7 +524,7 @@ msgstr ""
#: build/models.py:127 order/models.py:99 order/models.py:605
#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:219 part/models.py:2187
+#: order/templates/order/sales_order_detail.html:219 part/models.py:2225
#: 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:565 templates/js/build.js:1008
@@ -547,16 +546,16 @@ msgstr ""
#: build/models.py:152 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:118
-#: build/templates/build/detail.html:26 company/models.py:688
-#: order/models.py:647 order/models.py:679
+#: build/templates/build/detail.html:26 company/models.py:622
+#: order/models.py:647 order/models.py:680
#: order/templates/order/order_wizard/select_parts.html:30
#: order/templates/order/purchase_order_detail.html:131
#: order/templates/order/receive_parts.html:19
#: order/templates/order/sales_order_detail.html:207 part/models.py:321
-#: part/models.py:1876 part/models.py:1888 part/models.py:1906
-#: part/models.py:1981 part/models.py:2077 part/models.py:2162
+#: part/models.py:1914 part/models.py:1926 part/models.py:1944
+#: part/models.py:2019 part/models.py:2115 part/models.py:2200
#: part/templates/part/part_app_base.html:8
-#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29
+#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
@@ -682,13 +681,13 @@ msgid "Link to external URL"
msgstr ""
#: build/models.py:261 build/templates/build/navbar.html:53
-#: company/models.py:135 company/models.py:501
+#: company/models.py:132 company/models.py:498
#: company/templates/company/navbar.html:70
#: company/templates/company/navbar.html:73 order/models.py:123
#: order/models.py:607 order/templates/order/po_navbar.html:29
#: order/templates/order/po_navbar.html:32
#: order/templates/order/purchase_order_detail.html:209
-#: order/templates/order/sales_order_detail.html:264
+#: order/templates/order/sales_order_detail.html:272
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:871
#: part/templates/part/navbar.html:128
@@ -738,11 +737,11 @@ msgstr ""
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1172 order/models.py:768
+#: build/models.py:1172 order/models.py:778
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1176 order/models.py:771
+#: build/models.py:1176 order/models.py:781
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -818,7 +817,7 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:795
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:797
#: part/templates/part/category.html:127
msgid "Order Parts"
msgstr ""
@@ -961,7 +960,7 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:160
-#: build/templates/build/detail.html:84 order/models.py:677
+#: build/templates/build/detail.html:84 order/models.py:678
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:33
#: order/templates/order/sales_order_ship.html:25
@@ -1354,372 +1353,372 @@ msgstr ""
msgid "Add Build Order Attachment"
msgstr ""
-#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172
+#: build/views.py:1083 order/views.py:112 order/views.py:164 part/views.py:172
#: stock/views.py:277
msgid "Added attachment"
msgstr ""
-#: build/views.py:1119 order/views.py:189 order/views.py:210
+#: build/views.py:1119 order/views.py:191 order/views.py:212
msgid "Edit Attachment"
msgstr ""
-#: build/views.py:1129 order/views.py:193 order/views.py:214
+#: build/views.py:1129 order/views.py:195 order/views.py:216
msgid "Attachment updated"
msgstr ""
-#: build/views.py:1139 order/views.py:229 order/views.py:243
+#: build/views.py:1139 order/views.py:231 order/views.py:245
msgid "Delete Attachment"
msgstr ""
-#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333
+#: build/views.py:1144 order/views.py:237 order/views.py:251 stock/views.py:333
msgid "Deleted attachment"
msgstr ""
-#: common/models.py:56
+#: common/models.py:58
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:58
+#: common/models.py:60
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:62
+#: common/models.py:64
msgid "Use instance name"
msgstr ""
-#: common/models.py:63
+#: common/models.py:65
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:69 company/models.py:97 company/models.py:98
+#: common/models.py:71 company/models.py:94 company/models.py:95
msgid "Company name"
msgstr ""
-#: common/models.py:70
+#: common/models.py:72
msgid "Internal company name"
msgstr ""
-#: common/models.py:75
+#: common/models.py:77
msgid "Base URL"
msgstr ""
-#: common/models.py:76
+#: common/models.py:78
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:82
+#: common/models.py:84
msgid "Default Currency"
msgstr ""
-#: common/models.py:83
+#: common/models.py:85
msgid "Default currency"
msgstr ""
-#: common/models.py:89
+#: common/models.py:91
msgid "Download from URL"
msgstr ""
-#: common/models.py:90
+#: common/models.py:92
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:96
+#: common/models.py:98
msgid "Barcode Support"
msgstr ""
-#: common/models.py:97
+#: common/models.py:99
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:103
+#: common/models.py:105
msgid "IPN Regex"
msgstr ""
-#: common/models.py:104
+#: common/models.py:106
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:108
+#: common/models.py:110
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:109
+#: common/models.py:111
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:115
+#: common/models.py:117
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:116
+#: common/models.py:118
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:122
+#: common/models.py:124
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:123
+#: common/models.py:125
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:129
+#: common/models.py:131
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:130
+#: common/models.py:132
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:136
+#: common/models.py:138
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:137
+#: common/models.py:139
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:143
+#: common/models.py:145
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:144
+#: common/models.py:146
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:150
+#: common/models.py:152
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:151
+#: common/models.py:153
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160
+#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160
#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24
#: templates/js/table_filters.js:310
msgid "Template"
msgstr ""
-#: common/models.py:158
+#: common/models.py:160
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170
+#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170
#: templates/js/table_filters.js:123 templates/js/table_filters.js:322
msgid "Assembly"
msgstr ""
-#: common/models.py:165
+#: common/models.py:167
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180
+#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180
#: templates/js/table_filters.js:326
msgid "Component"
msgstr ""
-#: common/models.py:172
+#: common/models.py:174
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200
+#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr ""
-#: common/models.py:179
+#: common/models.py:181
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210
+#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210
#: templates/js/table_filters.js:334
msgid "Salable"
msgstr ""
-#: common/models.py:186
+#: common/models.py:188
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190
+#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190
#: templates/js/table_filters.js:32 templates/js/table_filters.js:338
msgid "Trackable"
msgstr ""
-#: common/models.py:193
+#: common/models.py:195
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150
+#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150
#: templates/js/table_filters.js:28
msgid "Virtual"
msgstr ""
-#: common/models.py:200
+#: common/models.py:202
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:206
+#: common/models.py:208
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:207
+#: common/models.py:209
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:213
+#: common/models.py:215
msgid "Debug Mode"
msgstr ""
-#: common/models.py:214
+#: common/models.py:216
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:220
+#: common/models.py:222
msgid "Page Size"
msgstr ""
-#: common/models.py:221
+#: common/models.py:223
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:231
+#: common/models.py:233
msgid "Test Reports"
msgstr ""
-#: common/models.py:232
+#: common/models.py:234
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:238
+#: common/models.py:240
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:239
+#: common/models.py:241
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:245
+#: common/models.py:247
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:246
+#: common/models.py:248
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:252
+#: common/models.py:254
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:253
+#: common/models.py:255
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:255 part/templates/part/detail.html:121
+#: common/models.py:257 part/templates/part/detail.html:121
msgid "days"
msgstr ""
-#: common/models.py:260
+#: common/models.py:262
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:261
+#: common/models.py:263
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:267
+#: common/models.py:269
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:268
+#: common/models.py:270
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:274
+#: common/models.py:276
msgid "Group by Part"
msgstr ""
-#: common/models.py:275
+#: common/models.py:277
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:281
+#: common/models.py:283
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:282
+#: common/models.py:284
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:288
+#: common/models.py:290
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:289
+#: common/models.py:291
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:294
+#: common/models.py:296
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:295
+#: common/models.py:297
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:299
+#: common/models.py:301
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:300
+#: common/models.py:302
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:305
+#: common/models.py:307
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:306
+#: common/models.py:308
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:529
+#: common/models.py:531
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:531
+#: common/models.py:533
msgid "Settings value"
msgstr ""
-#: common/models.py:566
+#: common/models.py:568
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:589
+#: common/models.py:591
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:600
+#: common/models.py:602
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:623
+#: common/models.py:625
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:704 company/forms.py:177
+#: common/models.py:706 company/forms.py:177
msgid "Price break quantity"
msgstr ""
-#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82
#: part/templates/part/sale_prices.html:90 templates/js/bom.js:255
msgid "Price"
msgstr ""
-#: common/models.py:713
+#: common/models.py:715
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:736
+#: common/models.py:804
msgid "Default"
msgstr ""
@@ -1739,12 +1738,12 @@ msgstr ""
msgid "Supplied value must be a boolean"
msgstr ""
-#: company/forms.py:38 company/models.py:145
+#: company/forms.py:38 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
msgstr ""
-#: company/forms.py:39 company/models.py:147
+#: company/forms.py:39 company/models.py:144
msgid "Default currency used for this company"
msgstr ""
@@ -1764,15 +1763,15 @@ msgstr ""
msgid "Single quantity price"
msgstr ""
-#: company/forms.py:128 company/models.py:324
+#: company/forms.py:128 company/models.py:321
msgid "Select manufacturer"
msgstr ""
-#: company/forms.py:134 company/models.py:331
+#: company/forms.py:134 company/models.py:328
msgid "Manufacturer Part Number"
msgstr ""
-#: company/forms.py:136 company/models.py:330
+#: company/forms.py:136 company/models.py:327
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:101
@@ -1782,56 +1781,56 @@ msgstr ""
msgid "MPN"
msgstr ""
-#: company/models.py:102
+#: company/models.py:99
msgid "Company description"
msgstr ""
-#: company/models.py:103
+#: company/models.py:100
msgid "Description of the company"
msgstr ""
-#: company/models.py:107 company/templates/company/company_base.html:70
+#: company/models.py:104 company/templates/company/company_base.html:70
#: company/templates/company/detail.html:33 templates/js/company.js:60
msgid "Website"
msgstr ""
-#: company/models.py:107
+#: company/models.py:104
msgid "Company website URL"
msgstr ""
-#: company/models.py:110 company/templates/company/company_base.html:77
+#: company/models.py:107 company/templates/company/company_base.html:77
msgid "Address"
msgstr ""
-#: company/models.py:111
+#: company/models.py:108
msgid "Company address"
msgstr ""
-#: company/models.py:114
+#: company/models.py:111
msgid "Phone number"
msgstr ""
-#: company/models.py:115
+#: company/models.py:112
msgid "Contact phone number"
msgstr ""
-#: company/models.py:118 company/templates/company/company_base.html:91
+#: company/models.py:115 company/templates/company/company_base.html:91
msgid "Email"
msgstr ""
-#: company/models.py:118
+#: company/models.py:115
msgid "Contact email address"
msgstr ""
-#: company/models.py:121 company/templates/company/company_base.html:98
+#: company/models.py:118 company/templates/company/company_base.html:98
msgid "Contact"
msgstr ""
-#: company/models.py:122
+#: company/models.py:119
msgid "Point of contact"
msgstr ""
-#: company/models.py:124 company/models.py:336 company/models.py:488
+#: company/models.py:121 company/models.py:333 company/models.py:485
#: order/models.py:103 part/models.py:743
#: report/templates/report/inventree_build_order_base.html:165
#: stock/models.py:1556 templates/js/company.js:188 templates/js/company.js:318
@@ -1839,48 +1838,48 @@ msgstr ""
msgid "Link"
msgstr ""
-#: company/models.py:124
+#: company/models.py:121
msgid "Link to external company information"
msgstr ""
-#: company/models.py:132 part/models.py:753
+#: company/models.py:129 part/models.py:753
msgid "Image"
msgstr ""
-#: company/models.py:137
+#: company/models.py:134
msgid "is customer"
msgstr ""
-#: company/models.py:137
+#: company/models.py:134
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:139
+#: company/models.py:136
msgid "is supplier"
msgstr ""
-#: company/models.py:139
+#: company/models.py:136
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:141
+#: company/models.py:138
msgid "is manufacturer"
msgstr ""
-#: company/models.py:141
+#: company/models.py:138
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:308 company/models.py:459 stock/models.py:373
+#: company/models.py:305 company/models.py:456 stock/models.py:373
#: stock/templates/stock/item_base.html:224
msgid "Base Part"
msgstr ""
-#: company/models.py:312 company/models.py:463 order/views.py:1384
+#: company/models.py:309 company/models.py:460 order/views.py:1398
msgid "Select part"
msgstr ""
-#: company/models.py:323 company/templates/company/detail.html:57
+#: company/models.py:320 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
@@ -1891,15 +1890,15 @@ msgstr ""
msgid "Manufacturer"
msgstr ""
-#: company/models.py:337
+#: company/models.py:334
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:343
+#: company/models.py:340
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:469 company/templates/company/detail.html:62
+#: company/models.py:466 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:190
#: order/templates/order/order_base.html:92
@@ -1910,70 +1909,70 @@ msgstr ""
msgid "Supplier"
msgstr ""
-#: company/models.py:470
+#: company/models.py:467
msgid "Select supplier"
msgstr ""
-#: company/models.py:475 company/templates/company/supplier_part_base.html:88
+#: company/models.py:472 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
#: order/templates/order/purchase_order_detail.html:149 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr ""
-#: company/models.py:476
+#: company/models.py:473
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:482
+#: company/models.py:479
#: company/templates/company/manufacturer_part_base.html:6
#: company/templates/company/manufacturer_part_base.html:19
#: stock/templates/stock/item_base.html:346
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:483
+#: company/models.py:480
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:489
+#: company/models.py:486
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:495
+#: company/models.py:492
msgid "Supplier part description"
msgstr ""
-#: company/models.py:500 company/templates/company/supplier_part_base.html:115
-#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190
+#: company/models.py:497 company/templates/company/supplier_part_base.html:115
+#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "base cost"
msgstr ""
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:506 company/templates/company/supplier_part_base.html:108
+#: company/models.py:503 company/templates/company/supplier_part_base.html:108
#: stock/models.py:397 stock/templates/stock/item_base.html:299
#: templates/js/stock.js:667
msgid "Packaging"
msgstr ""
-#: company/models.py:506
+#: company/models.py:503
msgid "Part packaging"
msgstr ""
-#: company/models.py:508
+#: company/models.py:505 part/models.py:1616
msgid "multiple"
msgstr ""
-#: company/models.py:508
+#: company/models.py:505
msgid "Order multiple"
msgstr ""
@@ -1999,7 +1998,7 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:46 order/views.py:306
+#: company/templates/company/company_base.html:46 order/views.py:308
msgid "Create Purchase Order"
msgstr ""
@@ -2369,7 +2368,7 @@ msgid "Pricing Information"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794
-#: part/templates/part/sale_prices.html:17 part/views.py:2636
+#: part/templates/part/sale_prices.html:17 part/views.py:2644
msgid "Add Price Break"
msgstr ""
@@ -2484,15 +2483,15 @@ msgstr ""
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:799 part/views.py:2640
+#: company/views.py:799 part/views.py:2648
msgid "Added new price break"
msgstr ""
-#: company/views.py:855 part/views.py:2684
+#: company/views.py:855 part/views.py:2692
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:870 part/views.py:2698
+#: company/views.py:870 part/views.py:2706
msgid "Delete Price Break"
msgstr ""
@@ -2586,11 +2585,11 @@ msgstr ""
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:235
+#: order/forms.py:236
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:241
+#: order/forms.py:242
msgid "Enter quantity of stock items"
msgstr ""
@@ -2725,7 +2724,7 @@ msgstr ""
msgid "Line item notes"
msgstr ""
-#: order/models.py:633 order/models.py:677
+#: order/models.py:633 order/models.py:678
#: part/templates/part/allocation.html:17
#: part/templates/part/allocation.html:45
msgid "Order"
@@ -2762,39 +2761,48 @@ msgstr ""
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:753 order/models.py:755
+#: order/models.py:687 part/templates/part/navbar.html:95
+#: part/templates/part/part_pricing.html:78
+msgid "Sale Price"
+msgstr ""
+
+#: order/models.py:688
+msgid "Unit sale price"
+msgstr ""
+
+#: order/models.py:763 order/models.py:765
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:759
+#: order/models.py:769
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:761
+#: order/models.py:771
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:764
+#: order/models.py:774
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:774
+#: order/models.py:784
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:779
+#: order/models.py:789
msgid "Line"
msgstr ""
-#: order/models.py:790
+#: order/models.py:800
msgid "Item"
msgstr ""
-#: order/models.py:791
+#: order/models.py:801
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:794
+#: order/models.py:804
msgid "Enter stock allocation quantity"
msgstr ""
@@ -2952,8 +2960,8 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1120
-#: order/views.py:1203
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1122
+#: order/views.py:1205
msgid "Add Line Item"
msgstr ""
@@ -2962,11 +2970,12 @@ msgid "No line items found"
msgstr ""
#: order/templates/order/purchase_order_detail.html:180
+#: order/templates/order/sales_order_detail.html:229
msgid "Unit Price"
msgstr ""
#: order/templates/order/purchase_order_detail.html:221
-#: order/templates/order/sales_order_detail.html:294
+#: order/templates/order/sales_order_detail.html:303
msgid "Edit line item"
msgstr ""
@@ -3081,36 +3090,45 @@ msgstr ""
msgid "ID"
msgstr ""
-#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579
+#: order/templates/order/sales_order_detail.html:237 templates/js/build.js:579
#: templates/js/build.js:845
msgid "Allocated"
msgstr ""
-#: order/templates/order/sales_order_detail.html:231
+#: order/templates/order/sales_order_detail.html:239
msgid "Fulfilled"
msgstr ""
-#: order/templates/order/sales_order_detail.html:279
+#: order/templates/order/sales_order_detail.html:287
msgid "Allocate serial numbers"
msgstr ""
-#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641
+#: order/templates/order/sales_order_detail.html:290 templates/js/build.js:641
msgid "Allocate stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:285
+#: order/templates/order/sales_order_detail.html:293
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634
+#: order/templates/order/sales_order_detail.html:297 templates/js/build.js:634
#: templates/js/build.js:1052
msgid "Build stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:295
+#: order/templates/order/sales_order_detail.html:300
+#: order/templates/order/sales_order_detail.html:409
+msgid "Calculate price"
+msgstr ""
+
+#: order/templates/order/sales_order_detail.html:304
msgid "Delete line item "
msgstr ""
+#: order/templates/order/sales_order_detail.html:415
+msgid "Update Unit Price"
+msgstr ""
+
#: order/templates/order/sales_order_notes.html:14
msgid "Sales Order Notes"
msgstr ""
@@ -3152,167 +3170,185 @@ msgstr ""
msgid "Are you sure you wish to delete this line item?"
msgstr ""
-#: order/views.py:99
+#: order/views.py:101
msgid "Add Purchase Order Attachment"
msgstr ""
-#: order/views.py:149
+#: order/views.py:151
msgid "Add Sales Order Attachment"
msgstr ""
-#: order/views.py:341
+#: order/views.py:343
msgid "Create Sales Order"
msgstr ""
-#: order/views.py:376
+#: order/views.py:378
msgid "Edit Purchase Order"
msgstr ""
-#: order/views.py:396
+#: order/views.py:398
msgid "Edit Sales Order"
msgstr ""
-#: order/views.py:412
+#: order/views.py:414
msgid "Cancel Order"
msgstr ""
-#: order/views.py:421 order/views.py:447
+#: order/views.py:423 order/views.py:449
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:424 order/views.py:450
+#: order/views.py:426 order/views.py:452
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:438
+#: order/views.py:440
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:464
+#: order/views.py:466
msgid "Issue Order"
msgstr ""
-#: order/views.py:473
+#: order/views.py:475
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:483
+#: order/views.py:485
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:494
+#: order/views.py:496
msgid "Complete Order"
msgstr ""
-#: order/views.py:510
+#: order/views.py:512
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:521
+#: order/views.py:523
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:531
+#: order/views.py:533
msgid "Ship Order"
msgstr ""
-#: order/views.py:547
+#: order/views.py:549
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:553
+#: order/views.py:555
msgid "Could not ship order"
msgstr ""
-#: order/views.py:607
+#: order/views.py:609
msgid "Receive Parts"
msgstr ""
-#: order/views.py:677
+#: order/views.py:679
msgid "Items received"
msgstr ""
-#: order/views.py:691
+#: order/views.py:693
msgid "No destination set"
msgstr ""
-#: order/views.py:736
+#: order/views.py:738
msgid "Error converting quantity to number"
msgstr ""
-#: order/views.py:742
+#: order/views.py:744
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:748
+#: order/views.py:750
msgid "No lines specified"
msgstr ""
-#: order/views.py:1069
+#: order/views.py:1071
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1129
+#: order/views.py:1131
msgid "Supplier part must be specified"
msgstr ""
-#: order/views.py:1135
+#: order/views.py:1137
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1254 order/views.py:1272
+#: order/views.py:1268 order/views.py:1286
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1288 order/views.py:1300
+#: order/views.py:1302 order/views.py:1314
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1293 order/views.py:1305
+#: order/views.py:1307 order/views.py:1319
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1318
+#: order/views.py:1332
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1363
+#: order/views.py:1377
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1379
+#: order/views.py:1393
msgid "Select line item"
msgstr ""
-#: order/views.py:1410
+#: order/views.py:1424
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1420
+#: order/views.py:1434
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1428
+#: order/views.py:1442
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1482
+#: order/views.py:1496
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1556
+#: order/views.py:1570
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1571
+#: order/views.py:1585
msgid "Remove allocation"
msgstr ""
+#: order/views.py:1657
+msgid "Sales order not found"
+msgstr ""
+
+#: order/views.py:1663
+msgid "Price not found"
+msgstr ""
+
+#: order/views.py:1666
+#, python-brace-format
+msgid "Updated {part} unit-price to {price}"
+msgstr ""
+
+#: order/views.py:1671
+#, python-brace-format
+msgid "Updated {part} unit-price to {price} and quantity to {qty}"
+msgstr ""
+
#: part/bom.py:138 part/models.py:72 part/models.py:762
#: part/templates/part/category.html:66 part/templates/part/detail.html:90
msgid "Default Location"
@@ -3391,7 +3427,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:122 part/models.py:2077
+#: part/forms.py:122 part/models.py:2115
msgid "Parent Part"
msgstr ""
@@ -3467,7 +3503,7 @@ msgstr ""
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:344 part/models.py:2171
+#: part/forms.py:344 part/models.py:2209
msgid "Sub part"
msgstr ""
@@ -3487,7 +3523,7 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:82 part/models.py:2123
+#: part/models.py:82 part/models.py:2161
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -3557,7 +3593,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73
+#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73
#: part/templates/part/set_category.html:15 templates/js/part.js:385
msgid "Category"
msgstr ""
@@ -3612,7 +3648,7 @@ msgstr ""
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106
+#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106
#: part/templates/part/params.html:29
msgid "Units"
msgstr ""
@@ -3679,167 +3715,171 @@ msgstr ""
msgid "Creation User"
msgstr ""
-#: part/models.py:1949
-msgid "Test templates can only be created for trackable parts"
-msgstr ""
-
-#: part/models.py:1966
-msgid "Test with this name already exists for this part"
-msgstr ""
-
-#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104
-msgid "Test Name"
+#: part/models.py:1616
+msgid "Sell multiple"
msgstr ""
#: part/models.py:1987
+msgid "Test templates can only be created for trackable parts"
+msgstr ""
+
+#: part/models.py:2004
+msgid "Test with this name already exists for this part"
+msgstr ""
+
+#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104
+msgid "Test Name"
+msgstr ""
+
+#: part/models.py:2025
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:1992
+#: part/models.py:2030
msgid "Test Description"
msgstr ""
-#: part/models.py:1993
+#: part/models.py:2031
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:1998 templates/js/part.js:647
+#: part/models.py:2036 templates/js/part.js:647
#: templates/js/table_filters.js:222
msgid "Required"
msgstr ""
-#: part/models.py:1999
+#: part/models.py:2037
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2004 templates/js/part.js:655
+#: part/models.py:2042 templates/js/part.js:655
msgid "Requires Value"
msgstr ""
-#: part/models.py:2005
+#: part/models.py:2043
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2010 templates/js/part.js:662
+#: part/models.py:2048 templates/js/part.js:662
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2011
+#: part/models.py:2049
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2044
+#: part/models.py:2082
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2049
+#: part/models.py:2087
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2051
+#: part/models.py:2089
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2079 part/models.py:2128 part/models.py:2129
+#: part/models.py:2117 part/models.py:2166 part/models.py:2167
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Data"
msgstr ""
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2133 templates/InvenTree/settings/category.html:67
+#: part/models.py:2171 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2172
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2163
+#: part/models.py:2201
msgid "Select parent part"
msgstr ""
-#: part/models.py:2172
+#: part/models.py:2210
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2178
+#: part/models.py:2216
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269
+#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269
msgid "Optional"
msgstr ""
-#: part/models.py:2180
+#: part/models.py:2218
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2183
+#: part/models.py:2221
msgid "Overage"
msgstr ""
-#: part/models.py:2184
+#: part/models.py:2222
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2187
+#: part/models.py:2225
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2190
+#: part/models.py:2228
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2230
msgid "Checksum"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2230
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286
+#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286
#: templates/js/table_filters.js:50
msgid "Inherited"
msgstr ""
-#: part/models.py:2197
+#: part/models.py:2235
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2273 part/views.py:1592 part/views.py:1644
+#: part/models.py:2311 part/views.py:1592 part/views.py:1644
#: stock/models.py:260
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2282 part/models.py:2284
+#: part/models.py:2320 part/models.py:2322
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2287
+#: part/models.py:2325
msgid "BOM Item"
msgstr ""
-#: part/models.py:2404
+#: part/models.py:2442
msgid "Part 1"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Part 2"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2440
+#: part/models.py:2478
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4042,7 +4082,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:29 part/views.py:2282
+#: part/templates/part/category.html:29 part/views.py:2290
msgid "Create new part category"
msgstr ""
@@ -4301,10 +4341,6 @@ msgstr ""
msgid "Sales Price Information"
msgstr ""
-#: part/templates/part/navbar.html:95
-msgid "Sale Price"
-msgstr ""
-
#: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr ""
@@ -4439,42 +4475,39 @@ msgstr ""
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_pricing.html:8
-#, python-format
-msgid "Pricing information for:
%(part)s."
-msgstr ""
-
-#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:19
msgid "Supplier Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:27
-#: part/templates/part/part_pricing.html:53
+#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:81
msgid "Unit Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:33
-#: part/templates/part/part_pricing.html:59
+#: part/templates/part/part_pricing.html:29
+#: part/templates/part/part_pricing.html:55
+#: part/templates/part/part_pricing.html:85
msgid "Total Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:41
+#: part/templates/part/part_pricing.html:37
msgid "No supplier pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:45
msgid "BOM Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:67
+#: part/templates/part/part_pricing.html:63
msgid "Note: BOM pricing is incomplete for this part"
msgstr ""
-#: part/templates/part/part_pricing.html:74
+#: part/templates/part/part_pricing.html:70
msgid "No BOM pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:84
+#: part/templates/part/part_pricing.html:94
msgid "No pricing information is available for this part."
msgstr ""
@@ -4732,63 +4765,63 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2081
+#: part/views.py:2089
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2091
+#: part/views.py:2099
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2098
+#: part/views.py:2106
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2106
+#: part/views.py:2114
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2156
+#: part/views.py:2164
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2170
+#: part/views.py:2178
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2230
+#: part/views.py:2238
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:2268
+#: part/views.py:2276
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2274
+#: part/views.py:2282
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2326
+#: part/views.py:2334
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2427
+#: part/views.py:2435
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2483
+#: part/views.py:2491
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2502
+#: part/views.py:2510
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2572
+#: part/views.py:2580
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2628
+#: part/views.py:2636
msgid "Confim BOM item deletion"
msgstr ""
@@ -6166,9 +6199,9 @@ msgstr ""
msgid "Submit Bug Report"
msgstr ""
-#: templates/about.html:82 templates/js/modals.js:550
-#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52
-#: templates/modals.html:93
+#: templates/about.html:82 templates/js/modals.js:559
+#: templates/js/modals.js:837 templates/modals.html:29 templates/modals.html:54
+#: templates/modals.html:97
msgid "Close"
msgstr ""
@@ -6232,7 +6265,7 @@ msgstr ""
msgid "Unknown response from server"
msgstr ""
-#: templates/js/barcode.js:119 templates/js/modals.js:857
+#: templates/js/barcode.js:119 templates/js/modals.js:892
msgid "Invalid server response"
msgstr ""
@@ -6479,92 +6512,92 @@ msgstr ""
msgid "Waiting for server..."
msgstr ""
-#: templates/js/modals.js:406
+#: templates/js/modals.js:415
msgid "Show Error Information"
msgstr ""
-#: templates/js/modals.js:473 templates/modals.html:73
+#: templates/js/modals.js:482 templates/modals.html:76
msgid "Accept"
msgstr ""
-#: templates/js/modals.js:474 templates/modals.html:72
+#: templates/js/modals.js:483 templates/modals.html:75
msgid "Cancel"
msgstr ""
-#: templates/js/modals.js:538
+#: templates/js/modals.js:547
msgid "Loading Data"
msgstr ""
-#: templates/js/modals.js:549 templates/js/modals.js:808
-#: templates/modals.html:29 templates/modals.html:53
+#: templates/js/modals.js:558 templates/js/modals.js:836
+#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
-#: templates/js/modals.js:760
+#: templates/js/modals.js:788
msgid "Invalid response from server"
msgstr ""
-#: templates/js/modals.js:760
+#: templates/js/modals.js:788
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/modals.js:773
+#: templates/js/modals.js:801
msgid "Error posting form data"
msgstr ""
-#: templates/js/modals.js:857
+#: templates/js/modals.js:892
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/modals.js:867
+#: templates/js/modals.js:902
msgid "No Response"
msgstr ""
-#: templates/js/modals.js:868
+#: templates/js/modals.js:903
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/modals.js:872
+#: templates/js/modals.js:907
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/modals.js:873
+#: templates/js/modals.js:908
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/modals.js:877
+#: templates/js/modals.js:912
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/modals.js:878
+#: templates/js/modals.js:913
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/modals.js:882
+#: templates/js/modals.js:917
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/modals.js:883
+#: templates/js/modals.js:918
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/modals.js:887
+#: templates/js/modals.js:922
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/modals.js:888
+#: templates/js/modals.js:923
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/modals.js:892
+#: templates/js/modals.js:927
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/modals.js:893
+#: templates/js/modals.js:928
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/modals.js:896
+#: templates/js/modals.js:931
msgid "Error requesting form data"
msgstr ""
@@ -7069,7 +7102,7 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/modals.html:21 templates/modals.html:46
+#: templates/modals.html:21 templates/modals.html:47
msgid "Form errors exist"
msgstr ""
diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po
index 8fcc522831..f2a87dfb80 100644
--- a/InvenTree/locale/it/LC_MESSAGES/django.po
+++ b/InvenTree/locale/it/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-07 13:19+0000\n"
+"POT-Creation-Date: 2021-05-07 13:55+0000\n"
"PO-Revision-Date: 2021-05-06 02:54\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
@@ -122,7 +122,7 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908
+#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/stock.js:1041
msgid "User"
@@ -133,7 +133,7 @@ msgid "upload date"
msgstr ""
#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101
-#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27
+#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27
#: report/models.py:179 templates/InvenTree/search.html:137
#: templates/InvenTree/search.html:289 templates/js/part.js:110
#: templates/js/part.js:553 templates/js/stock.js:944
@@ -141,8 +141,8 @@ msgid "Name"
msgstr ""
#: InvenTree/models.py:114 build/models.py:134
-#: build/templates/build/detail.html:21 company/models.py:342
-#: company/models.py:494 company/templates/company/detail.html:27
+#: build/templates/build/detail.html:21 company/models.py:339
+#: company/models.py:491 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:108
@@ -386,21 +386,20 @@ msgstr ""
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:123
-#: build/templates/build/detail.html:31 common/models.py:703
+#: build/templates/build/detail.html:31 common/models.py:705
#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261
-#: order/forms.py:278 order/models.py:603 order/models.py:794
+#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262
+#: order/forms.py:279 order/models.py:603 order/models.py:804
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:175
#: order/templates/order/sales_order_detail.html:70
#: order/templates/order/sales_order_detail.html:77
#: order/templates/order/sales_order_detail.html:159
#: order/templates/order/sales_order_detail.html:224 part/forms.py:342
-#: part/forms.py:371 part/forms.py:387 part/models.py:2178
+#: part/forms.py:371 part/forms.py:387 part/models.py:2216
#: part/templates/part/allocation.html:19
#: part/templates/part/allocation.html:53
-#: part/templates/part/part_pricing.html:11
-#: part/templates/part/part_pricing.html:18
+#: part/templates/part/part_pricing.html:13
#: part/templates/part/sale_prices.html:85
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -422,7 +421,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:233 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:234 stock/forms.py:118
msgid "Serial Numbers"
msgstr ""
@@ -525,7 +524,7 @@ msgstr ""
#: build/models.py:127 order/models.py:99 order/models.py:605
#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:219 part/models.py:2187
+#: order/templates/order/sales_order_detail.html:219 part/models.py:2225
#: 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:565 templates/js/build.js:1008
@@ -547,16 +546,16 @@ msgstr ""
#: build/models.py:152 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:118
-#: build/templates/build/detail.html:26 company/models.py:688
-#: order/models.py:647 order/models.py:679
+#: build/templates/build/detail.html:26 company/models.py:622
+#: order/models.py:647 order/models.py:680
#: order/templates/order/order_wizard/select_parts.html:30
#: order/templates/order/purchase_order_detail.html:131
#: order/templates/order/receive_parts.html:19
#: order/templates/order/sales_order_detail.html:207 part/models.py:321
-#: part/models.py:1876 part/models.py:1888 part/models.py:1906
-#: part/models.py:1981 part/models.py:2077 part/models.py:2162
+#: part/models.py:1914 part/models.py:1926 part/models.py:1944
+#: part/models.py:2019 part/models.py:2115 part/models.py:2200
#: part/templates/part/part_app_base.html:8
-#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29
+#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
@@ -682,13 +681,13 @@ msgid "Link to external URL"
msgstr ""
#: build/models.py:261 build/templates/build/navbar.html:53
-#: company/models.py:135 company/models.py:501
+#: company/models.py:132 company/models.py:498
#: company/templates/company/navbar.html:70
#: company/templates/company/navbar.html:73 order/models.py:123
#: order/models.py:607 order/templates/order/po_navbar.html:29
#: order/templates/order/po_navbar.html:32
#: order/templates/order/purchase_order_detail.html:209
-#: order/templates/order/sales_order_detail.html:264
+#: order/templates/order/sales_order_detail.html:272
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:871
#: part/templates/part/navbar.html:128
@@ -738,11 +737,11 @@ msgstr ""
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1172 order/models.py:768
+#: build/models.py:1172 order/models.py:778
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1176 order/models.py:771
+#: build/models.py:1176 order/models.py:781
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -818,7 +817,7 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:795
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:797
#: part/templates/part/category.html:127
msgid "Order Parts"
msgstr ""
@@ -961,7 +960,7 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:160
-#: build/templates/build/detail.html:84 order/models.py:677
+#: build/templates/build/detail.html:84 order/models.py:678
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:33
#: order/templates/order/sales_order_ship.html:25
@@ -1354,372 +1353,372 @@ msgstr ""
msgid "Add Build Order Attachment"
msgstr ""
-#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172
+#: build/views.py:1083 order/views.py:112 order/views.py:164 part/views.py:172
#: stock/views.py:277
msgid "Added attachment"
msgstr ""
-#: build/views.py:1119 order/views.py:189 order/views.py:210
+#: build/views.py:1119 order/views.py:191 order/views.py:212
msgid "Edit Attachment"
msgstr ""
-#: build/views.py:1129 order/views.py:193 order/views.py:214
+#: build/views.py:1129 order/views.py:195 order/views.py:216
msgid "Attachment updated"
msgstr ""
-#: build/views.py:1139 order/views.py:229 order/views.py:243
+#: build/views.py:1139 order/views.py:231 order/views.py:245
msgid "Delete Attachment"
msgstr ""
-#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333
+#: build/views.py:1144 order/views.py:237 order/views.py:251 stock/views.py:333
msgid "Deleted attachment"
msgstr ""
-#: common/models.py:56
+#: common/models.py:58
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:58
+#: common/models.py:60
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:62
+#: common/models.py:64
msgid "Use instance name"
msgstr ""
-#: common/models.py:63
+#: common/models.py:65
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:69 company/models.py:97 company/models.py:98
+#: common/models.py:71 company/models.py:94 company/models.py:95
msgid "Company name"
msgstr ""
-#: common/models.py:70
+#: common/models.py:72
msgid "Internal company name"
msgstr ""
-#: common/models.py:75
+#: common/models.py:77
msgid "Base URL"
msgstr ""
-#: common/models.py:76
+#: common/models.py:78
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:82
+#: common/models.py:84
msgid "Default Currency"
msgstr ""
-#: common/models.py:83
+#: common/models.py:85
msgid "Default currency"
msgstr ""
-#: common/models.py:89
+#: common/models.py:91
msgid "Download from URL"
msgstr ""
-#: common/models.py:90
+#: common/models.py:92
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:96
+#: common/models.py:98
msgid "Barcode Support"
msgstr ""
-#: common/models.py:97
+#: common/models.py:99
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:103
+#: common/models.py:105
msgid "IPN Regex"
msgstr ""
-#: common/models.py:104
+#: common/models.py:106
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:108
+#: common/models.py:110
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:109
+#: common/models.py:111
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:115
+#: common/models.py:117
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:116
+#: common/models.py:118
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:122
+#: common/models.py:124
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:123
+#: common/models.py:125
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:129
+#: common/models.py:131
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:130
+#: common/models.py:132
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:136
+#: common/models.py:138
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:137
+#: common/models.py:139
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:143
+#: common/models.py:145
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:144
+#: common/models.py:146
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:150
+#: common/models.py:152
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:151
+#: common/models.py:153
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160
+#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160
#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24
#: templates/js/table_filters.js:310
msgid "Template"
msgstr ""
-#: common/models.py:158
+#: common/models.py:160
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170
+#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170
#: templates/js/table_filters.js:123 templates/js/table_filters.js:322
msgid "Assembly"
msgstr ""
-#: common/models.py:165
+#: common/models.py:167
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180
+#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180
#: templates/js/table_filters.js:326
msgid "Component"
msgstr ""
-#: common/models.py:172
+#: common/models.py:174
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200
+#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr ""
-#: common/models.py:179
+#: common/models.py:181
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210
+#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210
#: templates/js/table_filters.js:334
msgid "Salable"
msgstr ""
-#: common/models.py:186
+#: common/models.py:188
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190
+#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190
#: templates/js/table_filters.js:32 templates/js/table_filters.js:338
msgid "Trackable"
msgstr ""
-#: common/models.py:193
+#: common/models.py:195
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150
+#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150
#: templates/js/table_filters.js:28
msgid "Virtual"
msgstr ""
-#: common/models.py:200
+#: common/models.py:202
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:206
+#: common/models.py:208
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:207
+#: common/models.py:209
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:213
+#: common/models.py:215
msgid "Debug Mode"
msgstr ""
-#: common/models.py:214
+#: common/models.py:216
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:220
+#: common/models.py:222
msgid "Page Size"
msgstr ""
-#: common/models.py:221
+#: common/models.py:223
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:231
+#: common/models.py:233
msgid "Test Reports"
msgstr ""
-#: common/models.py:232
+#: common/models.py:234
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:238
+#: common/models.py:240
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:239
+#: common/models.py:241
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:245
+#: common/models.py:247
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:246
+#: common/models.py:248
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:252
+#: common/models.py:254
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:253
+#: common/models.py:255
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:255 part/templates/part/detail.html:121
+#: common/models.py:257 part/templates/part/detail.html:121
msgid "days"
msgstr ""
-#: common/models.py:260
+#: common/models.py:262
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:261
+#: common/models.py:263
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:267
+#: common/models.py:269
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:268
+#: common/models.py:270
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:274
+#: common/models.py:276
msgid "Group by Part"
msgstr ""
-#: common/models.py:275
+#: common/models.py:277
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:281
+#: common/models.py:283
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:282
+#: common/models.py:284
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:288
+#: common/models.py:290
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:289
+#: common/models.py:291
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:294
+#: common/models.py:296
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:295
+#: common/models.py:297
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:299
+#: common/models.py:301
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:300
+#: common/models.py:302
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:305
+#: common/models.py:307
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:306
+#: common/models.py:308
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:529
+#: common/models.py:531
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:531
+#: common/models.py:533
msgid "Settings value"
msgstr ""
-#: common/models.py:566
+#: common/models.py:568
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:589
+#: common/models.py:591
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:600
+#: common/models.py:602
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:623
+#: common/models.py:625
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:704 company/forms.py:177
+#: common/models.py:706 company/forms.py:177
msgid "Price break quantity"
msgstr ""
-#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82
#: part/templates/part/sale_prices.html:90 templates/js/bom.js:255
msgid "Price"
msgstr ""
-#: common/models.py:713
+#: common/models.py:715
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:736
+#: common/models.py:804
msgid "Default"
msgstr ""
@@ -1739,12 +1738,12 @@ msgstr ""
msgid "Supplied value must be a boolean"
msgstr ""
-#: company/forms.py:38 company/models.py:145
+#: company/forms.py:38 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
msgstr ""
-#: company/forms.py:39 company/models.py:147
+#: company/forms.py:39 company/models.py:144
msgid "Default currency used for this company"
msgstr ""
@@ -1764,15 +1763,15 @@ msgstr ""
msgid "Single quantity price"
msgstr ""
-#: company/forms.py:128 company/models.py:324
+#: company/forms.py:128 company/models.py:321
msgid "Select manufacturer"
msgstr ""
-#: company/forms.py:134 company/models.py:331
+#: company/forms.py:134 company/models.py:328
msgid "Manufacturer Part Number"
msgstr ""
-#: company/forms.py:136 company/models.py:330
+#: company/forms.py:136 company/models.py:327
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:101
@@ -1782,56 +1781,56 @@ msgstr ""
msgid "MPN"
msgstr ""
-#: company/models.py:102
+#: company/models.py:99
msgid "Company description"
msgstr ""
-#: company/models.py:103
+#: company/models.py:100
msgid "Description of the company"
msgstr ""
-#: company/models.py:107 company/templates/company/company_base.html:70
+#: company/models.py:104 company/templates/company/company_base.html:70
#: company/templates/company/detail.html:33 templates/js/company.js:60
msgid "Website"
msgstr ""
-#: company/models.py:107
+#: company/models.py:104
msgid "Company website URL"
msgstr ""
-#: company/models.py:110 company/templates/company/company_base.html:77
+#: company/models.py:107 company/templates/company/company_base.html:77
msgid "Address"
msgstr ""
-#: company/models.py:111
+#: company/models.py:108
msgid "Company address"
msgstr ""
-#: company/models.py:114
+#: company/models.py:111
msgid "Phone number"
msgstr ""
-#: company/models.py:115
+#: company/models.py:112
msgid "Contact phone number"
msgstr ""
-#: company/models.py:118 company/templates/company/company_base.html:91
+#: company/models.py:115 company/templates/company/company_base.html:91
msgid "Email"
msgstr ""
-#: company/models.py:118
+#: company/models.py:115
msgid "Contact email address"
msgstr ""
-#: company/models.py:121 company/templates/company/company_base.html:98
+#: company/models.py:118 company/templates/company/company_base.html:98
msgid "Contact"
msgstr ""
-#: company/models.py:122
+#: company/models.py:119
msgid "Point of contact"
msgstr ""
-#: company/models.py:124 company/models.py:336 company/models.py:488
+#: company/models.py:121 company/models.py:333 company/models.py:485
#: order/models.py:103 part/models.py:743
#: report/templates/report/inventree_build_order_base.html:165
#: stock/models.py:1556 templates/js/company.js:188 templates/js/company.js:318
@@ -1839,48 +1838,48 @@ msgstr ""
msgid "Link"
msgstr ""
-#: company/models.py:124
+#: company/models.py:121
msgid "Link to external company information"
msgstr ""
-#: company/models.py:132 part/models.py:753
+#: company/models.py:129 part/models.py:753
msgid "Image"
msgstr ""
-#: company/models.py:137
+#: company/models.py:134
msgid "is customer"
msgstr ""
-#: company/models.py:137
+#: company/models.py:134
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:139
+#: company/models.py:136
msgid "is supplier"
msgstr ""
-#: company/models.py:139
+#: company/models.py:136
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:141
+#: company/models.py:138
msgid "is manufacturer"
msgstr ""
-#: company/models.py:141
+#: company/models.py:138
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:308 company/models.py:459 stock/models.py:373
+#: company/models.py:305 company/models.py:456 stock/models.py:373
#: stock/templates/stock/item_base.html:224
msgid "Base Part"
msgstr ""
-#: company/models.py:312 company/models.py:463 order/views.py:1384
+#: company/models.py:309 company/models.py:460 order/views.py:1398
msgid "Select part"
msgstr ""
-#: company/models.py:323 company/templates/company/detail.html:57
+#: company/models.py:320 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
@@ -1891,15 +1890,15 @@ msgstr ""
msgid "Manufacturer"
msgstr ""
-#: company/models.py:337
+#: company/models.py:334
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:343
+#: company/models.py:340
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:469 company/templates/company/detail.html:62
+#: company/models.py:466 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:190
#: order/templates/order/order_base.html:92
@@ -1910,70 +1909,70 @@ msgstr ""
msgid "Supplier"
msgstr ""
-#: company/models.py:470
+#: company/models.py:467
msgid "Select supplier"
msgstr ""
-#: company/models.py:475 company/templates/company/supplier_part_base.html:88
+#: company/models.py:472 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
#: order/templates/order/purchase_order_detail.html:149 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr ""
-#: company/models.py:476
+#: company/models.py:473
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:482
+#: company/models.py:479
#: company/templates/company/manufacturer_part_base.html:6
#: company/templates/company/manufacturer_part_base.html:19
#: stock/templates/stock/item_base.html:346
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:483
+#: company/models.py:480
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:489
+#: company/models.py:486
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:495
+#: company/models.py:492
msgid "Supplier part description"
msgstr ""
-#: company/models.py:500 company/templates/company/supplier_part_base.html:115
-#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190
+#: company/models.py:497 company/templates/company/supplier_part_base.html:115
+#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "base cost"
msgstr ""
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:506 company/templates/company/supplier_part_base.html:108
+#: company/models.py:503 company/templates/company/supplier_part_base.html:108
#: stock/models.py:397 stock/templates/stock/item_base.html:299
#: templates/js/stock.js:667
msgid "Packaging"
msgstr ""
-#: company/models.py:506
+#: company/models.py:503
msgid "Part packaging"
msgstr ""
-#: company/models.py:508
+#: company/models.py:505 part/models.py:1616
msgid "multiple"
msgstr ""
-#: company/models.py:508
+#: company/models.py:505
msgid "Order multiple"
msgstr ""
@@ -1999,7 +1998,7 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:46 order/views.py:306
+#: company/templates/company/company_base.html:46 order/views.py:308
msgid "Create Purchase Order"
msgstr ""
@@ -2369,7 +2368,7 @@ msgid "Pricing Information"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794
-#: part/templates/part/sale_prices.html:17 part/views.py:2636
+#: part/templates/part/sale_prices.html:17 part/views.py:2644
msgid "Add Price Break"
msgstr ""
@@ -2484,15 +2483,15 @@ msgstr ""
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:799 part/views.py:2640
+#: company/views.py:799 part/views.py:2648
msgid "Added new price break"
msgstr ""
-#: company/views.py:855 part/views.py:2684
+#: company/views.py:855 part/views.py:2692
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:870 part/views.py:2698
+#: company/views.py:870 part/views.py:2706
msgid "Delete Price Break"
msgstr ""
@@ -2586,11 +2585,11 @@ msgstr ""
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:235
+#: order/forms.py:236
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:241
+#: order/forms.py:242
msgid "Enter quantity of stock items"
msgstr ""
@@ -2725,7 +2724,7 @@ msgstr ""
msgid "Line item notes"
msgstr ""
-#: order/models.py:633 order/models.py:677
+#: order/models.py:633 order/models.py:678
#: part/templates/part/allocation.html:17
#: part/templates/part/allocation.html:45
msgid "Order"
@@ -2762,39 +2761,48 @@ msgstr ""
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:753 order/models.py:755
+#: order/models.py:687 part/templates/part/navbar.html:95
+#: part/templates/part/part_pricing.html:78
+msgid "Sale Price"
+msgstr ""
+
+#: order/models.py:688
+msgid "Unit sale price"
+msgstr ""
+
+#: order/models.py:763 order/models.py:765
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:759
+#: order/models.py:769
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:761
+#: order/models.py:771
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:764
+#: order/models.py:774
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:774
+#: order/models.py:784
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:779
+#: order/models.py:789
msgid "Line"
msgstr ""
-#: order/models.py:790
+#: order/models.py:800
msgid "Item"
msgstr ""
-#: order/models.py:791
+#: order/models.py:801
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:794
+#: order/models.py:804
msgid "Enter stock allocation quantity"
msgstr ""
@@ -2952,8 +2960,8 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1120
-#: order/views.py:1203
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1122
+#: order/views.py:1205
msgid "Add Line Item"
msgstr ""
@@ -2962,11 +2970,12 @@ msgid "No line items found"
msgstr ""
#: order/templates/order/purchase_order_detail.html:180
+#: order/templates/order/sales_order_detail.html:229
msgid "Unit Price"
msgstr ""
#: order/templates/order/purchase_order_detail.html:221
-#: order/templates/order/sales_order_detail.html:294
+#: order/templates/order/sales_order_detail.html:303
msgid "Edit line item"
msgstr ""
@@ -3081,36 +3090,45 @@ msgstr ""
msgid "ID"
msgstr ""
-#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579
+#: order/templates/order/sales_order_detail.html:237 templates/js/build.js:579
#: templates/js/build.js:845
msgid "Allocated"
msgstr ""
-#: order/templates/order/sales_order_detail.html:231
+#: order/templates/order/sales_order_detail.html:239
msgid "Fulfilled"
msgstr ""
-#: order/templates/order/sales_order_detail.html:279
+#: order/templates/order/sales_order_detail.html:287
msgid "Allocate serial numbers"
msgstr ""
-#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641
+#: order/templates/order/sales_order_detail.html:290 templates/js/build.js:641
msgid "Allocate stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:285
+#: order/templates/order/sales_order_detail.html:293
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634
+#: order/templates/order/sales_order_detail.html:297 templates/js/build.js:634
#: templates/js/build.js:1052
msgid "Build stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:295
+#: order/templates/order/sales_order_detail.html:300
+#: order/templates/order/sales_order_detail.html:409
+msgid "Calculate price"
+msgstr ""
+
+#: order/templates/order/sales_order_detail.html:304
msgid "Delete line item "
msgstr ""
+#: order/templates/order/sales_order_detail.html:415
+msgid "Update Unit Price"
+msgstr ""
+
#: order/templates/order/sales_order_notes.html:14
msgid "Sales Order Notes"
msgstr ""
@@ -3152,167 +3170,185 @@ msgstr ""
msgid "Are you sure you wish to delete this line item?"
msgstr ""
-#: order/views.py:99
+#: order/views.py:101
msgid "Add Purchase Order Attachment"
msgstr ""
-#: order/views.py:149
+#: order/views.py:151
msgid "Add Sales Order Attachment"
msgstr ""
-#: order/views.py:341
+#: order/views.py:343
msgid "Create Sales Order"
msgstr ""
-#: order/views.py:376
+#: order/views.py:378
msgid "Edit Purchase Order"
msgstr ""
-#: order/views.py:396
+#: order/views.py:398
msgid "Edit Sales Order"
msgstr ""
-#: order/views.py:412
+#: order/views.py:414
msgid "Cancel Order"
msgstr ""
-#: order/views.py:421 order/views.py:447
+#: order/views.py:423 order/views.py:449
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:424 order/views.py:450
+#: order/views.py:426 order/views.py:452
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:438
+#: order/views.py:440
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:464
+#: order/views.py:466
msgid "Issue Order"
msgstr ""
-#: order/views.py:473
+#: order/views.py:475
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:483
+#: order/views.py:485
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:494
+#: order/views.py:496
msgid "Complete Order"
msgstr ""
-#: order/views.py:510
+#: order/views.py:512
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:521
+#: order/views.py:523
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:531
+#: order/views.py:533
msgid "Ship Order"
msgstr ""
-#: order/views.py:547
+#: order/views.py:549
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:553
+#: order/views.py:555
msgid "Could not ship order"
msgstr ""
-#: order/views.py:607
+#: order/views.py:609
msgid "Receive Parts"
msgstr ""
-#: order/views.py:677
+#: order/views.py:679
msgid "Items received"
msgstr ""
-#: order/views.py:691
+#: order/views.py:693
msgid "No destination set"
msgstr ""
-#: order/views.py:736
+#: order/views.py:738
msgid "Error converting quantity to number"
msgstr ""
-#: order/views.py:742
+#: order/views.py:744
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:748
+#: order/views.py:750
msgid "No lines specified"
msgstr ""
-#: order/views.py:1069
+#: order/views.py:1071
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1129
+#: order/views.py:1131
msgid "Supplier part must be specified"
msgstr ""
-#: order/views.py:1135
+#: order/views.py:1137
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1254 order/views.py:1272
+#: order/views.py:1268 order/views.py:1286
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1288 order/views.py:1300
+#: order/views.py:1302 order/views.py:1314
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1293 order/views.py:1305
+#: order/views.py:1307 order/views.py:1319
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1318
+#: order/views.py:1332
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1363
+#: order/views.py:1377
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1379
+#: order/views.py:1393
msgid "Select line item"
msgstr ""
-#: order/views.py:1410
+#: order/views.py:1424
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1420
+#: order/views.py:1434
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1428
+#: order/views.py:1442
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1482
+#: order/views.py:1496
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1556
+#: order/views.py:1570
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1571
+#: order/views.py:1585
msgid "Remove allocation"
msgstr ""
+#: order/views.py:1657
+msgid "Sales order not found"
+msgstr ""
+
+#: order/views.py:1663
+msgid "Price not found"
+msgstr ""
+
+#: order/views.py:1666
+#, python-brace-format
+msgid "Updated {part} unit-price to {price}"
+msgstr ""
+
+#: order/views.py:1671
+#, python-brace-format
+msgid "Updated {part} unit-price to {price} and quantity to {qty}"
+msgstr ""
+
#: part/bom.py:138 part/models.py:72 part/models.py:762
#: part/templates/part/category.html:66 part/templates/part/detail.html:90
msgid "Default Location"
@@ -3391,7 +3427,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:122 part/models.py:2077
+#: part/forms.py:122 part/models.py:2115
msgid "Parent Part"
msgstr ""
@@ -3467,7 +3503,7 @@ msgstr ""
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:344 part/models.py:2171
+#: part/forms.py:344 part/models.py:2209
msgid "Sub part"
msgstr ""
@@ -3487,7 +3523,7 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:82 part/models.py:2123
+#: part/models.py:82 part/models.py:2161
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -3557,7 +3593,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73
+#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73
#: part/templates/part/set_category.html:15 templates/js/part.js:385
msgid "Category"
msgstr ""
@@ -3612,7 +3648,7 @@ msgstr ""
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106
+#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106
#: part/templates/part/params.html:29
msgid "Units"
msgstr ""
@@ -3679,167 +3715,171 @@ msgstr ""
msgid "Creation User"
msgstr ""
-#: part/models.py:1949
-msgid "Test templates can only be created for trackable parts"
-msgstr ""
-
-#: part/models.py:1966
-msgid "Test with this name already exists for this part"
-msgstr ""
-
-#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104
-msgid "Test Name"
+#: part/models.py:1616
+msgid "Sell multiple"
msgstr ""
#: part/models.py:1987
+msgid "Test templates can only be created for trackable parts"
+msgstr ""
+
+#: part/models.py:2004
+msgid "Test with this name already exists for this part"
+msgstr ""
+
+#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104
+msgid "Test Name"
+msgstr ""
+
+#: part/models.py:2025
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:1992
+#: part/models.py:2030
msgid "Test Description"
msgstr ""
-#: part/models.py:1993
+#: part/models.py:2031
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:1998 templates/js/part.js:647
+#: part/models.py:2036 templates/js/part.js:647
#: templates/js/table_filters.js:222
msgid "Required"
msgstr ""
-#: part/models.py:1999
+#: part/models.py:2037
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2004 templates/js/part.js:655
+#: part/models.py:2042 templates/js/part.js:655
msgid "Requires Value"
msgstr ""
-#: part/models.py:2005
+#: part/models.py:2043
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2010 templates/js/part.js:662
+#: part/models.py:2048 templates/js/part.js:662
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2011
+#: part/models.py:2049
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2044
+#: part/models.py:2082
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2049
+#: part/models.py:2087
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2051
+#: part/models.py:2089
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2079 part/models.py:2128 part/models.py:2129
+#: part/models.py:2117 part/models.py:2166 part/models.py:2167
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Data"
msgstr ""
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2133 templates/InvenTree/settings/category.html:67
+#: part/models.py:2171 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2172
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2163
+#: part/models.py:2201
msgid "Select parent part"
msgstr ""
-#: part/models.py:2172
+#: part/models.py:2210
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2178
+#: part/models.py:2216
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269
+#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269
msgid "Optional"
msgstr ""
-#: part/models.py:2180
+#: part/models.py:2218
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2183
+#: part/models.py:2221
msgid "Overage"
msgstr ""
-#: part/models.py:2184
+#: part/models.py:2222
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2187
+#: part/models.py:2225
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2190
+#: part/models.py:2228
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2230
msgid "Checksum"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2230
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286
+#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286
#: templates/js/table_filters.js:50
msgid "Inherited"
msgstr ""
-#: part/models.py:2197
+#: part/models.py:2235
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2273 part/views.py:1592 part/views.py:1644
+#: part/models.py:2311 part/views.py:1592 part/views.py:1644
#: stock/models.py:260
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2282 part/models.py:2284
+#: part/models.py:2320 part/models.py:2322
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2287
+#: part/models.py:2325
msgid "BOM Item"
msgstr ""
-#: part/models.py:2404
+#: part/models.py:2442
msgid "Part 1"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Part 2"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2440
+#: part/models.py:2478
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4042,7 +4082,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:29 part/views.py:2282
+#: part/templates/part/category.html:29 part/views.py:2290
msgid "Create new part category"
msgstr ""
@@ -4301,10 +4341,6 @@ msgstr ""
msgid "Sales Price Information"
msgstr ""
-#: part/templates/part/navbar.html:95
-msgid "Sale Price"
-msgstr ""
-
#: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr ""
@@ -4439,42 +4475,39 @@ msgstr ""
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_pricing.html:8
-#, python-format
-msgid "Pricing information for:
%(part)s."
-msgstr ""
-
-#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:19
msgid "Supplier Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:27
-#: part/templates/part/part_pricing.html:53
+#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:81
msgid "Unit Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:33
-#: part/templates/part/part_pricing.html:59
+#: part/templates/part/part_pricing.html:29
+#: part/templates/part/part_pricing.html:55
+#: part/templates/part/part_pricing.html:85
msgid "Total Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:41
+#: part/templates/part/part_pricing.html:37
msgid "No supplier pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:45
msgid "BOM Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:67
+#: part/templates/part/part_pricing.html:63
msgid "Note: BOM pricing is incomplete for this part"
msgstr ""
-#: part/templates/part/part_pricing.html:74
+#: part/templates/part/part_pricing.html:70
msgid "No BOM pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:84
+#: part/templates/part/part_pricing.html:94
msgid "No pricing information is available for this part."
msgstr ""
@@ -4732,63 +4765,63 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2081
+#: part/views.py:2089
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2091
+#: part/views.py:2099
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2098
+#: part/views.py:2106
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2106
+#: part/views.py:2114
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2156
+#: part/views.py:2164
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2170
+#: part/views.py:2178
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2230
+#: part/views.py:2238
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:2268
+#: part/views.py:2276
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2274
+#: part/views.py:2282
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2326
+#: part/views.py:2334
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2427
+#: part/views.py:2435
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2483
+#: part/views.py:2491
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2502
+#: part/views.py:2510
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2572
+#: part/views.py:2580
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2628
+#: part/views.py:2636
msgid "Confim BOM item deletion"
msgstr ""
@@ -6166,9 +6199,9 @@ msgstr ""
msgid "Submit Bug Report"
msgstr ""
-#: templates/about.html:82 templates/js/modals.js:550
-#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52
-#: templates/modals.html:93
+#: templates/about.html:82 templates/js/modals.js:559
+#: templates/js/modals.js:837 templates/modals.html:29 templates/modals.html:54
+#: templates/modals.html:97
msgid "Close"
msgstr ""
@@ -6232,7 +6265,7 @@ msgstr ""
msgid "Unknown response from server"
msgstr ""
-#: templates/js/barcode.js:119 templates/js/modals.js:857
+#: templates/js/barcode.js:119 templates/js/modals.js:892
msgid "Invalid server response"
msgstr ""
@@ -6479,92 +6512,92 @@ msgstr ""
msgid "Waiting for server..."
msgstr ""
-#: templates/js/modals.js:406
+#: templates/js/modals.js:415
msgid "Show Error Information"
msgstr ""
-#: templates/js/modals.js:473 templates/modals.html:73
+#: templates/js/modals.js:482 templates/modals.html:76
msgid "Accept"
msgstr ""
-#: templates/js/modals.js:474 templates/modals.html:72
+#: templates/js/modals.js:483 templates/modals.html:75
msgid "Cancel"
msgstr ""
-#: templates/js/modals.js:538
+#: templates/js/modals.js:547
msgid "Loading Data"
msgstr ""
-#: templates/js/modals.js:549 templates/js/modals.js:808
-#: templates/modals.html:29 templates/modals.html:53
+#: templates/js/modals.js:558 templates/js/modals.js:836
+#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
-#: templates/js/modals.js:760
+#: templates/js/modals.js:788
msgid "Invalid response from server"
msgstr ""
-#: templates/js/modals.js:760
+#: templates/js/modals.js:788
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/modals.js:773
+#: templates/js/modals.js:801
msgid "Error posting form data"
msgstr ""
-#: templates/js/modals.js:857
+#: templates/js/modals.js:892
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/modals.js:867
+#: templates/js/modals.js:902
msgid "No Response"
msgstr ""
-#: templates/js/modals.js:868
+#: templates/js/modals.js:903
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/modals.js:872
+#: templates/js/modals.js:907
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/modals.js:873
+#: templates/js/modals.js:908
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/modals.js:877
+#: templates/js/modals.js:912
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/modals.js:878
+#: templates/js/modals.js:913
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/modals.js:882
+#: templates/js/modals.js:917
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/modals.js:883
+#: templates/js/modals.js:918
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/modals.js:887
+#: templates/js/modals.js:922
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/modals.js:888
+#: templates/js/modals.js:923
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/modals.js:892
+#: templates/js/modals.js:927
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/modals.js:893
+#: templates/js/modals.js:928
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/modals.js:896
+#: templates/js/modals.js:931
msgid "Error requesting form data"
msgstr ""
@@ -7069,7 +7102,7 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/modals.html:21 templates/modals.html:46
+#: templates/modals.html:21 templates/modals.html:47
msgid "Form errors exist"
msgstr ""
diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po
index e28ea8432f..0782e5c8d5 100644
--- a/InvenTree/locale/ja/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ja/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-07 13:19+0000\n"
+"POT-Creation-Date: 2021-05-07 13:55+0000\n"
"PO-Revision-Date: 2021-05-06 02:54\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
@@ -122,7 +122,7 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908
+#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/stock.js:1041
msgid "User"
@@ -133,7 +133,7 @@ msgid "upload date"
msgstr ""
#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101
-#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27
+#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27
#: report/models.py:179 templates/InvenTree/search.html:137
#: templates/InvenTree/search.html:289 templates/js/part.js:110
#: templates/js/part.js:553 templates/js/stock.js:944
@@ -141,8 +141,8 @@ msgid "Name"
msgstr ""
#: InvenTree/models.py:114 build/models.py:134
-#: build/templates/build/detail.html:21 company/models.py:342
-#: company/models.py:494 company/templates/company/detail.html:27
+#: build/templates/build/detail.html:21 company/models.py:339
+#: company/models.py:491 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:108
@@ -386,21 +386,20 @@ msgstr ""
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:123
-#: build/templates/build/detail.html:31 common/models.py:703
+#: build/templates/build/detail.html:31 common/models.py:705
#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261
-#: order/forms.py:278 order/models.py:603 order/models.py:794
+#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262
+#: order/forms.py:279 order/models.py:603 order/models.py:804
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:175
#: order/templates/order/sales_order_detail.html:70
#: order/templates/order/sales_order_detail.html:77
#: order/templates/order/sales_order_detail.html:159
#: order/templates/order/sales_order_detail.html:224 part/forms.py:342
-#: part/forms.py:371 part/forms.py:387 part/models.py:2178
+#: part/forms.py:371 part/forms.py:387 part/models.py:2216
#: part/templates/part/allocation.html:19
#: part/templates/part/allocation.html:53
-#: part/templates/part/part_pricing.html:11
-#: part/templates/part/part_pricing.html:18
+#: part/templates/part/part_pricing.html:13
#: part/templates/part/sale_prices.html:85
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -422,7 +421,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:233 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:234 stock/forms.py:118
msgid "Serial Numbers"
msgstr ""
@@ -525,7 +524,7 @@ msgstr ""
#: build/models.py:127 order/models.py:99 order/models.py:605
#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:219 part/models.py:2187
+#: order/templates/order/sales_order_detail.html:219 part/models.py:2225
#: 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:565 templates/js/build.js:1008
@@ -547,16 +546,16 @@ msgstr ""
#: build/models.py:152 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:118
-#: build/templates/build/detail.html:26 company/models.py:688
-#: order/models.py:647 order/models.py:679
+#: build/templates/build/detail.html:26 company/models.py:622
+#: order/models.py:647 order/models.py:680
#: order/templates/order/order_wizard/select_parts.html:30
#: order/templates/order/purchase_order_detail.html:131
#: order/templates/order/receive_parts.html:19
#: order/templates/order/sales_order_detail.html:207 part/models.py:321
-#: part/models.py:1876 part/models.py:1888 part/models.py:1906
-#: part/models.py:1981 part/models.py:2077 part/models.py:2162
+#: part/models.py:1914 part/models.py:1926 part/models.py:1944
+#: part/models.py:2019 part/models.py:2115 part/models.py:2200
#: part/templates/part/part_app_base.html:8
-#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29
+#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
@@ -682,13 +681,13 @@ msgid "Link to external URL"
msgstr ""
#: build/models.py:261 build/templates/build/navbar.html:53
-#: company/models.py:135 company/models.py:501
+#: company/models.py:132 company/models.py:498
#: company/templates/company/navbar.html:70
#: company/templates/company/navbar.html:73 order/models.py:123
#: order/models.py:607 order/templates/order/po_navbar.html:29
#: order/templates/order/po_navbar.html:32
#: order/templates/order/purchase_order_detail.html:209
-#: order/templates/order/sales_order_detail.html:264
+#: order/templates/order/sales_order_detail.html:272
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:871
#: part/templates/part/navbar.html:128
@@ -738,11 +737,11 @@ msgstr ""
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1172 order/models.py:768
+#: build/models.py:1172 order/models.py:778
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1176 order/models.py:771
+#: build/models.py:1176 order/models.py:781
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -818,7 +817,7 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:795
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:797
#: part/templates/part/category.html:127
msgid "Order Parts"
msgstr ""
@@ -961,7 +960,7 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:160
-#: build/templates/build/detail.html:84 order/models.py:677
+#: build/templates/build/detail.html:84 order/models.py:678
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:33
#: order/templates/order/sales_order_ship.html:25
@@ -1354,372 +1353,372 @@ msgstr ""
msgid "Add Build Order Attachment"
msgstr ""
-#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172
+#: build/views.py:1083 order/views.py:112 order/views.py:164 part/views.py:172
#: stock/views.py:277
msgid "Added attachment"
msgstr ""
-#: build/views.py:1119 order/views.py:189 order/views.py:210
+#: build/views.py:1119 order/views.py:191 order/views.py:212
msgid "Edit Attachment"
msgstr ""
-#: build/views.py:1129 order/views.py:193 order/views.py:214
+#: build/views.py:1129 order/views.py:195 order/views.py:216
msgid "Attachment updated"
msgstr ""
-#: build/views.py:1139 order/views.py:229 order/views.py:243
+#: build/views.py:1139 order/views.py:231 order/views.py:245
msgid "Delete Attachment"
msgstr ""
-#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333
+#: build/views.py:1144 order/views.py:237 order/views.py:251 stock/views.py:333
msgid "Deleted attachment"
msgstr ""
-#: common/models.py:56
+#: common/models.py:58
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:58
+#: common/models.py:60
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:62
+#: common/models.py:64
msgid "Use instance name"
msgstr ""
-#: common/models.py:63
+#: common/models.py:65
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:69 company/models.py:97 company/models.py:98
+#: common/models.py:71 company/models.py:94 company/models.py:95
msgid "Company name"
msgstr ""
-#: common/models.py:70
+#: common/models.py:72
msgid "Internal company name"
msgstr ""
-#: common/models.py:75
+#: common/models.py:77
msgid "Base URL"
msgstr ""
-#: common/models.py:76
+#: common/models.py:78
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:82
+#: common/models.py:84
msgid "Default Currency"
msgstr ""
-#: common/models.py:83
+#: common/models.py:85
msgid "Default currency"
msgstr ""
-#: common/models.py:89
+#: common/models.py:91
msgid "Download from URL"
msgstr ""
-#: common/models.py:90
+#: common/models.py:92
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:96
+#: common/models.py:98
msgid "Barcode Support"
msgstr ""
-#: common/models.py:97
+#: common/models.py:99
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:103
+#: common/models.py:105
msgid "IPN Regex"
msgstr ""
-#: common/models.py:104
+#: common/models.py:106
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:108
+#: common/models.py:110
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:109
+#: common/models.py:111
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:115
+#: common/models.py:117
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:116
+#: common/models.py:118
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:122
+#: common/models.py:124
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:123
+#: common/models.py:125
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:129
+#: common/models.py:131
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:130
+#: common/models.py:132
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:136
+#: common/models.py:138
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:137
+#: common/models.py:139
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:143
+#: common/models.py:145
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:144
+#: common/models.py:146
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:150
+#: common/models.py:152
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:151
+#: common/models.py:153
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160
+#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160
#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24
#: templates/js/table_filters.js:310
msgid "Template"
msgstr ""
-#: common/models.py:158
+#: common/models.py:160
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170
+#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170
#: templates/js/table_filters.js:123 templates/js/table_filters.js:322
msgid "Assembly"
msgstr ""
-#: common/models.py:165
+#: common/models.py:167
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180
+#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180
#: templates/js/table_filters.js:326
msgid "Component"
msgstr ""
-#: common/models.py:172
+#: common/models.py:174
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200
+#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr ""
-#: common/models.py:179
+#: common/models.py:181
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210
+#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210
#: templates/js/table_filters.js:334
msgid "Salable"
msgstr ""
-#: common/models.py:186
+#: common/models.py:188
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190
+#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190
#: templates/js/table_filters.js:32 templates/js/table_filters.js:338
msgid "Trackable"
msgstr ""
-#: common/models.py:193
+#: common/models.py:195
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150
+#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150
#: templates/js/table_filters.js:28
msgid "Virtual"
msgstr ""
-#: common/models.py:200
+#: common/models.py:202
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:206
+#: common/models.py:208
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:207
+#: common/models.py:209
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:213
+#: common/models.py:215
msgid "Debug Mode"
msgstr ""
-#: common/models.py:214
+#: common/models.py:216
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:220
+#: common/models.py:222
msgid "Page Size"
msgstr ""
-#: common/models.py:221
+#: common/models.py:223
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:231
+#: common/models.py:233
msgid "Test Reports"
msgstr ""
-#: common/models.py:232
+#: common/models.py:234
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:238
+#: common/models.py:240
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:239
+#: common/models.py:241
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:245
+#: common/models.py:247
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:246
+#: common/models.py:248
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:252
+#: common/models.py:254
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:253
+#: common/models.py:255
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:255 part/templates/part/detail.html:121
+#: common/models.py:257 part/templates/part/detail.html:121
msgid "days"
msgstr ""
-#: common/models.py:260
+#: common/models.py:262
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:261
+#: common/models.py:263
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:267
+#: common/models.py:269
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:268
+#: common/models.py:270
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:274
+#: common/models.py:276
msgid "Group by Part"
msgstr ""
-#: common/models.py:275
+#: common/models.py:277
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:281
+#: common/models.py:283
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:282
+#: common/models.py:284
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:288
+#: common/models.py:290
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:289
+#: common/models.py:291
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:294
+#: common/models.py:296
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:295
+#: common/models.py:297
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:299
+#: common/models.py:301
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:300
+#: common/models.py:302
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:305
+#: common/models.py:307
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:306
+#: common/models.py:308
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:529
+#: common/models.py:531
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:531
+#: common/models.py:533
msgid "Settings value"
msgstr ""
-#: common/models.py:566
+#: common/models.py:568
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:589
+#: common/models.py:591
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:600
+#: common/models.py:602
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:623
+#: common/models.py:625
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:704 company/forms.py:177
+#: common/models.py:706 company/forms.py:177
msgid "Price break quantity"
msgstr ""
-#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82
#: part/templates/part/sale_prices.html:90 templates/js/bom.js:255
msgid "Price"
msgstr ""
-#: common/models.py:713
+#: common/models.py:715
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:736
+#: common/models.py:804
msgid "Default"
msgstr ""
@@ -1739,12 +1738,12 @@ msgstr ""
msgid "Supplied value must be a boolean"
msgstr ""
-#: company/forms.py:38 company/models.py:145
+#: company/forms.py:38 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
msgstr ""
-#: company/forms.py:39 company/models.py:147
+#: company/forms.py:39 company/models.py:144
msgid "Default currency used for this company"
msgstr ""
@@ -1764,15 +1763,15 @@ msgstr ""
msgid "Single quantity price"
msgstr ""
-#: company/forms.py:128 company/models.py:324
+#: company/forms.py:128 company/models.py:321
msgid "Select manufacturer"
msgstr ""
-#: company/forms.py:134 company/models.py:331
+#: company/forms.py:134 company/models.py:328
msgid "Manufacturer Part Number"
msgstr ""
-#: company/forms.py:136 company/models.py:330
+#: company/forms.py:136 company/models.py:327
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:101
@@ -1782,56 +1781,56 @@ msgstr ""
msgid "MPN"
msgstr ""
-#: company/models.py:102
+#: company/models.py:99
msgid "Company description"
msgstr ""
-#: company/models.py:103
+#: company/models.py:100
msgid "Description of the company"
msgstr ""
-#: company/models.py:107 company/templates/company/company_base.html:70
+#: company/models.py:104 company/templates/company/company_base.html:70
#: company/templates/company/detail.html:33 templates/js/company.js:60
msgid "Website"
msgstr ""
-#: company/models.py:107
+#: company/models.py:104
msgid "Company website URL"
msgstr ""
-#: company/models.py:110 company/templates/company/company_base.html:77
+#: company/models.py:107 company/templates/company/company_base.html:77
msgid "Address"
msgstr ""
-#: company/models.py:111
+#: company/models.py:108
msgid "Company address"
msgstr ""
-#: company/models.py:114
+#: company/models.py:111
msgid "Phone number"
msgstr ""
-#: company/models.py:115
+#: company/models.py:112
msgid "Contact phone number"
msgstr ""
-#: company/models.py:118 company/templates/company/company_base.html:91
+#: company/models.py:115 company/templates/company/company_base.html:91
msgid "Email"
msgstr ""
-#: company/models.py:118
+#: company/models.py:115
msgid "Contact email address"
msgstr ""
-#: company/models.py:121 company/templates/company/company_base.html:98
+#: company/models.py:118 company/templates/company/company_base.html:98
msgid "Contact"
msgstr ""
-#: company/models.py:122
+#: company/models.py:119
msgid "Point of contact"
msgstr ""
-#: company/models.py:124 company/models.py:336 company/models.py:488
+#: company/models.py:121 company/models.py:333 company/models.py:485
#: order/models.py:103 part/models.py:743
#: report/templates/report/inventree_build_order_base.html:165
#: stock/models.py:1556 templates/js/company.js:188 templates/js/company.js:318
@@ -1839,48 +1838,48 @@ msgstr ""
msgid "Link"
msgstr ""
-#: company/models.py:124
+#: company/models.py:121
msgid "Link to external company information"
msgstr ""
-#: company/models.py:132 part/models.py:753
+#: company/models.py:129 part/models.py:753
msgid "Image"
msgstr ""
-#: company/models.py:137
+#: company/models.py:134
msgid "is customer"
msgstr ""
-#: company/models.py:137
+#: company/models.py:134
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:139
+#: company/models.py:136
msgid "is supplier"
msgstr ""
-#: company/models.py:139
+#: company/models.py:136
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:141
+#: company/models.py:138
msgid "is manufacturer"
msgstr ""
-#: company/models.py:141
+#: company/models.py:138
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:308 company/models.py:459 stock/models.py:373
+#: company/models.py:305 company/models.py:456 stock/models.py:373
#: stock/templates/stock/item_base.html:224
msgid "Base Part"
msgstr ""
-#: company/models.py:312 company/models.py:463 order/views.py:1384
+#: company/models.py:309 company/models.py:460 order/views.py:1398
msgid "Select part"
msgstr ""
-#: company/models.py:323 company/templates/company/detail.html:57
+#: company/models.py:320 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
@@ -1891,15 +1890,15 @@ msgstr ""
msgid "Manufacturer"
msgstr ""
-#: company/models.py:337
+#: company/models.py:334
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:343
+#: company/models.py:340
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:469 company/templates/company/detail.html:62
+#: company/models.py:466 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:190
#: order/templates/order/order_base.html:92
@@ -1910,70 +1909,70 @@ msgstr ""
msgid "Supplier"
msgstr ""
-#: company/models.py:470
+#: company/models.py:467
msgid "Select supplier"
msgstr ""
-#: company/models.py:475 company/templates/company/supplier_part_base.html:88
+#: company/models.py:472 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
#: order/templates/order/purchase_order_detail.html:149 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr ""
-#: company/models.py:476
+#: company/models.py:473
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:482
+#: company/models.py:479
#: company/templates/company/manufacturer_part_base.html:6
#: company/templates/company/manufacturer_part_base.html:19
#: stock/templates/stock/item_base.html:346
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:483
+#: company/models.py:480
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:489
+#: company/models.py:486
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:495
+#: company/models.py:492
msgid "Supplier part description"
msgstr ""
-#: company/models.py:500 company/templates/company/supplier_part_base.html:115
-#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190
+#: company/models.py:497 company/templates/company/supplier_part_base.html:115
+#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "base cost"
msgstr ""
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:506 company/templates/company/supplier_part_base.html:108
+#: company/models.py:503 company/templates/company/supplier_part_base.html:108
#: stock/models.py:397 stock/templates/stock/item_base.html:299
#: templates/js/stock.js:667
msgid "Packaging"
msgstr ""
-#: company/models.py:506
+#: company/models.py:503
msgid "Part packaging"
msgstr ""
-#: company/models.py:508
+#: company/models.py:505 part/models.py:1616
msgid "multiple"
msgstr ""
-#: company/models.py:508
+#: company/models.py:505
msgid "Order multiple"
msgstr ""
@@ -1999,7 +1998,7 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:46 order/views.py:306
+#: company/templates/company/company_base.html:46 order/views.py:308
msgid "Create Purchase Order"
msgstr ""
@@ -2369,7 +2368,7 @@ msgid "Pricing Information"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794
-#: part/templates/part/sale_prices.html:17 part/views.py:2636
+#: part/templates/part/sale_prices.html:17 part/views.py:2644
msgid "Add Price Break"
msgstr ""
@@ -2484,15 +2483,15 @@ msgstr ""
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:799 part/views.py:2640
+#: company/views.py:799 part/views.py:2648
msgid "Added new price break"
msgstr ""
-#: company/views.py:855 part/views.py:2684
+#: company/views.py:855 part/views.py:2692
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:870 part/views.py:2698
+#: company/views.py:870 part/views.py:2706
msgid "Delete Price Break"
msgstr ""
@@ -2586,11 +2585,11 @@ msgstr ""
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:235
+#: order/forms.py:236
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:241
+#: order/forms.py:242
msgid "Enter quantity of stock items"
msgstr ""
@@ -2725,7 +2724,7 @@ msgstr ""
msgid "Line item notes"
msgstr ""
-#: order/models.py:633 order/models.py:677
+#: order/models.py:633 order/models.py:678
#: part/templates/part/allocation.html:17
#: part/templates/part/allocation.html:45
msgid "Order"
@@ -2762,39 +2761,48 @@ msgstr ""
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:753 order/models.py:755
+#: order/models.py:687 part/templates/part/navbar.html:95
+#: part/templates/part/part_pricing.html:78
+msgid "Sale Price"
+msgstr ""
+
+#: order/models.py:688
+msgid "Unit sale price"
+msgstr ""
+
+#: order/models.py:763 order/models.py:765
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:759
+#: order/models.py:769
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:761
+#: order/models.py:771
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:764
+#: order/models.py:774
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:774
+#: order/models.py:784
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:779
+#: order/models.py:789
msgid "Line"
msgstr ""
-#: order/models.py:790
+#: order/models.py:800
msgid "Item"
msgstr ""
-#: order/models.py:791
+#: order/models.py:801
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:794
+#: order/models.py:804
msgid "Enter stock allocation quantity"
msgstr ""
@@ -2952,8 +2960,8 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1120
-#: order/views.py:1203
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1122
+#: order/views.py:1205
msgid "Add Line Item"
msgstr ""
@@ -2962,11 +2970,12 @@ msgid "No line items found"
msgstr ""
#: order/templates/order/purchase_order_detail.html:180
+#: order/templates/order/sales_order_detail.html:229
msgid "Unit Price"
msgstr ""
#: order/templates/order/purchase_order_detail.html:221
-#: order/templates/order/sales_order_detail.html:294
+#: order/templates/order/sales_order_detail.html:303
msgid "Edit line item"
msgstr ""
@@ -3081,36 +3090,45 @@ msgstr ""
msgid "ID"
msgstr ""
-#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579
+#: order/templates/order/sales_order_detail.html:237 templates/js/build.js:579
#: templates/js/build.js:845
msgid "Allocated"
msgstr ""
-#: order/templates/order/sales_order_detail.html:231
+#: order/templates/order/sales_order_detail.html:239
msgid "Fulfilled"
msgstr ""
-#: order/templates/order/sales_order_detail.html:279
+#: order/templates/order/sales_order_detail.html:287
msgid "Allocate serial numbers"
msgstr ""
-#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641
+#: order/templates/order/sales_order_detail.html:290 templates/js/build.js:641
msgid "Allocate stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:285
+#: order/templates/order/sales_order_detail.html:293
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634
+#: order/templates/order/sales_order_detail.html:297 templates/js/build.js:634
#: templates/js/build.js:1052
msgid "Build stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:295
+#: order/templates/order/sales_order_detail.html:300
+#: order/templates/order/sales_order_detail.html:409
+msgid "Calculate price"
+msgstr ""
+
+#: order/templates/order/sales_order_detail.html:304
msgid "Delete line item "
msgstr ""
+#: order/templates/order/sales_order_detail.html:415
+msgid "Update Unit Price"
+msgstr ""
+
#: order/templates/order/sales_order_notes.html:14
msgid "Sales Order Notes"
msgstr ""
@@ -3152,167 +3170,185 @@ msgstr ""
msgid "Are you sure you wish to delete this line item?"
msgstr ""
-#: order/views.py:99
+#: order/views.py:101
msgid "Add Purchase Order Attachment"
msgstr ""
-#: order/views.py:149
+#: order/views.py:151
msgid "Add Sales Order Attachment"
msgstr ""
-#: order/views.py:341
+#: order/views.py:343
msgid "Create Sales Order"
msgstr ""
-#: order/views.py:376
+#: order/views.py:378
msgid "Edit Purchase Order"
msgstr ""
-#: order/views.py:396
+#: order/views.py:398
msgid "Edit Sales Order"
msgstr ""
-#: order/views.py:412
+#: order/views.py:414
msgid "Cancel Order"
msgstr ""
-#: order/views.py:421 order/views.py:447
+#: order/views.py:423 order/views.py:449
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:424 order/views.py:450
+#: order/views.py:426 order/views.py:452
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:438
+#: order/views.py:440
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:464
+#: order/views.py:466
msgid "Issue Order"
msgstr ""
-#: order/views.py:473
+#: order/views.py:475
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:483
+#: order/views.py:485
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:494
+#: order/views.py:496
msgid "Complete Order"
msgstr ""
-#: order/views.py:510
+#: order/views.py:512
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:521
+#: order/views.py:523
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:531
+#: order/views.py:533
msgid "Ship Order"
msgstr ""
-#: order/views.py:547
+#: order/views.py:549
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:553
+#: order/views.py:555
msgid "Could not ship order"
msgstr ""
-#: order/views.py:607
+#: order/views.py:609
msgid "Receive Parts"
msgstr ""
-#: order/views.py:677
+#: order/views.py:679
msgid "Items received"
msgstr ""
-#: order/views.py:691
+#: order/views.py:693
msgid "No destination set"
msgstr ""
-#: order/views.py:736
+#: order/views.py:738
msgid "Error converting quantity to number"
msgstr ""
-#: order/views.py:742
+#: order/views.py:744
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:748
+#: order/views.py:750
msgid "No lines specified"
msgstr ""
-#: order/views.py:1069
+#: order/views.py:1071
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1129
+#: order/views.py:1131
msgid "Supplier part must be specified"
msgstr ""
-#: order/views.py:1135
+#: order/views.py:1137
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1254 order/views.py:1272
+#: order/views.py:1268 order/views.py:1286
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1288 order/views.py:1300
+#: order/views.py:1302 order/views.py:1314
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1293 order/views.py:1305
+#: order/views.py:1307 order/views.py:1319
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1318
+#: order/views.py:1332
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1363
+#: order/views.py:1377
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1379
+#: order/views.py:1393
msgid "Select line item"
msgstr ""
-#: order/views.py:1410
+#: order/views.py:1424
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1420
+#: order/views.py:1434
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1428
+#: order/views.py:1442
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1482
+#: order/views.py:1496
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1556
+#: order/views.py:1570
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1571
+#: order/views.py:1585
msgid "Remove allocation"
msgstr ""
+#: order/views.py:1657
+msgid "Sales order not found"
+msgstr ""
+
+#: order/views.py:1663
+msgid "Price not found"
+msgstr ""
+
+#: order/views.py:1666
+#, python-brace-format
+msgid "Updated {part} unit-price to {price}"
+msgstr ""
+
+#: order/views.py:1671
+#, python-brace-format
+msgid "Updated {part} unit-price to {price} and quantity to {qty}"
+msgstr ""
+
#: part/bom.py:138 part/models.py:72 part/models.py:762
#: part/templates/part/category.html:66 part/templates/part/detail.html:90
msgid "Default Location"
@@ -3391,7 +3427,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:122 part/models.py:2077
+#: part/forms.py:122 part/models.py:2115
msgid "Parent Part"
msgstr ""
@@ -3467,7 +3503,7 @@ msgstr ""
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:344 part/models.py:2171
+#: part/forms.py:344 part/models.py:2209
msgid "Sub part"
msgstr ""
@@ -3487,7 +3523,7 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:82 part/models.py:2123
+#: part/models.py:82 part/models.py:2161
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -3557,7 +3593,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73
+#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73
#: part/templates/part/set_category.html:15 templates/js/part.js:385
msgid "Category"
msgstr ""
@@ -3612,7 +3648,7 @@ msgstr ""
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106
+#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106
#: part/templates/part/params.html:29
msgid "Units"
msgstr ""
@@ -3679,167 +3715,171 @@ msgstr ""
msgid "Creation User"
msgstr ""
-#: part/models.py:1949
-msgid "Test templates can only be created for trackable parts"
-msgstr ""
-
-#: part/models.py:1966
-msgid "Test with this name already exists for this part"
-msgstr ""
-
-#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104
-msgid "Test Name"
+#: part/models.py:1616
+msgid "Sell multiple"
msgstr ""
#: part/models.py:1987
+msgid "Test templates can only be created for trackable parts"
+msgstr ""
+
+#: part/models.py:2004
+msgid "Test with this name already exists for this part"
+msgstr ""
+
+#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104
+msgid "Test Name"
+msgstr ""
+
+#: part/models.py:2025
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:1992
+#: part/models.py:2030
msgid "Test Description"
msgstr ""
-#: part/models.py:1993
+#: part/models.py:2031
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:1998 templates/js/part.js:647
+#: part/models.py:2036 templates/js/part.js:647
#: templates/js/table_filters.js:222
msgid "Required"
msgstr ""
-#: part/models.py:1999
+#: part/models.py:2037
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2004 templates/js/part.js:655
+#: part/models.py:2042 templates/js/part.js:655
msgid "Requires Value"
msgstr ""
-#: part/models.py:2005
+#: part/models.py:2043
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2010 templates/js/part.js:662
+#: part/models.py:2048 templates/js/part.js:662
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2011
+#: part/models.py:2049
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2044
+#: part/models.py:2082
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2049
+#: part/models.py:2087
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2051
+#: part/models.py:2089
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2079 part/models.py:2128 part/models.py:2129
+#: part/models.py:2117 part/models.py:2166 part/models.py:2167
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Data"
msgstr ""
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2133 templates/InvenTree/settings/category.html:67
+#: part/models.py:2171 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2172
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2163
+#: part/models.py:2201
msgid "Select parent part"
msgstr ""
-#: part/models.py:2172
+#: part/models.py:2210
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2178
+#: part/models.py:2216
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269
+#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269
msgid "Optional"
msgstr ""
-#: part/models.py:2180
+#: part/models.py:2218
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2183
+#: part/models.py:2221
msgid "Overage"
msgstr ""
-#: part/models.py:2184
+#: part/models.py:2222
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2187
+#: part/models.py:2225
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2190
+#: part/models.py:2228
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2230
msgid "Checksum"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2230
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286
+#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286
#: templates/js/table_filters.js:50
msgid "Inherited"
msgstr ""
-#: part/models.py:2197
+#: part/models.py:2235
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2273 part/views.py:1592 part/views.py:1644
+#: part/models.py:2311 part/views.py:1592 part/views.py:1644
#: stock/models.py:260
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2282 part/models.py:2284
+#: part/models.py:2320 part/models.py:2322
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2287
+#: part/models.py:2325
msgid "BOM Item"
msgstr ""
-#: part/models.py:2404
+#: part/models.py:2442
msgid "Part 1"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Part 2"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2440
+#: part/models.py:2478
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4042,7 +4082,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:29 part/views.py:2282
+#: part/templates/part/category.html:29 part/views.py:2290
msgid "Create new part category"
msgstr ""
@@ -4301,10 +4341,6 @@ msgstr ""
msgid "Sales Price Information"
msgstr ""
-#: part/templates/part/navbar.html:95
-msgid "Sale Price"
-msgstr ""
-
#: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr ""
@@ -4439,42 +4475,39 @@ msgstr ""
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_pricing.html:8
-#, python-format
-msgid "Pricing information for:
%(part)s."
-msgstr ""
-
-#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:19
msgid "Supplier Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:27
-#: part/templates/part/part_pricing.html:53
+#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:81
msgid "Unit Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:33
-#: part/templates/part/part_pricing.html:59
+#: part/templates/part/part_pricing.html:29
+#: part/templates/part/part_pricing.html:55
+#: part/templates/part/part_pricing.html:85
msgid "Total Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:41
+#: part/templates/part/part_pricing.html:37
msgid "No supplier pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:45
msgid "BOM Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:67
+#: part/templates/part/part_pricing.html:63
msgid "Note: BOM pricing is incomplete for this part"
msgstr ""
-#: part/templates/part/part_pricing.html:74
+#: part/templates/part/part_pricing.html:70
msgid "No BOM pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:84
+#: part/templates/part/part_pricing.html:94
msgid "No pricing information is available for this part."
msgstr ""
@@ -4732,63 +4765,63 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2081
+#: part/views.py:2089
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2091
+#: part/views.py:2099
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2098
+#: part/views.py:2106
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2106
+#: part/views.py:2114
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2156
+#: part/views.py:2164
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2170
+#: part/views.py:2178
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2230
+#: part/views.py:2238
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:2268
+#: part/views.py:2276
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2274
+#: part/views.py:2282
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2326
+#: part/views.py:2334
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2427
+#: part/views.py:2435
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2483
+#: part/views.py:2491
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2502
+#: part/views.py:2510
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2572
+#: part/views.py:2580
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2628
+#: part/views.py:2636
msgid "Confim BOM item deletion"
msgstr ""
@@ -6166,9 +6199,9 @@ msgstr ""
msgid "Submit Bug Report"
msgstr ""
-#: templates/about.html:82 templates/js/modals.js:550
-#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52
-#: templates/modals.html:93
+#: templates/about.html:82 templates/js/modals.js:559
+#: templates/js/modals.js:837 templates/modals.html:29 templates/modals.html:54
+#: templates/modals.html:97
msgid "Close"
msgstr ""
@@ -6232,7 +6265,7 @@ msgstr ""
msgid "Unknown response from server"
msgstr ""
-#: templates/js/barcode.js:119 templates/js/modals.js:857
+#: templates/js/barcode.js:119 templates/js/modals.js:892
msgid "Invalid server response"
msgstr ""
@@ -6479,92 +6512,92 @@ msgstr ""
msgid "Waiting for server..."
msgstr ""
-#: templates/js/modals.js:406
+#: templates/js/modals.js:415
msgid "Show Error Information"
msgstr ""
-#: templates/js/modals.js:473 templates/modals.html:73
+#: templates/js/modals.js:482 templates/modals.html:76
msgid "Accept"
msgstr ""
-#: templates/js/modals.js:474 templates/modals.html:72
+#: templates/js/modals.js:483 templates/modals.html:75
msgid "Cancel"
msgstr ""
-#: templates/js/modals.js:538
+#: templates/js/modals.js:547
msgid "Loading Data"
msgstr ""
-#: templates/js/modals.js:549 templates/js/modals.js:808
-#: templates/modals.html:29 templates/modals.html:53
+#: templates/js/modals.js:558 templates/js/modals.js:836
+#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
-#: templates/js/modals.js:760
+#: templates/js/modals.js:788
msgid "Invalid response from server"
msgstr ""
-#: templates/js/modals.js:760
+#: templates/js/modals.js:788
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/modals.js:773
+#: templates/js/modals.js:801
msgid "Error posting form data"
msgstr ""
-#: templates/js/modals.js:857
+#: templates/js/modals.js:892
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/modals.js:867
+#: templates/js/modals.js:902
msgid "No Response"
msgstr ""
-#: templates/js/modals.js:868
+#: templates/js/modals.js:903
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/modals.js:872
+#: templates/js/modals.js:907
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/modals.js:873
+#: templates/js/modals.js:908
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/modals.js:877
+#: templates/js/modals.js:912
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/modals.js:878
+#: templates/js/modals.js:913
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/modals.js:882
+#: templates/js/modals.js:917
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/modals.js:883
+#: templates/js/modals.js:918
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/modals.js:887
+#: templates/js/modals.js:922
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/modals.js:888
+#: templates/js/modals.js:923
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/modals.js:892
+#: templates/js/modals.js:927
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/modals.js:893
+#: templates/js/modals.js:928
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/modals.js:896
+#: templates/js/modals.js:931
msgid "Error requesting form data"
msgstr ""
@@ -7069,7 +7102,7 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/modals.html:21 templates/modals.html:46
+#: templates/modals.html:21 templates/modals.html:47
msgid "Form errors exist"
msgstr ""
diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po
index b72ad8bf4c..8cb9cde713 100644
--- a/InvenTree/locale/pl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pl/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-07 13:19+0000\n"
+"POT-Creation-Date: 2021-05-07 13:55+0000\n"
"PO-Revision-Date: 2021-05-06 02:54\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
@@ -122,7 +122,7 @@ msgstr "Komentarz"
msgid "File comment"
msgstr "Komentarz pliku"
-#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908
+#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/stock.js:1041
msgid "User"
@@ -133,7 +133,7 @@ msgid "upload date"
msgstr "data przesłania"
#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101
-#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27
+#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27
#: report/models.py:179 templates/InvenTree/search.html:137
#: templates/InvenTree/search.html:289 templates/js/part.js:110
#: templates/js/part.js:553 templates/js/stock.js:944
@@ -141,8 +141,8 @@ msgid "Name"
msgstr "Nazwa"
#: InvenTree/models.py:114 build/models.py:134
-#: build/templates/build/detail.html:21 company/models.py:342
-#: company/models.py:494 company/templates/company/detail.html:27
+#: build/templates/build/detail.html:21 company/models.py:339
+#: company/models.py:491 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:108
@@ -386,21 +386,20 @@ msgstr ""
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:123
-#: build/templates/build/detail.html:31 common/models.py:703
+#: build/templates/build/detail.html:31 common/models.py:705
#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261
-#: order/forms.py:278 order/models.py:603 order/models.py:794
+#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262
+#: order/forms.py:279 order/models.py:603 order/models.py:804
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:175
#: order/templates/order/sales_order_detail.html:70
#: order/templates/order/sales_order_detail.html:77
#: order/templates/order/sales_order_detail.html:159
#: order/templates/order/sales_order_detail.html:224 part/forms.py:342
-#: part/forms.py:371 part/forms.py:387 part/models.py:2178
+#: part/forms.py:371 part/forms.py:387 part/models.py:2216
#: part/templates/part/allocation.html:19
#: part/templates/part/allocation.html:53
-#: part/templates/part/part_pricing.html:11
-#: part/templates/part/part_pricing.html:18
+#: part/templates/part/part_pricing.html:13
#: part/templates/part/sale_prices.html:85
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -422,7 +421,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:233 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:234 stock/forms.py:118
msgid "Serial Numbers"
msgstr "Numer seryjny"
@@ -525,7 +524,7 @@ msgstr "Odwołanie do zamówienia wykonania"
#: build/models.py:127 order/models.py:99 order/models.py:605
#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:219 part/models.py:2187
+#: order/templates/order/sales_order_detail.html:219 part/models.py:2225
#: 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:565 templates/js/build.js:1008
@@ -547,16 +546,16 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana"
#: build/models.py:152 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:118
-#: build/templates/build/detail.html:26 company/models.py:688
-#: order/models.py:647 order/models.py:679
+#: build/templates/build/detail.html:26 company/models.py:622
+#: order/models.py:647 order/models.py:680
#: order/templates/order/order_wizard/select_parts.html:30
#: order/templates/order/purchase_order_detail.html:131
#: order/templates/order/receive_parts.html:19
#: order/templates/order/sales_order_detail.html:207 part/models.py:321
-#: part/models.py:1876 part/models.py:1888 part/models.py:1906
-#: part/models.py:1981 part/models.py:2077 part/models.py:2162
+#: part/models.py:1914 part/models.py:1926 part/models.py:1944
+#: part/models.py:2019 part/models.py:2115 part/models.py:2200
#: part/templates/part/part_app_base.html:8
-#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29
+#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
@@ -682,13 +681,13 @@ msgid "Link to external URL"
msgstr "Link do zewnętrznego adresu URL"
#: build/models.py:261 build/templates/build/navbar.html:53
-#: company/models.py:135 company/models.py:501
+#: company/models.py:132 company/models.py:498
#: company/templates/company/navbar.html:70
#: company/templates/company/navbar.html:73 order/models.py:123
#: order/models.py:607 order/templates/order/po_navbar.html:29
#: order/templates/order/po_navbar.html:32
#: order/templates/order/purchase_order_detail.html:209
-#: order/templates/order/sales_order_detail.html:264
+#: order/templates/order/sales_order_detail.html:272
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:871
#: part/templates/part/navbar.html:128
@@ -738,11 +737,11 @@ msgstr ""
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1172 order/models.py:768
+#: build/models.py:1172 order/models.py:778
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1176 order/models.py:771
+#: build/models.py:1176 order/models.py:781
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -818,7 +817,7 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:795
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:797
#: part/templates/part/category.html:127
msgid "Order Parts"
msgstr "Zamów części"
@@ -961,7 +960,7 @@ msgid "Progress"
msgstr "Postęp"
#: build/templates/build/build_base.html:160
-#: build/templates/build/detail.html:84 order/models.py:677
+#: build/templates/build/detail.html:84 order/models.py:678
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:33
#: order/templates/order/sales_order_ship.html:25
@@ -1354,372 +1353,372 @@ msgstr ""
msgid "Add Build Order Attachment"
msgstr ""
-#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172
+#: build/views.py:1083 order/views.py:112 order/views.py:164 part/views.py:172
#: stock/views.py:277
msgid "Added attachment"
msgstr ""
-#: build/views.py:1119 order/views.py:189 order/views.py:210
+#: build/views.py:1119 order/views.py:191 order/views.py:212
msgid "Edit Attachment"
msgstr ""
-#: build/views.py:1129 order/views.py:193 order/views.py:214
+#: build/views.py:1129 order/views.py:195 order/views.py:216
msgid "Attachment updated"
msgstr ""
-#: build/views.py:1139 order/views.py:229 order/views.py:243
+#: build/views.py:1139 order/views.py:231 order/views.py:245
msgid "Delete Attachment"
msgstr ""
-#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333
+#: build/views.py:1144 order/views.py:237 order/views.py:251 stock/views.py:333
msgid "Deleted attachment"
msgstr ""
-#: common/models.py:56
+#: common/models.py:58
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:58
+#: common/models.py:60
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:62
+#: common/models.py:64
msgid "Use instance name"
msgstr ""
-#: common/models.py:63
+#: common/models.py:65
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:69 company/models.py:97 company/models.py:98
+#: common/models.py:71 company/models.py:94 company/models.py:95
msgid "Company name"
msgstr ""
-#: common/models.py:70
+#: common/models.py:72
msgid "Internal company name"
msgstr ""
-#: common/models.py:75
+#: common/models.py:77
msgid "Base URL"
msgstr ""
-#: common/models.py:76
+#: common/models.py:78
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:82
+#: common/models.py:84
msgid "Default Currency"
msgstr ""
-#: common/models.py:83
+#: common/models.py:85
msgid "Default currency"
msgstr ""
-#: common/models.py:89
+#: common/models.py:91
msgid "Download from URL"
msgstr ""
-#: common/models.py:90
+#: common/models.py:92
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:96
+#: common/models.py:98
msgid "Barcode Support"
msgstr ""
-#: common/models.py:97
+#: common/models.py:99
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:103
+#: common/models.py:105
msgid "IPN Regex"
msgstr ""
-#: common/models.py:104
+#: common/models.py:106
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:108
+#: common/models.py:110
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:109
+#: common/models.py:111
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:115
+#: common/models.py:117
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:116
+#: common/models.py:118
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:122
+#: common/models.py:124
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:123
+#: common/models.py:125
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:129
+#: common/models.py:131
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:130
+#: common/models.py:132
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:136
+#: common/models.py:138
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:137
+#: common/models.py:139
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:143
+#: common/models.py:145
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:144
+#: common/models.py:146
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:150
+#: common/models.py:152
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:151
+#: common/models.py:153
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160
+#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160
#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24
#: templates/js/table_filters.js:310
msgid "Template"
msgstr ""
-#: common/models.py:158
+#: common/models.py:160
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170
+#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170
#: templates/js/table_filters.js:123 templates/js/table_filters.js:322
msgid "Assembly"
msgstr ""
-#: common/models.py:165
+#: common/models.py:167
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180
+#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180
#: templates/js/table_filters.js:326
msgid "Component"
msgstr ""
-#: common/models.py:172
+#: common/models.py:174
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200
+#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr ""
-#: common/models.py:179
+#: common/models.py:181
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210
+#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210
#: templates/js/table_filters.js:334
msgid "Salable"
msgstr ""
-#: common/models.py:186
+#: common/models.py:188
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190
+#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190
#: templates/js/table_filters.js:32 templates/js/table_filters.js:338
msgid "Trackable"
msgstr ""
-#: common/models.py:193
+#: common/models.py:195
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150
+#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150
#: templates/js/table_filters.js:28
msgid "Virtual"
msgstr ""
-#: common/models.py:200
+#: common/models.py:202
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:206
+#: common/models.py:208
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:207
+#: common/models.py:209
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:213
+#: common/models.py:215
msgid "Debug Mode"
msgstr ""
-#: common/models.py:214
+#: common/models.py:216
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:220
+#: common/models.py:222
msgid "Page Size"
msgstr ""
-#: common/models.py:221
+#: common/models.py:223
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:231
+#: common/models.py:233
msgid "Test Reports"
msgstr ""
-#: common/models.py:232
+#: common/models.py:234
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:238
+#: common/models.py:240
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:239
+#: common/models.py:241
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:245
+#: common/models.py:247
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:246
+#: common/models.py:248
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:252
+#: common/models.py:254
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:253
+#: common/models.py:255
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:255 part/templates/part/detail.html:121
+#: common/models.py:257 part/templates/part/detail.html:121
msgid "days"
msgstr ""
-#: common/models.py:260
+#: common/models.py:262
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:261
+#: common/models.py:263
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:267
+#: common/models.py:269
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:268
+#: common/models.py:270
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:274
+#: common/models.py:276
msgid "Group by Part"
msgstr ""
-#: common/models.py:275
+#: common/models.py:277
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:281
+#: common/models.py:283
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:282
+#: common/models.py:284
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:288
+#: common/models.py:290
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:289
+#: common/models.py:291
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:294
+#: common/models.py:296
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:295
+#: common/models.py:297
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:299
+#: common/models.py:301
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:300
+#: common/models.py:302
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:305
+#: common/models.py:307
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:306
+#: common/models.py:308
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:529
+#: common/models.py:531
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:531
+#: common/models.py:533
msgid "Settings value"
msgstr ""
-#: common/models.py:566
+#: common/models.py:568
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:589
+#: common/models.py:591
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:600
+#: common/models.py:602
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:623
+#: common/models.py:625
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:704 company/forms.py:177
+#: common/models.py:706 company/forms.py:177
msgid "Price break quantity"
msgstr ""
-#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82
#: part/templates/part/sale_prices.html:90 templates/js/bom.js:255
msgid "Price"
msgstr ""
-#: common/models.py:713
+#: common/models.py:715
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:736
+#: common/models.py:804
msgid "Default"
msgstr ""
@@ -1739,12 +1738,12 @@ msgstr ""
msgid "Supplied value must be a boolean"
msgstr ""
-#: company/forms.py:38 company/models.py:145
+#: company/forms.py:38 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
msgstr ""
-#: company/forms.py:39 company/models.py:147
+#: company/forms.py:39 company/models.py:144
msgid "Default currency used for this company"
msgstr ""
@@ -1764,15 +1763,15 @@ msgstr "Cena jednostkowa"
msgid "Single quantity price"
msgstr "Cena jednostkowa"
-#: company/forms.py:128 company/models.py:324
+#: company/forms.py:128 company/models.py:321
msgid "Select manufacturer"
msgstr "Wybierz producenta"
-#: company/forms.py:134 company/models.py:331
+#: company/forms.py:134 company/models.py:328
msgid "Manufacturer Part Number"
msgstr "Numer producenta"
-#: company/forms.py:136 company/models.py:330
+#: company/forms.py:136 company/models.py:327
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:101
@@ -1782,56 +1781,56 @@ msgstr "Numer producenta"
msgid "MPN"
msgstr "MPN"
-#: company/models.py:102
+#: company/models.py:99
msgid "Company description"
msgstr "Opis firmy"
-#: company/models.py:103
+#: company/models.py:100
msgid "Description of the company"
msgstr "Opis firmy"
-#: company/models.py:107 company/templates/company/company_base.html:70
+#: company/models.py:104 company/templates/company/company_base.html:70
#: company/templates/company/detail.html:33 templates/js/company.js:60
msgid "Website"
msgstr "Strona WWW"
-#: company/models.py:107
+#: company/models.py:104
msgid "Company website URL"
msgstr "Witryna internetowa firmy"
-#: company/models.py:110 company/templates/company/company_base.html:77
+#: company/models.py:107 company/templates/company/company_base.html:77
msgid "Address"
msgstr "Adres"
-#: company/models.py:111
+#: company/models.py:108
msgid "Company address"
msgstr "Adres firmy"
-#: company/models.py:114
+#: company/models.py:111
msgid "Phone number"
msgstr "Numer telefonu"
-#: company/models.py:115
+#: company/models.py:112
msgid "Contact phone number"
msgstr "Numer telefonu kontaktowego"
-#: company/models.py:118 company/templates/company/company_base.html:91
+#: company/models.py:115 company/templates/company/company_base.html:91
msgid "Email"
msgstr "Adres E-Mail"
-#: company/models.py:118
+#: company/models.py:115
msgid "Contact email address"
msgstr "Kontaktowy adres e-mail"
-#: company/models.py:121 company/templates/company/company_base.html:98
+#: company/models.py:118 company/templates/company/company_base.html:98
msgid "Contact"
msgstr "Kontakt"
-#: company/models.py:122
+#: company/models.py:119
msgid "Point of contact"
msgstr "Punkt kontaktowy"
-#: company/models.py:124 company/models.py:336 company/models.py:488
+#: company/models.py:121 company/models.py:333 company/models.py:485
#: order/models.py:103 part/models.py:743
#: report/templates/report/inventree_build_order_base.html:165
#: stock/models.py:1556 templates/js/company.js:188 templates/js/company.js:318
@@ -1839,48 +1838,48 @@ msgstr "Punkt kontaktowy"
msgid "Link"
msgstr "Łącze"
-#: company/models.py:124
+#: company/models.py:121
msgid "Link to external company information"
msgstr "Link do informacji o zewnętrznym przedsiębiorstwie"
-#: company/models.py:132 part/models.py:753
+#: company/models.py:129 part/models.py:753
msgid "Image"
msgstr "Obraz"
-#: company/models.py:137
+#: company/models.py:134
msgid "is customer"
msgstr "jest klientem"
-#: company/models.py:137
+#: company/models.py:134
msgid "Do you sell items to this company?"
msgstr "Czy sprzedajesz produkty tej firmie?"
-#: company/models.py:139
+#: company/models.py:136
msgid "is supplier"
msgstr "jest dostawcą"
-#: company/models.py:139
+#: company/models.py:136
msgid "Do you purchase items from this company?"
msgstr "Czy kupujesz przedmioty od tej firmy?"
-#: company/models.py:141
+#: company/models.py:138
msgid "is manufacturer"
msgstr "jest producentem"
-#: company/models.py:141
+#: company/models.py:138
msgid "Does this company manufacture parts?"
msgstr "Czy to przedsiębiorstwo produkuje części?"
-#: company/models.py:308 company/models.py:459 stock/models.py:373
+#: company/models.py:305 company/models.py:456 stock/models.py:373
#: stock/templates/stock/item_base.html:224
msgid "Base Part"
msgstr "Część bazowa"
-#: company/models.py:312 company/models.py:463 order/views.py:1384
+#: company/models.py:309 company/models.py:460 order/views.py:1398
msgid "Select part"
msgstr "Wybierz część"
-#: company/models.py:323 company/templates/company/detail.html:57
+#: company/models.py:320 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
@@ -1891,15 +1890,15 @@ msgstr "Wybierz część"
msgid "Manufacturer"
msgstr "Producent"
-#: company/models.py:337
+#: company/models.py:334
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:343
+#: company/models.py:340
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:469 company/templates/company/detail.html:62
+#: company/models.py:466 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:190
#: order/templates/order/order_base.html:92
@@ -1910,70 +1909,70 @@ msgstr ""
msgid "Supplier"
msgstr "Dostawca"
-#: company/models.py:470
+#: company/models.py:467
msgid "Select supplier"
msgstr "Wybierz dostawcę"
-#: company/models.py:475 company/templates/company/supplier_part_base.html:88
+#: company/models.py:472 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
#: order/templates/order/purchase_order_detail.html:149 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr "SKU"
-#: company/models.py:476
+#: company/models.py:473
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:482
+#: company/models.py:479
#: company/templates/company/manufacturer_part_base.html:6
#: company/templates/company/manufacturer_part_base.html:19
#: stock/templates/stock/item_base.html:346
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:483
+#: company/models.py:480
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:489
+#: company/models.py:486
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:495
+#: company/models.py:492
msgid "Supplier part description"
msgstr ""
-#: company/models.py:500 company/templates/company/supplier_part_base.html:115
-#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190
+#: company/models.py:497 company/templates/company/supplier_part_base.html:115
+#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr "Uwaga"
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "base cost"
msgstr "koszt podstawowy"
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:506 company/templates/company/supplier_part_base.html:108
+#: company/models.py:503 company/templates/company/supplier_part_base.html:108
#: stock/models.py:397 stock/templates/stock/item_base.html:299
#: templates/js/stock.js:667
msgid "Packaging"
msgstr "Opakowanie"
-#: company/models.py:506
+#: company/models.py:503
msgid "Part packaging"
msgstr "Opakowanie części"
-#: company/models.py:508
+#: company/models.py:505 part/models.py:1616
msgid "multiple"
msgstr "wielokrotność"
-#: company/models.py:508
+#: company/models.py:505
msgid "Order multiple"
msgstr ""
@@ -1999,7 +1998,7 @@ msgstr "Prześlij nowy obraz"
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:46 order/views.py:306
+#: company/templates/company/company_base.html:46 order/views.py:308
msgid "Create Purchase Order"
msgstr ""
@@ -2369,7 +2368,7 @@ msgid "Pricing Information"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794
-#: part/templates/part/sale_prices.html:17 part/views.py:2636
+#: part/templates/part/sale_prices.html:17 part/views.py:2644
msgid "Add Price Break"
msgstr ""
@@ -2485,15 +2484,15 @@ msgstr ""
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:799 part/views.py:2640
+#: company/views.py:799 part/views.py:2648
msgid "Added new price break"
msgstr ""
-#: company/views.py:855 part/views.py:2684
+#: company/views.py:855 part/views.py:2692
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:870 part/views.py:2698
+#: company/views.py:870 part/views.py:2706
msgid "Delete Price Break"
msgstr ""
@@ -2587,11 +2586,11 @@ msgstr ""
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:235
+#: order/forms.py:236
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:241
+#: order/forms.py:242
msgid "Enter quantity of stock items"
msgstr "Wprowadź ilość produktów magazynowych"
@@ -2726,7 +2725,7 @@ msgstr ""
msgid "Line item notes"
msgstr ""
-#: order/models.py:633 order/models.py:677
+#: order/models.py:633 order/models.py:678
#: part/templates/part/allocation.html:17
#: part/templates/part/allocation.html:45
msgid "Order"
@@ -2763,39 +2762,48 @@ msgstr ""
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:753 order/models.py:755
+#: order/models.py:687 part/templates/part/navbar.html:95
+#: part/templates/part/part_pricing.html:78
+msgid "Sale Price"
+msgstr ""
+
+#: order/models.py:688
+msgid "Unit sale price"
+msgstr ""
+
+#: order/models.py:763 order/models.py:765
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:759
+#: order/models.py:769
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:761
+#: order/models.py:771
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:764
+#: order/models.py:774
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:774
+#: order/models.py:784
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:779
+#: order/models.py:789
msgid "Line"
msgstr ""
-#: order/models.py:790
+#: order/models.py:800
msgid "Item"
msgstr ""
-#: order/models.py:791
+#: order/models.py:801
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:794
+#: order/models.py:804
msgid "Enter stock allocation quantity"
msgstr ""
@@ -2953,8 +2961,8 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1120
-#: order/views.py:1203
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1122
+#: order/views.py:1205
msgid "Add Line Item"
msgstr ""
@@ -2963,11 +2971,12 @@ msgid "No line items found"
msgstr ""
#: order/templates/order/purchase_order_detail.html:180
+#: order/templates/order/sales_order_detail.html:229
msgid "Unit Price"
msgstr ""
#: order/templates/order/purchase_order_detail.html:221
-#: order/templates/order/sales_order_detail.html:294
+#: order/templates/order/sales_order_detail.html:303
msgid "Edit line item"
msgstr ""
@@ -3082,36 +3091,45 @@ msgstr ""
msgid "ID"
msgstr ""
-#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579
+#: order/templates/order/sales_order_detail.html:237 templates/js/build.js:579
#: templates/js/build.js:845
msgid "Allocated"
msgstr ""
-#: order/templates/order/sales_order_detail.html:231
+#: order/templates/order/sales_order_detail.html:239
msgid "Fulfilled"
msgstr ""
-#: order/templates/order/sales_order_detail.html:279
+#: order/templates/order/sales_order_detail.html:287
msgid "Allocate serial numbers"
msgstr ""
-#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641
+#: order/templates/order/sales_order_detail.html:290 templates/js/build.js:641
msgid "Allocate stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:285
+#: order/templates/order/sales_order_detail.html:293
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634
+#: order/templates/order/sales_order_detail.html:297 templates/js/build.js:634
#: templates/js/build.js:1052
msgid "Build stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:295
+#: order/templates/order/sales_order_detail.html:300
+#: order/templates/order/sales_order_detail.html:409
+msgid "Calculate price"
+msgstr ""
+
+#: order/templates/order/sales_order_detail.html:304
msgid "Delete line item "
msgstr ""
+#: order/templates/order/sales_order_detail.html:415
+msgid "Update Unit Price"
+msgstr ""
+
#: order/templates/order/sales_order_notes.html:14
msgid "Sales Order Notes"
msgstr ""
@@ -3153,167 +3171,189 @@ msgstr ""
msgid "Are you sure you wish to delete this line item?"
msgstr ""
-#: order/views.py:99
+#: order/views.py:101
msgid "Add Purchase Order Attachment"
msgstr ""
-#: order/views.py:149
+#: order/views.py:151
msgid "Add Sales Order Attachment"
msgstr ""
-#: order/views.py:341
+#: order/views.py:343
msgid "Create Sales Order"
msgstr ""
-#: order/views.py:376
+#: order/views.py:378
msgid "Edit Purchase Order"
msgstr ""
-#: order/views.py:396
+#: order/views.py:398
msgid "Edit Sales Order"
msgstr ""
-#: order/views.py:412
+#: order/views.py:414
msgid "Cancel Order"
msgstr ""
-#: order/views.py:421 order/views.py:447
+#: order/views.py:423 order/views.py:449
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:424 order/views.py:450
+#: order/views.py:426 order/views.py:452
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:438
+#: order/views.py:440
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:464
+#: order/views.py:466
msgid "Issue Order"
msgstr ""
-#: order/views.py:473
+#: order/views.py:475
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:483
+#: order/views.py:485
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:494
+#: order/views.py:496
msgid "Complete Order"
msgstr ""
-#: order/views.py:510
+#: order/views.py:512
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:521
+#: order/views.py:523
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:531
+#: order/views.py:533
msgid "Ship Order"
msgstr ""
-#: order/views.py:547
+#: order/views.py:549
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:553
+#: order/views.py:555
msgid "Could not ship order"
msgstr ""
-#: order/views.py:607
+#: order/views.py:609
msgid "Receive Parts"
msgstr ""
-#: order/views.py:677
+#: order/views.py:679
msgid "Items received"
msgstr ""
-#: order/views.py:691
+#: order/views.py:693
msgid "No destination set"
msgstr ""
-#: order/views.py:736
+#: order/views.py:738
msgid "Error converting quantity to number"
msgstr ""
-#: order/views.py:742
+#: order/views.py:744
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:748
+#: order/views.py:750
msgid "No lines specified"
msgstr ""
-#: order/views.py:1069
+#: order/views.py:1071
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1129
+#: order/views.py:1131
msgid "Supplier part must be specified"
msgstr ""
-#: order/views.py:1135
+#: order/views.py:1137
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1254 order/views.py:1272
+#: order/views.py:1268 order/views.py:1286
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1288 order/views.py:1300
+#: order/views.py:1302 order/views.py:1314
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1293 order/views.py:1305
+#: order/views.py:1307 order/views.py:1319
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1318
+#: order/views.py:1332
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1363
+#: order/views.py:1377
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1379
+#: order/views.py:1393
msgid "Select line item"
msgstr ""
-#: order/views.py:1410
+#: order/views.py:1424
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1420
+#: order/views.py:1434
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1428
+#: order/views.py:1442
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1482
+#: order/views.py:1496
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1556
+#: order/views.py:1570
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1571
+#: order/views.py:1585
msgid "Remove allocation"
msgstr ""
+#: order/views.py:1657
+#, fuzzy
+#| msgid "Sales Order Reference"
+msgid "Sales order not found"
+msgstr "Odwołanie do zamówienia sprzedaży"
+
+#: order/views.py:1663
+#, fuzzy
+#| msgid "API endpoint not found"
+msgid "Price not found"
+msgstr "Nie znaleziono punktu końcowego API"
+
+#: order/views.py:1666
+#, python-brace-format
+msgid "Updated {part} unit-price to {price}"
+msgstr ""
+
+#: order/views.py:1671
+#, python-brace-format
+msgid "Updated {part} unit-price to {price} and quantity to {qty}"
+msgstr ""
+
#: part/bom.py:138 part/models.py:72 part/models.py:762
#: part/templates/part/category.html:66 part/templates/part/detail.html:90
msgid "Default Location"
@@ -3392,7 +3432,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:122 part/models.py:2077
+#: part/forms.py:122 part/models.py:2115
msgid "Parent Part"
msgstr ""
@@ -3468,7 +3508,7 @@ msgstr ""
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:344 part/models.py:2171
+#: part/forms.py:344 part/models.py:2209
msgid "Sub part"
msgstr ""
@@ -3488,7 +3528,7 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:82 part/models.py:2123
+#: part/models.py:82 part/models.py:2161
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -3558,7 +3598,7 @@ msgstr "Słowa kluczowe"
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73
+#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73
#: part/templates/part/set_category.html:15 templates/js/part.js:385
msgid "Category"
msgstr "Kategoria"
@@ -3613,7 +3653,7 @@ msgstr "Minimalny stan magazynowy"
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106
+#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106
#: part/templates/part/params.html:29
msgid "Units"
msgstr ""
@@ -3680,167 +3720,173 @@ msgstr ""
msgid "Creation User"
msgstr ""
-#: part/models.py:1949
+#: part/models.py:1616
+#, fuzzy
+#| msgid "multiple"
+msgid "Sell multiple"
+msgstr "wielokrotność"
+
+#: part/models.py:1987
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:1966
+#: part/models.py:2004
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104
+#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104
msgid "Test Name"
msgstr ""
-#: part/models.py:1987
+#: part/models.py:2025
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:1992
+#: part/models.py:2030
msgid "Test Description"
msgstr ""
-#: part/models.py:1993
+#: part/models.py:2031
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:1998 templates/js/part.js:647
+#: part/models.py:2036 templates/js/part.js:647
#: templates/js/table_filters.js:222
msgid "Required"
msgstr "Wymagane"
-#: part/models.py:1999
+#: part/models.py:2037
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2004 templates/js/part.js:655
+#: part/models.py:2042 templates/js/part.js:655
msgid "Requires Value"
msgstr ""
-#: part/models.py:2005
+#: part/models.py:2043
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2010 templates/js/part.js:662
+#: part/models.py:2048 templates/js/part.js:662
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2011
+#: part/models.py:2049
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2044
+#: part/models.py:2082
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2049
+#: part/models.py:2087
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2051
+#: part/models.py:2089
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2079 part/models.py:2128 part/models.py:2129
+#: part/models.py:2117 part/models.py:2166 part/models.py:2167
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Data"
msgstr ""
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2133 templates/InvenTree/settings/category.html:67
+#: part/models.py:2171 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2172
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2163
+#: part/models.py:2201
msgid "Select parent part"
msgstr ""
-#: part/models.py:2172
+#: part/models.py:2210
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2178
+#: part/models.py:2216
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269
+#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269
msgid "Optional"
msgstr ""
-#: part/models.py:2180
+#: part/models.py:2218
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2183
+#: part/models.py:2221
msgid "Overage"
msgstr ""
-#: part/models.py:2184
+#: part/models.py:2222
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2187
+#: part/models.py:2225
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2190
+#: part/models.py:2228
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2230
msgid "Checksum"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2230
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286
+#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286
#: templates/js/table_filters.js:50
msgid "Inherited"
msgstr ""
-#: part/models.py:2197
+#: part/models.py:2235
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2273 part/views.py:1592 part/views.py:1644
+#: part/models.py:2311 part/views.py:1592 part/views.py:1644
#: stock/models.py:260
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2282 part/models.py:2284
+#: part/models.py:2320 part/models.py:2322
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2287
+#: part/models.py:2325
msgid "BOM Item"
msgstr ""
-#: part/models.py:2404
+#: part/models.py:2442
msgid "Part 1"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Part 2"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2440
+#: part/models.py:2478
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4043,7 +4089,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:29 part/views.py:2282
+#: part/templates/part/category.html:29 part/views.py:2290
msgid "Create new part category"
msgstr ""
@@ -4302,10 +4348,6 @@ msgstr ""
msgid "Sales Price Information"
msgstr ""
-#: part/templates/part/navbar.html:95
-msgid "Sale Price"
-msgstr ""
-
#: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr ""
@@ -4440,42 +4482,39 @@ msgstr ""
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_pricing.html:8
-#, python-format
-msgid "Pricing information for:
%(part)s."
-msgstr ""
-
-#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:19
msgid "Supplier Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:27
-#: part/templates/part/part_pricing.html:53
+#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:81
msgid "Unit Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:33
-#: part/templates/part/part_pricing.html:59
+#: part/templates/part/part_pricing.html:29
+#: part/templates/part/part_pricing.html:55
+#: part/templates/part/part_pricing.html:85
msgid "Total Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:41
+#: part/templates/part/part_pricing.html:37
msgid "No supplier pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:45
msgid "BOM Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:67
+#: part/templates/part/part_pricing.html:63
msgid "Note: BOM pricing is incomplete for this part"
msgstr ""
-#: part/templates/part/part_pricing.html:74
+#: part/templates/part/part_pricing.html:70
msgid "No BOM pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:84
+#: part/templates/part/part_pricing.html:94
msgid "No pricing information is available for this part."
msgstr ""
@@ -4733,63 +4772,63 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2081
+#: part/views.py:2089
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2091
+#: part/views.py:2099
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2098
+#: part/views.py:2106
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2106
+#: part/views.py:2114
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2156
+#: part/views.py:2164
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2170
+#: part/views.py:2178
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2230
+#: part/views.py:2238
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:2268
+#: part/views.py:2276
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2274
+#: part/views.py:2282
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2326
+#: part/views.py:2334
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2427
+#: part/views.py:2435
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2483
+#: part/views.py:2491
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2502
+#: part/views.py:2510
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2572
+#: part/views.py:2580
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2628
+#: part/views.py:2636
msgid "Confim BOM item deletion"
msgstr ""
@@ -6172,9 +6211,9 @@ msgstr ""
msgid "Submit Bug Report"
msgstr ""
-#: templates/about.html:82 templates/js/modals.js:550
-#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52
-#: templates/modals.html:93
+#: templates/about.html:82 templates/js/modals.js:559
+#: templates/js/modals.js:837 templates/modals.html:29 templates/modals.html:54
+#: templates/modals.html:97
msgid "Close"
msgstr ""
@@ -6238,7 +6277,7 @@ msgstr ""
msgid "Unknown response from server"
msgstr ""
-#: templates/js/barcode.js:119 templates/js/modals.js:857
+#: templates/js/barcode.js:119 templates/js/modals.js:892
msgid "Invalid server response"
msgstr ""
@@ -6485,92 +6524,92 @@ msgstr ""
msgid "Waiting for server..."
msgstr ""
-#: templates/js/modals.js:406
+#: templates/js/modals.js:415
msgid "Show Error Information"
msgstr ""
-#: templates/js/modals.js:473 templates/modals.html:73
+#: templates/js/modals.js:482 templates/modals.html:76
msgid "Accept"
msgstr ""
-#: templates/js/modals.js:474 templates/modals.html:72
+#: templates/js/modals.js:483 templates/modals.html:75
msgid "Cancel"
msgstr ""
-#: templates/js/modals.js:538
+#: templates/js/modals.js:547
msgid "Loading Data"
msgstr ""
-#: templates/js/modals.js:549 templates/js/modals.js:808
-#: templates/modals.html:29 templates/modals.html:53
+#: templates/js/modals.js:558 templates/js/modals.js:836
+#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
-#: templates/js/modals.js:760
+#: templates/js/modals.js:788
msgid "Invalid response from server"
msgstr ""
-#: templates/js/modals.js:760
+#: templates/js/modals.js:788
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/modals.js:773
+#: templates/js/modals.js:801
msgid "Error posting form data"
msgstr ""
-#: templates/js/modals.js:857
+#: templates/js/modals.js:892
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/modals.js:867
+#: templates/js/modals.js:902
msgid "No Response"
msgstr ""
-#: templates/js/modals.js:868
+#: templates/js/modals.js:903
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/modals.js:872
+#: templates/js/modals.js:907
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/modals.js:873
+#: templates/js/modals.js:908
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/modals.js:877
+#: templates/js/modals.js:912
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/modals.js:878
+#: templates/js/modals.js:913
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/modals.js:882
+#: templates/js/modals.js:917
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/modals.js:883
+#: templates/js/modals.js:918
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/modals.js:887
+#: templates/js/modals.js:922
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/modals.js:888
+#: templates/js/modals.js:923
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/modals.js:892
+#: templates/js/modals.js:927
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/modals.js:893
+#: templates/js/modals.js:928
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/modals.js:896
+#: templates/js/modals.js:931
msgid "Error requesting form data"
msgstr ""
@@ -7075,7 +7114,7 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/modals.html:21 templates/modals.html:46
+#: templates/modals.html:21 templates/modals.html:47
msgid "Form errors exist"
msgstr ""
diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po
index 648aabdce9..adb21a5207 100644
--- a/InvenTree/locale/ru/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ru/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-07 13:19+0000\n"
+"POT-Creation-Date: 2021-05-07 13:55+0000\n"
"PO-Revision-Date: 2021-05-06 02:54\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
@@ -122,7 +122,7 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908
+#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/stock.js:1041
msgid "User"
@@ -133,7 +133,7 @@ msgid "upload date"
msgstr ""
#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101
-#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27
+#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27
#: report/models.py:179 templates/InvenTree/search.html:137
#: templates/InvenTree/search.html:289 templates/js/part.js:110
#: templates/js/part.js:553 templates/js/stock.js:944
@@ -141,8 +141,8 @@ msgid "Name"
msgstr ""
#: InvenTree/models.py:114 build/models.py:134
-#: build/templates/build/detail.html:21 company/models.py:342
-#: company/models.py:494 company/templates/company/detail.html:27
+#: build/templates/build/detail.html:21 company/models.py:339
+#: company/models.py:491 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:108
@@ -386,21 +386,20 @@ msgstr ""
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:123
-#: build/templates/build/detail.html:31 common/models.py:703
+#: build/templates/build/detail.html:31 common/models.py:705
#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261
-#: order/forms.py:278 order/models.py:603 order/models.py:794
+#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262
+#: order/forms.py:279 order/models.py:603 order/models.py:804
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:175
#: order/templates/order/sales_order_detail.html:70
#: order/templates/order/sales_order_detail.html:77
#: order/templates/order/sales_order_detail.html:159
#: order/templates/order/sales_order_detail.html:224 part/forms.py:342
-#: part/forms.py:371 part/forms.py:387 part/models.py:2178
+#: part/forms.py:371 part/forms.py:387 part/models.py:2216
#: part/templates/part/allocation.html:19
#: part/templates/part/allocation.html:53
-#: part/templates/part/part_pricing.html:11
-#: part/templates/part/part_pricing.html:18
+#: part/templates/part/part_pricing.html:13
#: part/templates/part/sale_prices.html:85
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -422,7 +421,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:233 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:234 stock/forms.py:118
msgid "Serial Numbers"
msgstr ""
@@ -525,7 +524,7 @@ msgstr ""
#: build/models.py:127 order/models.py:99 order/models.py:605
#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:219 part/models.py:2187
+#: order/templates/order/sales_order_detail.html:219 part/models.py:2225
#: 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:565 templates/js/build.js:1008
@@ -547,16 +546,16 @@ msgstr ""
#: build/models.py:152 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:118
-#: build/templates/build/detail.html:26 company/models.py:688
-#: order/models.py:647 order/models.py:679
+#: build/templates/build/detail.html:26 company/models.py:622
+#: order/models.py:647 order/models.py:680
#: order/templates/order/order_wizard/select_parts.html:30
#: order/templates/order/purchase_order_detail.html:131
#: order/templates/order/receive_parts.html:19
#: order/templates/order/sales_order_detail.html:207 part/models.py:321
-#: part/models.py:1876 part/models.py:1888 part/models.py:1906
-#: part/models.py:1981 part/models.py:2077 part/models.py:2162
+#: part/models.py:1914 part/models.py:1926 part/models.py:1944
+#: part/models.py:2019 part/models.py:2115 part/models.py:2200
#: part/templates/part/part_app_base.html:8
-#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29
+#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
@@ -682,13 +681,13 @@ msgid "Link to external URL"
msgstr ""
#: build/models.py:261 build/templates/build/navbar.html:53
-#: company/models.py:135 company/models.py:501
+#: company/models.py:132 company/models.py:498
#: company/templates/company/navbar.html:70
#: company/templates/company/navbar.html:73 order/models.py:123
#: order/models.py:607 order/templates/order/po_navbar.html:29
#: order/templates/order/po_navbar.html:32
#: order/templates/order/purchase_order_detail.html:209
-#: order/templates/order/sales_order_detail.html:264
+#: order/templates/order/sales_order_detail.html:272
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:871
#: part/templates/part/navbar.html:128
@@ -738,11 +737,11 @@ msgstr ""
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1172 order/models.py:768
+#: build/models.py:1172 order/models.py:778
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1176 order/models.py:771
+#: build/models.py:1176 order/models.py:781
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -818,7 +817,7 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:795
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:797
#: part/templates/part/category.html:127
msgid "Order Parts"
msgstr ""
@@ -961,7 +960,7 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:160
-#: build/templates/build/detail.html:84 order/models.py:677
+#: build/templates/build/detail.html:84 order/models.py:678
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:33
#: order/templates/order/sales_order_ship.html:25
@@ -1354,372 +1353,372 @@ msgstr ""
msgid "Add Build Order Attachment"
msgstr ""
-#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172
+#: build/views.py:1083 order/views.py:112 order/views.py:164 part/views.py:172
#: stock/views.py:277
msgid "Added attachment"
msgstr ""
-#: build/views.py:1119 order/views.py:189 order/views.py:210
+#: build/views.py:1119 order/views.py:191 order/views.py:212
msgid "Edit Attachment"
msgstr ""
-#: build/views.py:1129 order/views.py:193 order/views.py:214
+#: build/views.py:1129 order/views.py:195 order/views.py:216
msgid "Attachment updated"
msgstr ""
-#: build/views.py:1139 order/views.py:229 order/views.py:243
+#: build/views.py:1139 order/views.py:231 order/views.py:245
msgid "Delete Attachment"
msgstr ""
-#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333
+#: build/views.py:1144 order/views.py:237 order/views.py:251 stock/views.py:333
msgid "Deleted attachment"
msgstr ""
-#: common/models.py:56
+#: common/models.py:58
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:58
+#: common/models.py:60
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:62
+#: common/models.py:64
msgid "Use instance name"
msgstr ""
-#: common/models.py:63
+#: common/models.py:65
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:69 company/models.py:97 company/models.py:98
+#: common/models.py:71 company/models.py:94 company/models.py:95
msgid "Company name"
msgstr ""
-#: common/models.py:70
+#: common/models.py:72
msgid "Internal company name"
msgstr ""
-#: common/models.py:75
+#: common/models.py:77
msgid "Base URL"
msgstr ""
-#: common/models.py:76
+#: common/models.py:78
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:82
+#: common/models.py:84
msgid "Default Currency"
msgstr ""
-#: common/models.py:83
+#: common/models.py:85
msgid "Default currency"
msgstr ""
-#: common/models.py:89
+#: common/models.py:91
msgid "Download from URL"
msgstr ""
-#: common/models.py:90
+#: common/models.py:92
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:96
+#: common/models.py:98
msgid "Barcode Support"
msgstr ""
-#: common/models.py:97
+#: common/models.py:99
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:103
+#: common/models.py:105
msgid "IPN Regex"
msgstr ""
-#: common/models.py:104
+#: common/models.py:106
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:108
+#: common/models.py:110
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:109
+#: common/models.py:111
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:115
+#: common/models.py:117
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:116
+#: common/models.py:118
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:122
+#: common/models.py:124
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:123
+#: common/models.py:125
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:129
+#: common/models.py:131
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:130
+#: common/models.py:132
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:136
+#: common/models.py:138
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:137
+#: common/models.py:139
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:143
+#: common/models.py:145
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:144
+#: common/models.py:146
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:150
+#: common/models.py:152
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:151
+#: common/models.py:153
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160
+#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160
#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24
#: templates/js/table_filters.js:310
msgid "Template"
msgstr ""
-#: common/models.py:158
+#: common/models.py:160
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170
+#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170
#: templates/js/table_filters.js:123 templates/js/table_filters.js:322
msgid "Assembly"
msgstr ""
-#: common/models.py:165
+#: common/models.py:167
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180
+#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180
#: templates/js/table_filters.js:326
msgid "Component"
msgstr ""
-#: common/models.py:172
+#: common/models.py:174
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200
+#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr ""
-#: common/models.py:179
+#: common/models.py:181
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210
+#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210
#: templates/js/table_filters.js:334
msgid "Salable"
msgstr ""
-#: common/models.py:186
+#: common/models.py:188
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190
+#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190
#: templates/js/table_filters.js:32 templates/js/table_filters.js:338
msgid "Trackable"
msgstr ""
-#: common/models.py:193
+#: common/models.py:195
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150
+#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150
#: templates/js/table_filters.js:28
msgid "Virtual"
msgstr ""
-#: common/models.py:200
+#: common/models.py:202
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:206
+#: common/models.py:208
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:207
+#: common/models.py:209
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:213
+#: common/models.py:215
msgid "Debug Mode"
msgstr ""
-#: common/models.py:214
+#: common/models.py:216
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:220
+#: common/models.py:222
msgid "Page Size"
msgstr ""
-#: common/models.py:221
+#: common/models.py:223
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:231
+#: common/models.py:233
msgid "Test Reports"
msgstr ""
-#: common/models.py:232
+#: common/models.py:234
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:238
+#: common/models.py:240
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:239
+#: common/models.py:241
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:245
+#: common/models.py:247
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:246
+#: common/models.py:248
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:252
+#: common/models.py:254
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:253
+#: common/models.py:255
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:255 part/templates/part/detail.html:121
+#: common/models.py:257 part/templates/part/detail.html:121
msgid "days"
msgstr ""
-#: common/models.py:260
+#: common/models.py:262
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:261
+#: common/models.py:263
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:267
+#: common/models.py:269
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:268
+#: common/models.py:270
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:274
+#: common/models.py:276
msgid "Group by Part"
msgstr ""
-#: common/models.py:275
+#: common/models.py:277
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:281
+#: common/models.py:283
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:282
+#: common/models.py:284
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:288
+#: common/models.py:290
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:289
+#: common/models.py:291
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:294
+#: common/models.py:296
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:295
+#: common/models.py:297
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:299
+#: common/models.py:301
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:300
+#: common/models.py:302
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:305
+#: common/models.py:307
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:306
+#: common/models.py:308
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:529
+#: common/models.py:531
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:531
+#: common/models.py:533
msgid "Settings value"
msgstr ""
-#: common/models.py:566
+#: common/models.py:568
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:589
+#: common/models.py:591
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:600
+#: common/models.py:602
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:623
+#: common/models.py:625
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:704 company/forms.py:177
+#: common/models.py:706 company/forms.py:177
msgid "Price break quantity"
msgstr ""
-#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82
#: part/templates/part/sale_prices.html:90 templates/js/bom.js:255
msgid "Price"
msgstr ""
-#: common/models.py:713
+#: common/models.py:715
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:736
+#: common/models.py:804
msgid "Default"
msgstr ""
@@ -1739,12 +1738,12 @@ msgstr ""
msgid "Supplied value must be a boolean"
msgstr ""
-#: company/forms.py:38 company/models.py:145
+#: company/forms.py:38 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
msgstr ""
-#: company/forms.py:39 company/models.py:147
+#: company/forms.py:39 company/models.py:144
msgid "Default currency used for this company"
msgstr ""
@@ -1764,15 +1763,15 @@ msgstr ""
msgid "Single quantity price"
msgstr ""
-#: company/forms.py:128 company/models.py:324
+#: company/forms.py:128 company/models.py:321
msgid "Select manufacturer"
msgstr ""
-#: company/forms.py:134 company/models.py:331
+#: company/forms.py:134 company/models.py:328
msgid "Manufacturer Part Number"
msgstr ""
-#: company/forms.py:136 company/models.py:330
+#: company/forms.py:136 company/models.py:327
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:101
@@ -1782,56 +1781,56 @@ msgstr ""
msgid "MPN"
msgstr ""
-#: company/models.py:102
+#: company/models.py:99
msgid "Company description"
msgstr ""
-#: company/models.py:103
+#: company/models.py:100
msgid "Description of the company"
msgstr ""
-#: company/models.py:107 company/templates/company/company_base.html:70
+#: company/models.py:104 company/templates/company/company_base.html:70
#: company/templates/company/detail.html:33 templates/js/company.js:60
msgid "Website"
msgstr ""
-#: company/models.py:107
+#: company/models.py:104
msgid "Company website URL"
msgstr ""
-#: company/models.py:110 company/templates/company/company_base.html:77
+#: company/models.py:107 company/templates/company/company_base.html:77
msgid "Address"
msgstr ""
-#: company/models.py:111
+#: company/models.py:108
msgid "Company address"
msgstr ""
-#: company/models.py:114
+#: company/models.py:111
msgid "Phone number"
msgstr ""
-#: company/models.py:115
+#: company/models.py:112
msgid "Contact phone number"
msgstr ""
-#: company/models.py:118 company/templates/company/company_base.html:91
+#: company/models.py:115 company/templates/company/company_base.html:91
msgid "Email"
msgstr ""
-#: company/models.py:118
+#: company/models.py:115
msgid "Contact email address"
msgstr ""
-#: company/models.py:121 company/templates/company/company_base.html:98
+#: company/models.py:118 company/templates/company/company_base.html:98
msgid "Contact"
msgstr ""
-#: company/models.py:122
+#: company/models.py:119
msgid "Point of contact"
msgstr ""
-#: company/models.py:124 company/models.py:336 company/models.py:488
+#: company/models.py:121 company/models.py:333 company/models.py:485
#: order/models.py:103 part/models.py:743
#: report/templates/report/inventree_build_order_base.html:165
#: stock/models.py:1556 templates/js/company.js:188 templates/js/company.js:318
@@ -1839,48 +1838,48 @@ msgstr ""
msgid "Link"
msgstr ""
-#: company/models.py:124
+#: company/models.py:121
msgid "Link to external company information"
msgstr ""
-#: company/models.py:132 part/models.py:753
+#: company/models.py:129 part/models.py:753
msgid "Image"
msgstr ""
-#: company/models.py:137
+#: company/models.py:134
msgid "is customer"
msgstr ""
-#: company/models.py:137
+#: company/models.py:134
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:139
+#: company/models.py:136
msgid "is supplier"
msgstr ""
-#: company/models.py:139
+#: company/models.py:136
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:141
+#: company/models.py:138
msgid "is manufacturer"
msgstr ""
-#: company/models.py:141
+#: company/models.py:138
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:308 company/models.py:459 stock/models.py:373
+#: company/models.py:305 company/models.py:456 stock/models.py:373
#: stock/templates/stock/item_base.html:224
msgid "Base Part"
msgstr ""
-#: company/models.py:312 company/models.py:463 order/views.py:1384
+#: company/models.py:309 company/models.py:460 order/views.py:1398
msgid "Select part"
msgstr ""
-#: company/models.py:323 company/templates/company/detail.html:57
+#: company/models.py:320 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
@@ -1891,15 +1890,15 @@ msgstr ""
msgid "Manufacturer"
msgstr ""
-#: company/models.py:337
+#: company/models.py:334
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:343
+#: company/models.py:340
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:469 company/templates/company/detail.html:62
+#: company/models.py:466 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:190
#: order/templates/order/order_base.html:92
@@ -1910,70 +1909,70 @@ msgstr ""
msgid "Supplier"
msgstr ""
-#: company/models.py:470
+#: company/models.py:467
msgid "Select supplier"
msgstr ""
-#: company/models.py:475 company/templates/company/supplier_part_base.html:88
+#: company/models.py:472 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
#: order/templates/order/purchase_order_detail.html:149 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr ""
-#: company/models.py:476
+#: company/models.py:473
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:482
+#: company/models.py:479
#: company/templates/company/manufacturer_part_base.html:6
#: company/templates/company/manufacturer_part_base.html:19
#: stock/templates/stock/item_base.html:346
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:483
+#: company/models.py:480
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:489
+#: company/models.py:486
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:495
+#: company/models.py:492
msgid "Supplier part description"
msgstr ""
-#: company/models.py:500 company/templates/company/supplier_part_base.html:115
-#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190
+#: company/models.py:497 company/templates/company/supplier_part_base.html:115
+#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "base cost"
msgstr ""
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:506 company/templates/company/supplier_part_base.html:108
+#: company/models.py:503 company/templates/company/supplier_part_base.html:108
#: stock/models.py:397 stock/templates/stock/item_base.html:299
#: templates/js/stock.js:667
msgid "Packaging"
msgstr ""
-#: company/models.py:506
+#: company/models.py:503
msgid "Part packaging"
msgstr ""
-#: company/models.py:508
+#: company/models.py:505 part/models.py:1616
msgid "multiple"
msgstr ""
-#: company/models.py:508
+#: company/models.py:505
msgid "Order multiple"
msgstr ""
@@ -1999,7 +1998,7 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:46 order/views.py:306
+#: company/templates/company/company_base.html:46 order/views.py:308
msgid "Create Purchase Order"
msgstr ""
@@ -2369,7 +2368,7 @@ msgid "Pricing Information"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794
-#: part/templates/part/sale_prices.html:17 part/views.py:2636
+#: part/templates/part/sale_prices.html:17 part/views.py:2644
msgid "Add Price Break"
msgstr ""
@@ -2484,15 +2483,15 @@ msgstr ""
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:799 part/views.py:2640
+#: company/views.py:799 part/views.py:2648
msgid "Added new price break"
msgstr ""
-#: company/views.py:855 part/views.py:2684
+#: company/views.py:855 part/views.py:2692
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:870 part/views.py:2698
+#: company/views.py:870 part/views.py:2706
msgid "Delete Price Break"
msgstr ""
@@ -2586,11 +2585,11 @@ msgstr ""
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:235
+#: order/forms.py:236
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:241
+#: order/forms.py:242
msgid "Enter quantity of stock items"
msgstr ""
@@ -2725,7 +2724,7 @@ msgstr ""
msgid "Line item notes"
msgstr ""
-#: order/models.py:633 order/models.py:677
+#: order/models.py:633 order/models.py:678
#: part/templates/part/allocation.html:17
#: part/templates/part/allocation.html:45
msgid "Order"
@@ -2762,39 +2761,48 @@ msgstr ""
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:753 order/models.py:755
+#: order/models.py:687 part/templates/part/navbar.html:95
+#: part/templates/part/part_pricing.html:78
+msgid "Sale Price"
+msgstr ""
+
+#: order/models.py:688
+msgid "Unit sale price"
+msgstr ""
+
+#: order/models.py:763 order/models.py:765
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:759
+#: order/models.py:769
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:761
+#: order/models.py:771
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:764
+#: order/models.py:774
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:774
+#: order/models.py:784
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:779
+#: order/models.py:789
msgid "Line"
msgstr ""
-#: order/models.py:790
+#: order/models.py:800
msgid "Item"
msgstr ""
-#: order/models.py:791
+#: order/models.py:801
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:794
+#: order/models.py:804
msgid "Enter stock allocation quantity"
msgstr ""
@@ -2952,8 +2960,8 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1120
-#: order/views.py:1203
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1122
+#: order/views.py:1205
msgid "Add Line Item"
msgstr ""
@@ -2962,11 +2970,12 @@ msgid "No line items found"
msgstr ""
#: order/templates/order/purchase_order_detail.html:180
+#: order/templates/order/sales_order_detail.html:229
msgid "Unit Price"
msgstr ""
#: order/templates/order/purchase_order_detail.html:221
-#: order/templates/order/sales_order_detail.html:294
+#: order/templates/order/sales_order_detail.html:303
msgid "Edit line item"
msgstr ""
@@ -3081,36 +3090,45 @@ msgstr ""
msgid "ID"
msgstr ""
-#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579
+#: order/templates/order/sales_order_detail.html:237 templates/js/build.js:579
#: templates/js/build.js:845
msgid "Allocated"
msgstr ""
-#: order/templates/order/sales_order_detail.html:231
+#: order/templates/order/sales_order_detail.html:239
msgid "Fulfilled"
msgstr ""
-#: order/templates/order/sales_order_detail.html:279
+#: order/templates/order/sales_order_detail.html:287
msgid "Allocate serial numbers"
msgstr ""
-#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641
+#: order/templates/order/sales_order_detail.html:290 templates/js/build.js:641
msgid "Allocate stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:285
+#: order/templates/order/sales_order_detail.html:293
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634
+#: order/templates/order/sales_order_detail.html:297 templates/js/build.js:634
#: templates/js/build.js:1052
msgid "Build stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:295
+#: order/templates/order/sales_order_detail.html:300
+#: order/templates/order/sales_order_detail.html:409
+msgid "Calculate price"
+msgstr ""
+
+#: order/templates/order/sales_order_detail.html:304
msgid "Delete line item "
msgstr ""
+#: order/templates/order/sales_order_detail.html:415
+msgid "Update Unit Price"
+msgstr ""
+
#: order/templates/order/sales_order_notes.html:14
msgid "Sales Order Notes"
msgstr ""
@@ -3152,167 +3170,185 @@ msgstr ""
msgid "Are you sure you wish to delete this line item?"
msgstr ""
-#: order/views.py:99
+#: order/views.py:101
msgid "Add Purchase Order Attachment"
msgstr ""
-#: order/views.py:149
+#: order/views.py:151
msgid "Add Sales Order Attachment"
msgstr ""
-#: order/views.py:341
+#: order/views.py:343
msgid "Create Sales Order"
msgstr ""
-#: order/views.py:376
+#: order/views.py:378
msgid "Edit Purchase Order"
msgstr ""
-#: order/views.py:396
+#: order/views.py:398
msgid "Edit Sales Order"
msgstr ""
-#: order/views.py:412
+#: order/views.py:414
msgid "Cancel Order"
msgstr ""
-#: order/views.py:421 order/views.py:447
+#: order/views.py:423 order/views.py:449
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:424 order/views.py:450
+#: order/views.py:426 order/views.py:452
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:438
+#: order/views.py:440
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:464
+#: order/views.py:466
msgid "Issue Order"
msgstr ""
-#: order/views.py:473
+#: order/views.py:475
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:483
+#: order/views.py:485
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:494
+#: order/views.py:496
msgid "Complete Order"
msgstr ""
-#: order/views.py:510
+#: order/views.py:512
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:521
+#: order/views.py:523
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:531
+#: order/views.py:533
msgid "Ship Order"
msgstr ""
-#: order/views.py:547
+#: order/views.py:549
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:553
+#: order/views.py:555
msgid "Could not ship order"
msgstr ""
-#: order/views.py:607
+#: order/views.py:609
msgid "Receive Parts"
msgstr ""
-#: order/views.py:677
+#: order/views.py:679
msgid "Items received"
msgstr ""
-#: order/views.py:691
+#: order/views.py:693
msgid "No destination set"
msgstr ""
-#: order/views.py:736
+#: order/views.py:738
msgid "Error converting quantity to number"
msgstr ""
-#: order/views.py:742
+#: order/views.py:744
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:748
+#: order/views.py:750
msgid "No lines specified"
msgstr ""
-#: order/views.py:1069
+#: order/views.py:1071
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1129
+#: order/views.py:1131
msgid "Supplier part must be specified"
msgstr ""
-#: order/views.py:1135
+#: order/views.py:1137
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1254 order/views.py:1272
+#: order/views.py:1268 order/views.py:1286
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1288 order/views.py:1300
+#: order/views.py:1302 order/views.py:1314
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1293 order/views.py:1305
+#: order/views.py:1307 order/views.py:1319
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1318
+#: order/views.py:1332
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1363
+#: order/views.py:1377
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1379
+#: order/views.py:1393
msgid "Select line item"
msgstr ""
-#: order/views.py:1410
+#: order/views.py:1424
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1420
+#: order/views.py:1434
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1428
+#: order/views.py:1442
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1482
+#: order/views.py:1496
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1556
+#: order/views.py:1570
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1571
+#: order/views.py:1585
msgid "Remove allocation"
msgstr ""
+#: order/views.py:1657
+msgid "Sales order not found"
+msgstr ""
+
+#: order/views.py:1663
+msgid "Price not found"
+msgstr ""
+
+#: order/views.py:1666
+#, python-brace-format
+msgid "Updated {part} unit-price to {price}"
+msgstr ""
+
+#: order/views.py:1671
+#, python-brace-format
+msgid "Updated {part} unit-price to {price} and quantity to {qty}"
+msgstr ""
+
#: part/bom.py:138 part/models.py:72 part/models.py:762
#: part/templates/part/category.html:66 part/templates/part/detail.html:90
msgid "Default Location"
@@ -3391,7 +3427,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:122 part/models.py:2077
+#: part/forms.py:122 part/models.py:2115
msgid "Parent Part"
msgstr ""
@@ -3467,7 +3503,7 @@ msgstr ""
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:344 part/models.py:2171
+#: part/forms.py:344 part/models.py:2209
msgid "Sub part"
msgstr ""
@@ -3487,7 +3523,7 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:82 part/models.py:2123
+#: part/models.py:82 part/models.py:2161
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -3557,7 +3593,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73
+#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73
#: part/templates/part/set_category.html:15 templates/js/part.js:385
msgid "Category"
msgstr ""
@@ -3612,7 +3648,7 @@ msgstr ""
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106
+#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106
#: part/templates/part/params.html:29
msgid "Units"
msgstr ""
@@ -3679,167 +3715,171 @@ msgstr ""
msgid "Creation User"
msgstr ""
-#: part/models.py:1949
-msgid "Test templates can only be created for trackable parts"
-msgstr ""
-
-#: part/models.py:1966
-msgid "Test with this name already exists for this part"
-msgstr ""
-
-#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104
-msgid "Test Name"
+#: part/models.py:1616
+msgid "Sell multiple"
msgstr ""
#: part/models.py:1987
+msgid "Test templates can only be created for trackable parts"
+msgstr ""
+
+#: part/models.py:2004
+msgid "Test with this name already exists for this part"
+msgstr ""
+
+#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104
+msgid "Test Name"
+msgstr ""
+
+#: part/models.py:2025
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:1992
+#: part/models.py:2030
msgid "Test Description"
msgstr ""
-#: part/models.py:1993
+#: part/models.py:2031
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:1998 templates/js/part.js:647
+#: part/models.py:2036 templates/js/part.js:647
#: templates/js/table_filters.js:222
msgid "Required"
msgstr ""
-#: part/models.py:1999
+#: part/models.py:2037
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2004 templates/js/part.js:655
+#: part/models.py:2042 templates/js/part.js:655
msgid "Requires Value"
msgstr ""
-#: part/models.py:2005
+#: part/models.py:2043
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2010 templates/js/part.js:662
+#: part/models.py:2048 templates/js/part.js:662
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2011
+#: part/models.py:2049
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2044
+#: part/models.py:2082
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2049
+#: part/models.py:2087
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2051
+#: part/models.py:2089
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2079 part/models.py:2128 part/models.py:2129
+#: part/models.py:2117 part/models.py:2166 part/models.py:2167
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Data"
msgstr ""
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2133 templates/InvenTree/settings/category.html:67
+#: part/models.py:2171 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2172
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2163
+#: part/models.py:2201
msgid "Select parent part"
msgstr ""
-#: part/models.py:2172
+#: part/models.py:2210
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2178
+#: part/models.py:2216
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269
+#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269
msgid "Optional"
msgstr ""
-#: part/models.py:2180
+#: part/models.py:2218
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2183
+#: part/models.py:2221
msgid "Overage"
msgstr ""
-#: part/models.py:2184
+#: part/models.py:2222
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2187
+#: part/models.py:2225
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2190
+#: part/models.py:2228
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2230
msgid "Checksum"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2230
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286
+#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286
#: templates/js/table_filters.js:50
msgid "Inherited"
msgstr ""
-#: part/models.py:2197
+#: part/models.py:2235
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2273 part/views.py:1592 part/views.py:1644
+#: part/models.py:2311 part/views.py:1592 part/views.py:1644
#: stock/models.py:260
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2282 part/models.py:2284
+#: part/models.py:2320 part/models.py:2322
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2287
+#: part/models.py:2325
msgid "BOM Item"
msgstr ""
-#: part/models.py:2404
+#: part/models.py:2442
msgid "Part 1"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Part 2"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2440
+#: part/models.py:2478
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4042,7 +4082,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:29 part/views.py:2282
+#: part/templates/part/category.html:29 part/views.py:2290
msgid "Create new part category"
msgstr ""
@@ -4301,10 +4341,6 @@ msgstr ""
msgid "Sales Price Information"
msgstr ""
-#: part/templates/part/navbar.html:95
-msgid "Sale Price"
-msgstr ""
-
#: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr ""
@@ -4439,42 +4475,39 @@ msgstr ""
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_pricing.html:8
-#, python-format
-msgid "Pricing information for:
%(part)s."
-msgstr ""
-
-#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:19
msgid "Supplier Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:27
-#: part/templates/part/part_pricing.html:53
+#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:81
msgid "Unit Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:33
-#: part/templates/part/part_pricing.html:59
+#: part/templates/part/part_pricing.html:29
+#: part/templates/part/part_pricing.html:55
+#: part/templates/part/part_pricing.html:85
msgid "Total Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:41
+#: part/templates/part/part_pricing.html:37
msgid "No supplier pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:45
msgid "BOM Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:67
+#: part/templates/part/part_pricing.html:63
msgid "Note: BOM pricing is incomplete for this part"
msgstr ""
-#: part/templates/part/part_pricing.html:74
+#: part/templates/part/part_pricing.html:70
msgid "No BOM pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:84
+#: part/templates/part/part_pricing.html:94
msgid "No pricing information is available for this part."
msgstr ""
@@ -4732,63 +4765,63 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2081
+#: part/views.py:2089
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2091
+#: part/views.py:2099
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2098
+#: part/views.py:2106
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2106
+#: part/views.py:2114
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2156
+#: part/views.py:2164
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2170
+#: part/views.py:2178
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2230
+#: part/views.py:2238
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:2268
+#: part/views.py:2276
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2274
+#: part/views.py:2282
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2326
+#: part/views.py:2334
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2427
+#: part/views.py:2435
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2483
+#: part/views.py:2491
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2502
+#: part/views.py:2510
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2572
+#: part/views.py:2580
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2628
+#: part/views.py:2636
msgid "Confim BOM item deletion"
msgstr ""
@@ -6166,9 +6199,9 @@ msgstr ""
msgid "Submit Bug Report"
msgstr ""
-#: templates/about.html:82 templates/js/modals.js:550
-#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52
-#: templates/modals.html:93
+#: templates/about.html:82 templates/js/modals.js:559
+#: templates/js/modals.js:837 templates/modals.html:29 templates/modals.html:54
+#: templates/modals.html:97
msgid "Close"
msgstr ""
@@ -6232,7 +6265,7 @@ msgstr ""
msgid "Unknown response from server"
msgstr ""
-#: templates/js/barcode.js:119 templates/js/modals.js:857
+#: templates/js/barcode.js:119 templates/js/modals.js:892
msgid "Invalid server response"
msgstr ""
@@ -6479,92 +6512,92 @@ msgstr ""
msgid "Waiting for server..."
msgstr ""
-#: templates/js/modals.js:406
+#: templates/js/modals.js:415
msgid "Show Error Information"
msgstr ""
-#: templates/js/modals.js:473 templates/modals.html:73
+#: templates/js/modals.js:482 templates/modals.html:76
msgid "Accept"
msgstr ""
-#: templates/js/modals.js:474 templates/modals.html:72
+#: templates/js/modals.js:483 templates/modals.html:75
msgid "Cancel"
msgstr ""
-#: templates/js/modals.js:538
+#: templates/js/modals.js:547
msgid "Loading Data"
msgstr ""
-#: templates/js/modals.js:549 templates/js/modals.js:808
-#: templates/modals.html:29 templates/modals.html:53
+#: templates/js/modals.js:558 templates/js/modals.js:836
+#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
-#: templates/js/modals.js:760
+#: templates/js/modals.js:788
msgid "Invalid response from server"
msgstr ""
-#: templates/js/modals.js:760
+#: templates/js/modals.js:788
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/modals.js:773
+#: templates/js/modals.js:801
msgid "Error posting form data"
msgstr ""
-#: templates/js/modals.js:857
+#: templates/js/modals.js:892
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/modals.js:867
+#: templates/js/modals.js:902
msgid "No Response"
msgstr ""
-#: templates/js/modals.js:868
+#: templates/js/modals.js:903
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/modals.js:872
+#: templates/js/modals.js:907
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/modals.js:873
+#: templates/js/modals.js:908
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/modals.js:877
+#: templates/js/modals.js:912
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/modals.js:878
+#: templates/js/modals.js:913
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/modals.js:882
+#: templates/js/modals.js:917
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/modals.js:883
+#: templates/js/modals.js:918
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/modals.js:887
+#: templates/js/modals.js:922
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/modals.js:888
+#: templates/js/modals.js:923
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/modals.js:892
+#: templates/js/modals.js:927
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/modals.js:893
+#: templates/js/modals.js:928
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/modals.js:896
+#: templates/js/modals.js:931
msgid "Error requesting form data"
msgstr ""
@@ -7069,7 +7102,7 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/modals.html:21 templates/modals.html:46
+#: templates/modals.html:21 templates/modals.html:47
msgid "Form errors exist"
msgstr ""
diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po
index 075fb1f471..66d9a6d8fe 100644
--- a/InvenTree/locale/tr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/tr/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-07 13:19+0000\n"
+"POT-Creation-Date: 2021-05-07 13:55+0000\n"
"PO-Revision-Date: 2021-05-06 02:54\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
@@ -122,7 +122,7 @@ msgstr "Yorum"
msgid "File comment"
msgstr "Yorum"
-#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908
+#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/stock.js:1041
msgid "User"
@@ -133,7 +133,7 @@ msgid "upload date"
msgstr "Yükleme tarihi"
#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101
-#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27
+#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27
#: report/models.py:179 templates/InvenTree/search.html:137
#: templates/InvenTree/search.html:289 templates/js/part.js:110
#: templates/js/part.js:553 templates/js/stock.js:944
@@ -141,8 +141,8 @@ msgid "Name"
msgstr "Adı"
#: InvenTree/models.py:114 build/models.py:134
-#: build/templates/build/detail.html:21 company/models.py:342
-#: company/models.py:494 company/templates/company/detail.html:27
+#: build/templates/build/detail.html:21 company/models.py:339
+#: company/models.py:491 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:108
@@ -387,21 +387,20 @@ msgstr ""
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:123
-#: build/templates/build/detail.html:31 common/models.py:703
+#: build/templates/build/detail.html:31 common/models.py:705
#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261
-#: order/forms.py:278 order/models.py:603 order/models.py:794
+#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262
+#: order/forms.py:279 order/models.py:603 order/models.py:804
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:175
#: order/templates/order/sales_order_detail.html:70
#: order/templates/order/sales_order_detail.html:77
#: order/templates/order/sales_order_detail.html:159
#: order/templates/order/sales_order_detail.html:224 part/forms.py:342
-#: part/forms.py:371 part/forms.py:387 part/models.py:2178
+#: part/forms.py:371 part/forms.py:387 part/models.py:2216
#: part/templates/part/allocation.html:19
#: part/templates/part/allocation.html:53
-#: part/templates/part/part_pricing.html:11
-#: part/templates/part/part_pricing.html:18
+#: part/templates/part/part_pricing.html:13
#: part/templates/part/sale_prices.html:85
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -423,7 +422,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:233 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:234 stock/forms.py:118
msgid "Serial Numbers"
msgstr ""
@@ -526,7 +525,7 @@ msgstr ""
#: build/models.py:127 order/models.py:99 order/models.py:605
#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:219 part/models.py:2187
+#: order/templates/order/sales_order_detail.html:219 part/models.py:2225
#: 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:565 templates/js/build.js:1008
@@ -548,16 +547,16 @@ msgstr ""
#: build/models.py:152 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:118
-#: build/templates/build/detail.html:26 company/models.py:688
-#: order/models.py:647 order/models.py:679
+#: build/templates/build/detail.html:26 company/models.py:622
+#: order/models.py:647 order/models.py:680
#: order/templates/order/order_wizard/select_parts.html:30
#: order/templates/order/purchase_order_detail.html:131
#: order/templates/order/receive_parts.html:19
#: order/templates/order/sales_order_detail.html:207 part/models.py:321
-#: part/models.py:1876 part/models.py:1888 part/models.py:1906
-#: part/models.py:1981 part/models.py:2077 part/models.py:2162
+#: part/models.py:1914 part/models.py:1926 part/models.py:1944
+#: part/models.py:2019 part/models.py:2115 part/models.py:2200
#: part/templates/part/part_app_base.html:8
-#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29
+#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
@@ -683,13 +682,13 @@ msgid "Link to external URL"
msgstr ""
#: build/models.py:261 build/templates/build/navbar.html:53
-#: company/models.py:135 company/models.py:501
+#: company/models.py:132 company/models.py:498
#: company/templates/company/navbar.html:70
#: company/templates/company/navbar.html:73 order/models.py:123
#: order/models.py:607 order/templates/order/po_navbar.html:29
#: order/templates/order/po_navbar.html:32
#: order/templates/order/purchase_order_detail.html:209
-#: order/templates/order/sales_order_detail.html:264
+#: order/templates/order/sales_order_detail.html:272
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:871
#: part/templates/part/navbar.html:128
@@ -739,11 +738,11 @@ msgstr ""
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1172 order/models.py:768
+#: build/models.py:1172 order/models.py:778
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1176 order/models.py:771
+#: build/models.py:1176 order/models.py:781
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -819,7 +818,7 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:795
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:797
#: part/templates/part/category.html:127
msgid "Order Parts"
msgstr ""
@@ -962,7 +961,7 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:160
-#: build/templates/build/detail.html:84 order/models.py:677
+#: build/templates/build/detail.html:84 order/models.py:678
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:33
#: order/templates/order/sales_order_ship.html:25
@@ -1355,372 +1354,372 @@ msgstr ""
msgid "Add Build Order Attachment"
msgstr ""
-#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172
+#: build/views.py:1083 order/views.py:112 order/views.py:164 part/views.py:172
#: stock/views.py:277
msgid "Added attachment"
msgstr ""
-#: build/views.py:1119 order/views.py:189 order/views.py:210
+#: build/views.py:1119 order/views.py:191 order/views.py:212
msgid "Edit Attachment"
msgstr ""
-#: build/views.py:1129 order/views.py:193 order/views.py:214
+#: build/views.py:1129 order/views.py:195 order/views.py:216
msgid "Attachment updated"
msgstr ""
-#: build/views.py:1139 order/views.py:229 order/views.py:243
+#: build/views.py:1139 order/views.py:231 order/views.py:245
msgid "Delete Attachment"
msgstr ""
-#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333
+#: build/views.py:1144 order/views.py:237 order/views.py:251 stock/views.py:333
msgid "Deleted attachment"
msgstr ""
-#: common/models.py:56
+#: common/models.py:58
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:58
+#: common/models.py:60
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:62
+#: common/models.py:64
msgid "Use instance name"
msgstr ""
-#: common/models.py:63
+#: common/models.py:65
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:69 company/models.py:97 company/models.py:98
+#: common/models.py:71 company/models.py:94 company/models.py:95
msgid "Company name"
msgstr ""
-#: common/models.py:70
+#: common/models.py:72
msgid "Internal company name"
msgstr ""
-#: common/models.py:75
+#: common/models.py:77
msgid "Base URL"
msgstr ""
-#: common/models.py:76
+#: common/models.py:78
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:82
+#: common/models.py:84
msgid "Default Currency"
msgstr ""
-#: common/models.py:83
+#: common/models.py:85
msgid "Default currency"
msgstr ""
-#: common/models.py:89
+#: common/models.py:91
msgid "Download from URL"
msgstr ""
-#: common/models.py:90
+#: common/models.py:92
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:96
+#: common/models.py:98
msgid "Barcode Support"
msgstr ""
-#: common/models.py:97
+#: common/models.py:99
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:103
+#: common/models.py:105
msgid "IPN Regex"
msgstr ""
-#: common/models.py:104
+#: common/models.py:106
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:108
+#: common/models.py:110
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:109
+#: common/models.py:111
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:115
+#: common/models.py:117
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:116
+#: common/models.py:118
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:122
+#: common/models.py:124
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:123
+#: common/models.py:125
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:129
+#: common/models.py:131
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:130
+#: common/models.py:132
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:136
+#: common/models.py:138
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:137
+#: common/models.py:139
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:143
+#: common/models.py:145
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:144
+#: common/models.py:146
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:150
+#: common/models.py:152
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:151
+#: common/models.py:153
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160
+#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160
#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24
#: templates/js/table_filters.js:310
msgid "Template"
msgstr ""
-#: common/models.py:158
+#: common/models.py:160
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170
+#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170
#: templates/js/table_filters.js:123 templates/js/table_filters.js:322
msgid "Assembly"
msgstr ""
-#: common/models.py:165
+#: common/models.py:167
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180
+#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180
#: templates/js/table_filters.js:326
msgid "Component"
msgstr ""
-#: common/models.py:172
+#: common/models.py:174
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200
+#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr ""
-#: common/models.py:179
+#: common/models.py:181
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210
+#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210
#: templates/js/table_filters.js:334
msgid "Salable"
msgstr ""
-#: common/models.py:186
+#: common/models.py:188
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190
+#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190
#: templates/js/table_filters.js:32 templates/js/table_filters.js:338
msgid "Trackable"
msgstr ""
-#: common/models.py:193
+#: common/models.py:195
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150
+#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150
#: templates/js/table_filters.js:28
msgid "Virtual"
msgstr ""
-#: common/models.py:200
+#: common/models.py:202
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:206
+#: common/models.py:208
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:207
+#: common/models.py:209
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:213
+#: common/models.py:215
msgid "Debug Mode"
msgstr ""
-#: common/models.py:214
+#: common/models.py:216
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:220
+#: common/models.py:222
msgid "Page Size"
msgstr ""
-#: common/models.py:221
+#: common/models.py:223
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:231
+#: common/models.py:233
msgid "Test Reports"
msgstr ""
-#: common/models.py:232
+#: common/models.py:234
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:238
+#: common/models.py:240
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:239
+#: common/models.py:241
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:245
+#: common/models.py:247
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:246
+#: common/models.py:248
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:252
+#: common/models.py:254
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:253
+#: common/models.py:255
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:255 part/templates/part/detail.html:121
+#: common/models.py:257 part/templates/part/detail.html:121
msgid "days"
msgstr ""
-#: common/models.py:260
+#: common/models.py:262
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:261
+#: common/models.py:263
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:267
+#: common/models.py:269
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:268
+#: common/models.py:270
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:274
+#: common/models.py:276
msgid "Group by Part"
msgstr ""
-#: common/models.py:275
+#: common/models.py:277
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:281
+#: common/models.py:283
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:282
+#: common/models.py:284
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:288
+#: common/models.py:290
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:289
+#: common/models.py:291
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:294
+#: common/models.py:296
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:295
+#: common/models.py:297
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:299
+#: common/models.py:301
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:300
+#: common/models.py:302
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:305
+#: common/models.py:307
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:306
+#: common/models.py:308
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:529
+#: common/models.py:531
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:531
+#: common/models.py:533
msgid "Settings value"
msgstr ""
-#: common/models.py:566
+#: common/models.py:568
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:589
+#: common/models.py:591
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:600
+#: common/models.py:602
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:623
+#: common/models.py:625
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:704 company/forms.py:177
+#: common/models.py:706 company/forms.py:177
msgid "Price break quantity"
msgstr ""
-#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82
#: part/templates/part/sale_prices.html:90 templates/js/bom.js:255
msgid "Price"
msgstr ""
-#: common/models.py:713
+#: common/models.py:715
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:736
+#: common/models.py:804
msgid "Default"
msgstr ""
@@ -1740,12 +1739,12 @@ msgstr ""
msgid "Supplied value must be a boolean"
msgstr ""
-#: company/forms.py:38 company/models.py:145
+#: company/forms.py:38 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
msgstr ""
-#: company/forms.py:39 company/models.py:147
+#: company/forms.py:39 company/models.py:144
msgid "Default currency used for this company"
msgstr ""
@@ -1765,15 +1764,15 @@ msgstr ""
msgid "Single quantity price"
msgstr ""
-#: company/forms.py:128 company/models.py:324
+#: company/forms.py:128 company/models.py:321
msgid "Select manufacturer"
msgstr ""
-#: company/forms.py:134 company/models.py:331
+#: company/forms.py:134 company/models.py:328
msgid "Manufacturer Part Number"
msgstr ""
-#: company/forms.py:136 company/models.py:330
+#: company/forms.py:136 company/models.py:327
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:101
@@ -1783,56 +1782,56 @@ msgstr ""
msgid "MPN"
msgstr ""
-#: company/models.py:102
+#: company/models.py:99
msgid "Company description"
msgstr ""
-#: company/models.py:103
+#: company/models.py:100
msgid "Description of the company"
msgstr ""
-#: company/models.py:107 company/templates/company/company_base.html:70
+#: company/models.py:104 company/templates/company/company_base.html:70
#: company/templates/company/detail.html:33 templates/js/company.js:60
msgid "Website"
msgstr ""
-#: company/models.py:107
+#: company/models.py:104
msgid "Company website URL"
msgstr ""
-#: company/models.py:110 company/templates/company/company_base.html:77
+#: company/models.py:107 company/templates/company/company_base.html:77
msgid "Address"
msgstr ""
-#: company/models.py:111
+#: company/models.py:108
msgid "Company address"
msgstr ""
-#: company/models.py:114
+#: company/models.py:111
msgid "Phone number"
msgstr ""
-#: company/models.py:115
+#: company/models.py:112
msgid "Contact phone number"
msgstr ""
-#: company/models.py:118 company/templates/company/company_base.html:91
+#: company/models.py:115 company/templates/company/company_base.html:91
msgid "Email"
msgstr ""
-#: company/models.py:118
+#: company/models.py:115
msgid "Contact email address"
msgstr ""
-#: company/models.py:121 company/templates/company/company_base.html:98
+#: company/models.py:118 company/templates/company/company_base.html:98
msgid "Contact"
msgstr ""
-#: company/models.py:122
+#: company/models.py:119
msgid "Point of contact"
msgstr ""
-#: company/models.py:124 company/models.py:336 company/models.py:488
+#: company/models.py:121 company/models.py:333 company/models.py:485
#: order/models.py:103 part/models.py:743
#: report/templates/report/inventree_build_order_base.html:165
#: stock/models.py:1556 templates/js/company.js:188 templates/js/company.js:318
@@ -1840,48 +1839,48 @@ msgstr ""
msgid "Link"
msgstr ""
-#: company/models.py:124
+#: company/models.py:121
msgid "Link to external company information"
msgstr ""
-#: company/models.py:132 part/models.py:753
+#: company/models.py:129 part/models.py:753
msgid "Image"
msgstr ""
-#: company/models.py:137
+#: company/models.py:134
msgid "is customer"
msgstr ""
-#: company/models.py:137
+#: company/models.py:134
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:139
+#: company/models.py:136
msgid "is supplier"
msgstr ""
-#: company/models.py:139
+#: company/models.py:136
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:141
+#: company/models.py:138
msgid "is manufacturer"
msgstr ""
-#: company/models.py:141
+#: company/models.py:138
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:308 company/models.py:459 stock/models.py:373
+#: company/models.py:305 company/models.py:456 stock/models.py:373
#: stock/templates/stock/item_base.html:224
msgid "Base Part"
msgstr ""
-#: company/models.py:312 company/models.py:463 order/views.py:1384
+#: company/models.py:309 company/models.py:460 order/views.py:1398
msgid "Select part"
msgstr ""
-#: company/models.py:323 company/templates/company/detail.html:57
+#: company/models.py:320 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
@@ -1892,15 +1891,15 @@ msgstr ""
msgid "Manufacturer"
msgstr ""
-#: company/models.py:337
+#: company/models.py:334
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:343
+#: company/models.py:340
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:469 company/templates/company/detail.html:62
+#: company/models.py:466 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:190
#: order/templates/order/order_base.html:92
@@ -1911,70 +1910,70 @@ msgstr ""
msgid "Supplier"
msgstr ""
-#: company/models.py:470
+#: company/models.py:467
msgid "Select supplier"
msgstr ""
-#: company/models.py:475 company/templates/company/supplier_part_base.html:88
+#: company/models.py:472 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
#: order/templates/order/purchase_order_detail.html:149 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr ""
-#: company/models.py:476
+#: company/models.py:473
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:482
+#: company/models.py:479
#: company/templates/company/manufacturer_part_base.html:6
#: company/templates/company/manufacturer_part_base.html:19
#: stock/templates/stock/item_base.html:346
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:483
+#: company/models.py:480
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:489
+#: company/models.py:486
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:495
+#: company/models.py:492
msgid "Supplier part description"
msgstr ""
-#: company/models.py:500 company/templates/company/supplier_part_base.html:115
-#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190
+#: company/models.py:497 company/templates/company/supplier_part_base.html:115
+#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "base cost"
msgstr ""
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:506 company/templates/company/supplier_part_base.html:108
+#: company/models.py:503 company/templates/company/supplier_part_base.html:108
#: stock/models.py:397 stock/templates/stock/item_base.html:299
#: templates/js/stock.js:667
msgid "Packaging"
msgstr ""
-#: company/models.py:506
+#: company/models.py:503
msgid "Part packaging"
msgstr ""
-#: company/models.py:508
+#: company/models.py:505 part/models.py:1616
msgid "multiple"
msgstr ""
-#: company/models.py:508
+#: company/models.py:505
msgid "Order multiple"
msgstr ""
@@ -2000,7 +1999,7 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:46 order/views.py:306
+#: company/templates/company/company_base.html:46 order/views.py:308
msgid "Create Purchase Order"
msgstr ""
@@ -2370,7 +2369,7 @@ msgid "Pricing Information"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794
-#: part/templates/part/sale_prices.html:17 part/views.py:2636
+#: part/templates/part/sale_prices.html:17 part/views.py:2644
msgid "Add Price Break"
msgstr ""
@@ -2486,15 +2485,15 @@ msgstr ""
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:799 part/views.py:2640
+#: company/views.py:799 part/views.py:2648
msgid "Added new price break"
msgstr ""
-#: company/views.py:855 part/views.py:2684
+#: company/views.py:855 part/views.py:2692
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:870 part/views.py:2698
+#: company/views.py:870 part/views.py:2706
msgid "Delete Price Break"
msgstr ""
@@ -2588,11 +2587,11 @@ msgstr ""
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:235
+#: order/forms.py:236
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:241
+#: order/forms.py:242
msgid "Enter quantity of stock items"
msgstr ""
@@ -2727,7 +2726,7 @@ msgstr ""
msgid "Line item notes"
msgstr ""
-#: order/models.py:633 order/models.py:677
+#: order/models.py:633 order/models.py:678
#: part/templates/part/allocation.html:17
#: part/templates/part/allocation.html:45
msgid "Order"
@@ -2764,39 +2763,48 @@ msgstr ""
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:753 order/models.py:755
+#: order/models.py:687 part/templates/part/navbar.html:95
+#: part/templates/part/part_pricing.html:78
+msgid "Sale Price"
+msgstr ""
+
+#: order/models.py:688
+msgid "Unit sale price"
+msgstr ""
+
+#: order/models.py:763 order/models.py:765
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:759
+#: order/models.py:769
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:761
+#: order/models.py:771
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:764
+#: order/models.py:774
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:774
+#: order/models.py:784
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:779
+#: order/models.py:789
msgid "Line"
msgstr ""
-#: order/models.py:790
+#: order/models.py:800
msgid "Item"
msgstr ""
-#: order/models.py:791
+#: order/models.py:801
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:794
+#: order/models.py:804
msgid "Enter stock allocation quantity"
msgstr ""
@@ -2954,8 +2962,8 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1120
-#: order/views.py:1203
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1122
+#: order/views.py:1205
msgid "Add Line Item"
msgstr ""
@@ -2964,11 +2972,12 @@ msgid "No line items found"
msgstr ""
#: order/templates/order/purchase_order_detail.html:180
+#: order/templates/order/sales_order_detail.html:229
msgid "Unit Price"
msgstr ""
#: order/templates/order/purchase_order_detail.html:221
-#: order/templates/order/sales_order_detail.html:294
+#: order/templates/order/sales_order_detail.html:303
msgid "Edit line item"
msgstr ""
@@ -3083,36 +3092,45 @@ msgstr ""
msgid "ID"
msgstr ""
-#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579
+#: order/templates/order/sales_order_detail.html:237 templates/js/build.js:579
#: templates/js/build.js:845
msgid "Allocated"
msgstr ""
-#: order/templates/order/sales_order_detail.html:231
+#: order/templates/order/sales_order_detail.html:239
msgid "Fulfilled"
msgstr ""
-#: order/templates/order/sales_order_detail.html:279
+#: order/templates/order/sales_order_detail.html:287
msgid "Allocate serial numbers"
msgstr ""
-#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641
+#: order/templates/order/sales_order_detail.html:290 templates/js/build.js:641
msgid "Allocate stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:285
+#: order/templates/order/sales_order_detail.html:293
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634
+#: order/templates/order/sales_order_detail.html:297 templates/js/build.js:634
#: templates/js/build.js:1052
msgid "Build stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:295
+#: order/templates/order/sales_order_detail.html:300
+#: order/templates/order/sales_order_detail.html:409
+msgid "Calculate price"
+msgstr ""
+
+#: order/templates/order/sales_order_detail.html:304
msgid "Delete line item "
msgstr ""
+#: order/templates/order/sales_order_detail.html:415
+msgid "Update Unit Price"
+msgstr ""
+
#: order/templates/order/sales_order_notes.html:14
msgid "Sales Order Notes"
msgstr ""
@@ -3154,167 +3172,187 @@ msgstr ""
msgid "Are you sure you wish to delete this line item?"
msgstr ""
-#: order/views.py:99
+#: order/views.py:101
msgid "Add Purchase Order Attachment"
msgstr ""
-#: order/views.py:149
+#: order/views.py:151
msgid "Add Sales Order Attachment"
msgstr ""
-#: order/views.py:341
+#: order/views.py:343
msgid "Create Sales Order"
msgstr ""
-#: order/views.py:376
+#: order/views.py:378
msgid "Edit Purchase Order"
msgstr ""
-#: order/views.py:396
+#: order/views.py:398
msgid "Edit Sales Order"
msgstr ""
-#: order/views.py:412
+#: order/views.py:414
msgid "Cancel Order"
msgstr ""
-#: order/views.py:421 order/views.py:447
+#: order/views.py:423 order/views.py:449
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:424 order/views.py:450
+#: order/views.py:426 order/views.py:452
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:438
+#: order/views.py:440
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:464
+#: order/views.py:466
msgid "Issue Order"
msgstr ""
-#: order/views.py:473
+#: order/views.py:475
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:483
+#: order/views.py:485
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:494
+#: order/views.py:496
msgid "Complete Order"
msgstr ""
-#: order/views.py:510
+#: order/views.py:512
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:521
+#: order/views.py:523
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:531
+#: order/views.py:533
msgid "Ship Order"
msgstr ""
-#: order/views.py:547
+#: order/views.py:549
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:553
+#: order/views.py:555
msgid "Could not ship order"
msgstr ""
-#: order/views.py:607
+#: order/views.py:609
msgid "Receive Parts"
msgstr ""
-#: order/views.py:677
+#: order/views.py:679
msgid "Items received"
msgstr ""
-#: order/views.py:691
+#: order/views.py:693
msgid "No destination set"
msgstr ""
-#: order/views.py:736
+#: order/views.py:738
msgid "Error converting quantity to number"
msgstr ""
-#: order/views.py:742
+#: order/views.py:744
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:748
+#: order/views.py:750
msgid "No lines specified"
msgstr ""
-#: order/views.py:1069
+#: order/views.py:1071
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1129
+#: order/views.py:1131
msgid "Supplier part must be specified"
msgstr ""
-#: order/views.py:1135
+#: order/views.py:1137
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1254 order/views.py:1272
+#: order/views.py:1268 order/views.py:1286
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1288 order/views.py:1300
+#: order/views.py:1302 order/views.py:1314
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1293 order/views.py:1305
+#: order/views.py:1307 order/views.py:1319
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1318
+#: order/views.py:1332
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1363
+#: order/views.py:1377
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1379
+#: order/views.py:1393
msgid "Select line item"
msgstr ""
-#: order/views.py:1410
+#: order/views.py:1424
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1420
+#: order/views.py:1434
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1428
+#: order/views.py:1442
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1482
+#: order/views.py:1496
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1556
+#: order/views.py:1570
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1571
+#: order/views.py:1585
msgid "Remove allocation"
msgstr ""
+#: order/views.py:1657
+msgid "Sales order not found"
+msgstr ""
+
+#: order/views.py:1663
+#, fuzzy
+#| msgid "API endpoint not found"
+msgid "Price not found"
+msgstr "API uçnoktası bulunmadı"
+
+#: order/views.py:1666
+#, python-brace-format
+msgid "Updated {part} unit-price to {price}"
+msgstr ""
+
+#: order/views.py:1671
+#, python-brace-format
+msgid "Updated {part} unit-price to {price} and quantity to {qty}"
+msgstr ""
+
#: part/bom.py:138 part/models.py:72 part/models.py:762
#: part/templates/part/category.html:66 part/templates/part/detail.html:90
msgid "Default Location"
@@ -3393,7 +3431,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:122 part/models.py:2077
+#: part/forms.py:122 part/models.py:2115
msgid "Parent Part"
msgstr ""
@@ -3469,7 +3507,7 @@ msgstr ""
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:344 part/models.py:2171
+#: part/forms.py:344 part/models.py:2209
msgid "Sub part"
msgstr ""
@@ -3489,7 +3527,7 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:82 part/models.py:2123
+#: part/models.py:82 part/models.py:2161
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -3559,7 +3597,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73
+#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73
#: part/templates/part/set_category.html:15 templates/js/part.js:385
msgid "Category"
msgstr ""
@@ -3614,7 +3652,7 @@ msgstr ""
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106
+#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106
#: part/templates/part/params.html:29
msgid "Units"
msgstr ""
@@ -3681,167 +3719,171 @@ msgstr ""
msgid "Creation User"
msgstr ""
-#: part/models.py:1949
-msgid "Test templates can only be created for trackable parts"
-msgstr ""
-
-#: part/models.py:1966
-msgid "Test with this name already exists for this part"
-msgstr ""
-
-#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104
-msgid "Test Name"
+#: part/models.py:1616
+msgid "Sell multiple"
msgstr ""
#: part/models.py:1987
+msgid "Test templates can only be created for trackable parts"
+msgstr ""
+
+#: part/models.py:2004
+msgid "Test with this name already exists for this part"
+msgstr ""
+
+#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104
+msgid "Test Name"
+msgstr ""
+
+#: part/models.py:2025
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:1992
+#: part/models.py:2030
msgid "Test Description"
msgstr ""
-#: part/models.py:1993
+#: part/models.py:2031
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:1998 templates/js/part.js:647
+#: part/models.py:2036 templates/js/part.js:647
#: templates/js/table_filters.js:222
msgid "Required"
msgstr ""
-#: part/models.py:1999
+#: part/models.py:2037
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2004 templates/js/part.js:655
+#: part/models.py:2042 templates/js/part.js:655
msgid "Requires Value"
msgstr ""
-#: part/models.py:2005
+#: part/models.py:2043
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2010 templates/js/part.js:662
+#: part/models.py:2048 templates/js/part.js:662
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2011
+#: part/models.py:2049
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2044
+#: part/models.py:2082
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2049
+#: part/models.py:2087
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2051
+#: part/models.py:2089
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2079 part/models.py:2128 part/models.py:2129
+#: part/models.py:2117 part/models.py:2166 part/models.py:2167
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Data"
msgstr ""
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2133 templates/InvenTree/settings/category.html:67
+#: part/models.py:2171 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2172
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2163
+#: part/models.py:2201
msgid "Select parent part"
msgstr ""
-#: part/models.py:2172
+#: part/models.py:2210
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2178
+#: part/models.py:2216
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269
+#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269
msgid "Optional"
msgstr ""
-#: part/models.py:2180
+#: part/models.py:2218
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2183
+#: part/models.py:2221
msgid "Overage"
msgstr ""
-#: part/models.py:2184
+#: part/models.py:2222
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2187
+#: part/models.py:2225
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2190
+#: part/models.py:2228
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2230
msgid "Checksum"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2230
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286
+#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286
#: templates/js/table_filters.js:50
msgid "Inherited"
msgstr ""
-#: part/models.py:2197
+#: part/models.py:2235
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2273 part/views.py:1592 part/views.py:1644
+#: part/models.py:2311 part/views.py:1592 part/views.py:1644
#: stock/models.py:260
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2282 part/models.py:2284
+#: part/models.py:2320 part/models.py:2322
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2287
+#: part/models.py:2325
msgid "BOM Item"
msgstr ""
-#: part/models.py:2404
+#: part/models.py:2442
msgid "Part 1"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Part 2"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2440
+#: part/models.py:2478
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4044,7 +4086,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:29 part/views.py:2282
+#: part/templates/part/category.html:29 part/views.py:2290
msgid "Create new part category"
msgstr ""
@@ -4303,10 +4345,6 @@ msgstr ""
msgid "Sales Price Information"
msgstr ""
-#: part/templates/part/navbar.html:95
-msgid "Sale Price"
-msgstr ""
-
#: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr ""
@@ -4441,42 +4479,39 @@ msgstr ""
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_pricing.html:8
-#, python-format
-msgid "Pricing information for:
%(part)s."
-msgstr ""
-
-#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:19
msgid "Supplier Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:27
-#: part/templates/part/part_pricing.html:53
+#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:81
msgid "Unit Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:33
-#: part/templates/part/part_pricing.html:59
+#: part/templates/part/part_pricing.html:29
+#: part/templates/part/part_pricing.html:55
+#: part/templates/part/part_pricing.html:85
msgid "Total Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:41
+#: part/templates/part/part_pricing.html:37
msgid "No supplier pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:45
msgid "BOM Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:67
+#: part/templates/part/part_pricing.html:63
msgid "Note: BOM pricing is incomplete for this part"
msgstr ""
-#: part/templates/part/part_pricing.html:74
+#: part/templates/part/part_pricing.html:70
msgid "No BOM pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:84
+#: part/templates/part/part_pricing.html:94
msgid "No pricing information is available for this part."
msgstr ""
@@ -4734,63 +4769,63 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2081
+#: part/views.py:2089
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2091
+#: part/views.py:2099
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2098
+#: part/views.py:2106
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2106
+#: part/views.py:2114
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2156
+#: part/views.py:2164
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2170
+#: part/views.py:2178
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2230
+#: part/views.py:2238
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:2268
+#: part/views.py:2276
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2274
+#: part/views.py:2282
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2326
+#: part/views.py:2334
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2427
+#: part/views.py:2435
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2483
+#: part/views.py:2491
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2502
+#: part/views.py:2510
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2572
+#: part/views.py:2580
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2628
+#: part/views.py:2636
msgid "Confim BOM item deletion"
msgstr ""
@@ -6168,9 +6203,9 @@ msgstr ""
msgid "Submit Bug Report"
msgstr ""
-#: templates/about.html:82 templates/js/modals.js:550
-#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52
-#: templates/modals.html:93
+#: templates/about.html:82 templates/js/modals.js:559
+#: templates/js/modals.js:837 templates/modals.html:29 templates/modals.html:54
+#: templates/modals.html:97
msgid "Close"
msgstr ""
@@ -6234,7 +6269,7 @@ msgstr ""
msgid "Unknown response from server"
msgstr ""
-#: templates/js/barcode.js:119 templates/js/modals.js:857
+#: templates/js/barcode.js:119 templates/js/modals.js:892
msgid "Invalid server response"
msgstr ""
@@ -6481,92 +6516,92 @@ msgstr ""
msgid "Waiting for server..."
msgstr ""
-#: templates/js/modals.js:406
+#: templates/js/modals.js:415
msgid "Show Error Information"
msgstr ""
-#: templates/js/modals.js:473 templates/modals.html:73
+#: templates/js/modals.js:482 templates/modals.html:76
msgid "Accept"
msgstr ""
-#: templates/js/modals.js:474 templates/modals.html:72
+#: templates/js/modals.js:483 templates/modals.html:75
msgid "Cancel"
msgstr ""
-#: templates/js/modals.js:538
+#: templates/js/modals.js:547
msgid "Loading Data"
msgstr ""
-#: templates/js/modals.js:549 templates/js/modals.js:808
-#: templates/modals.html:29 templates/modals.html:53
+#: templates/js/modals.js:558 templates/js/modals.js:836
+#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
-#: templates/js/modals.js:760
+#: templates/js/modals.js:788
msgid "Invalid response from server"
msgstr ""
-#: templates/js/modals.js:760
+#: templates/js/modals.js:788
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/modals.js:773
+#: templates/js/modals.js:801
msgid "Error posting form data"
msgstr ""
-#: templates/js/modals.js:857
+#: templates/js/modals.js:892
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/modals.js:867
+#: templates/js/modals.js:902
msgid "No Response"
msgstr ""
-#: templates/js/modals.js:868
+#: templates/js/modals.js:903
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/modals.js:872
+#: templates/js/modals.js:907
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/modals.js:873
+#: templates/js/modals.js:908
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/modals.js:877
+#: templates/js/modals.js:912
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/modals.js:878
+#: templates/js/modals.js:913
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/modals.js:882
+#: templates/js/modals.js:917
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/modals.js:883
+#: templates/js/modals.js:918
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/modals.js:887
+#: templates/js/modals.js:922
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/modals.js:888
+#: templates/js/modals.js:923
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/modals.js:892
+#: templates/js/modals.js:927
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/modals.js:893
+#: templates/js/modals.js:928
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/modals.js:896
+#: templates/js/modals.js:931
msgid "Error requesting form data"
msgstr ""
@@ -7071,7 +7106,7 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/modals.html:21 templates/modals.html:46
+#: templates/modals.html:21 templates/modals.html:47
msgid "Form errors exist"
msgstr ""
diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po
index e40bc00800..46645ee725 100644
--- a/InvenTree/locale/zh/LC_MESSAGES/django.po
+++ b/InvenTree/locale/zh/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-07 13:19+0000\n"
+"POT-Creation-Date: 2021-05-07 13:55+0000\n"
"PO-Revision-Date: 2021-05-06 02:54\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
@@ -122,7 +122,7 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908
+#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/stock.js:1041
msgid "User"
@@ -133,7 +133,7 @@ msgid "upload date"
msgstr ""
#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101
-#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27
+#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27
#: report/models.py:179 templates/InvenTree/search.html:137
#: templates/InvenTree/search.html:289 templates/js/part.js:110
#: templates/js/part.js:553 templates/js/stock.js:944
@@ -141,8 +141,8 @@ msgid "Name"
msgstr ""
#: InvenTree/models.py:114 build/models.py:134
-#: build/templates/build/detail.html:21 company/models.py:342
-#: company/models.py:494 company/templates/company/detail.html:27
+#: build/templates/build/detail.html:21 company/models.py:339
+#: company/models.py:491 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:108
@@ -386,21 +386,20 @@ msgstr ""
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:123
-#: build/templates/build/detail.html:31 common/models.py:703
+#: build/templates/build/detail.html:31 common/models.py:705
#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261
-#: order/forms.py:278 order/models.py:603 order/models.py:794
+#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262
+#: order/forms.py:279 order/models.py:603 order/models.py:804
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:175
#: order/templates/order/sales_order_detail.html:70
#: order/templates/order/sales_order_detail.html:77
#: order/templates/order/sales_order_detail.html:159
#: order/templates/order/sales_order_detail.html:224 part/forms.py:342
-#: part/forms.py:371 part/forms.py:387 part/models.py:2178
+#: part/forms.py:371 part/forms.py:387 part/models.py:2216
#: part/templates/part/allocation.html:19
#: part/templates/part/allocation.html:53
-#: part/templates/part/part_pricing.html:11
-#: part/templates/part/part_pricing.html:18
+#: part/templates/part/part_pricing.html:13
#: part/templates/part/sale_prices.html:85
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -422,7 +421,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:233 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:234 stock/forms.py:118
msgid "Serial Numbers"
msgstr ""
@@ -525,7 +524,7 @@ msgstr ""
#: build/models.py:127 order/models.py:99 order/models.py:605
#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:219 part/models.py:2187
+#: order/templates/order/sales_order_detail.html:219 part/models.py:2225
#: 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:565 templates/js/build.js:1008
@@ -547,16 +546,16 @@ msgstr ""
#: build/models.py:152 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:118
-#: build/templates/build/detail.html:26 company/models.py:688
-#: order/models.py:647 order/models.py:679
+#: build/templates/build/detail.html:26 company/models.py:622
+#: order/models.py:647 order/models.py:680
#: order/templates/order/order_wizard/select_parts.html:30
#: order/templates/order/purchase_order_detail.html:131
#: order/templates/order/receive_parts.html:19
#: order/templates/order/sales_order_detail.html:207 part/models.py:321
-#: part/models.py:1876 part/models.py:1888 part/models.py:1906
-#: part/models.py:1981 part/models.py:2077 part/models.py:2162
+#: part/models.py:1914 part/models.py:1926 part/models.py:1944
+#: part/models.py:2019 part/models.py:2115 part/models.py:2200
#: part/templates/part/part_app_base.html:8
-#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29
+#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
@@ -682,13 +681,13 @@ msgid "Link to external URL"
msgstr ""
#: build/models.py:261 build/templates/build/navbar.html:53
-#: company/models.py:135 company/models.py:501
+#: company/models.py:132 company/models.py:498
#: company/templates/company/navbar.html:70
#: company/templates/company/navbar.html:73 order/models.py:123
#: order/models.py:607 order/templates/order/po_navbar.html:29
#: order/templates/order/po_navbar.html:32
#: order/templates/order/purchase_order_detail.html:209
-#: order/templates/order/sales_order_detail.html:264
+#: order/templates/order/sales_order_detail.html:272
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:871
#: part/templates/part/navbar.html:128
@@ -738,11 +737,11 @@ msgstr ""
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1172 order/models.py:768
+#: build/models.py:1172 order/models.py:778
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1176 order/models.py:771
+#: build/models.py:1176 order/models.py:781
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -818,7 +817,7 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:795
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:797
#: part/templates/part/category.html:127
msgid "Order Parts"
msgstr ""
@@ -961,7 +960,7 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:160
-#: build/templates/build/detail.html:84 order/models.py:677
+#: build/templates/build/detail.html:84 order/models.py:678
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:33
#: order/templates/order/sales_order_ship.html:25
@@ -1354,372 +1353,372 @@ msgstr ""
msgid "Add Build Order Attachment"
msgstr ""
-#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172
+#: build/views.py:1083 order/views.py:112 order/views.py:164 part/views.py:172
#: stock/views.py:277
msgid "Added attachment"
msgstr ""
-#: build/views.py:1119 order/views.py:189 order/views.py:210
+#: build/views.py:1119 order/views.py:191 order/views.py:212
msgid "Edit Attachment"
msgstr ""
-#: build/views.py:1129 order/views.py:193 order/views.py:214
+#: build/views.py:1129 order/views.py:195 order/views.py:216
msgid "Attachment updated"
msgstr ""
-#: build/views.py:1139 order/views.py:229 order/views.py:243
+#: build/views.py:1139 order/views.py:231 order/views.py:245
msgid "Delete Attachment"
msgstr ""
-#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333
+#: build/views.py:1144 order/views.py:237 order/views.py:251 stock/views.py:333
msgid "Deleted attachment"
msgstr ""
-#: common/models.py:56
+#: common/models.py:58
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:58
+#: common/models.py:60
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:62
+#: common/models.py:64
msgid "Use instance name"
msgstr ""
-#: common/models.py:63
+#: common/models.py:65
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:69 company/models.py:97 company/models.py:98
+#: common/models.py:71 company/models.py:94 company/models.py:95
msgid "Company name"
msgstr ""
-#: common/models.py:70
+#: common/models.py:72
msgid "Internal company name"
msgstr ""
-#: common/models.py:75
+#: common/models.py:77
msgid "Base URL"
msgstr ""
-#: common/models.py:76
+#: common/models.py:78
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:82
+#: common/models.py:84
msgid "Default Currency"
msgstr ""
-#: common/models.py:83
+#: common/models.py:85
msgid "Default currency"
msgstr ""
-#: common/models.py:89
+#: common/models.py:91
msgid "Download from URL"
msgstr ""
-#: common/models.py:90
+#: common/models.py:92
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:96
+#: common/models.py:98
msgid "Barcode Support"
msgstr ""
-#: common/models.py:97
+#: common/models.py:99
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:103
+#: common/models.py:105
msgid "IPN Regex"
msgstr ""
-#: common/models.py:104
+#: common/models.py:106
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:108
+#: common/models.py:110
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:109
+#: common/models.py:111
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:115
+#: common/models.py:117
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:116
+#: common/models.py:118
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:122
+#: common/models.py:124
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:123
+#: common/models.py:125
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:129
+#: common/models.py:131
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:130
+#: common/models.py:132
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:136
+#: common/models.py:138
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:137
+#: common/models.py:139
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:143
+#: common/models.py:145
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:144
+#: common/models.py:146
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:150
+#: common/models.py:152
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:151
+#: common/models.py:153
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160
+#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160
#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24
#: templates/js/table_filters.js:310
msgid "Template"
msgstr ""
-#: common/models.py:158
+#: common/models.py:160
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170
+#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170
#: templates/js/table_filters.js:123 templates/js/table_filters.js:322
msgid "Assembly"
msgstr ""
-#: common/models.py:165
+#: common/models.py:167
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180
+#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180
#: templates/js/table_filters.js:326
msgid "Component"
msgstr ""
-#: common/models.py:172
+#: common/models.py:174
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200
+#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr ""
-#: common/models.py:179
+#: common/models.py:181
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210
+#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210
#: templates/js/table_filters.js:334
msgid "Salable"
msgstr ""
-#: common/models.py:186
+#: common/models.py:188
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190
+#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190
#: templates/js/table_filters.js:32 templates/js/table_filters.js:338
msgid "Trackable"
msgstr ""
-#: common/models.py:193
+#: common/models.py:195
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150
+#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150
#: templates/js/table_filters.js:28
msgid "Virtual"
msgstr ""
-#: common/models.py:200
+#: common/models.py:202
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:206
+#: common/models.py:208
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:207
+#: common/models.py:209
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:213
+#: common/models.py:215
msgid "Debug Mode"
msgstr ""
-#: common/models.py:214
+#: common/models.py:216
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:220
+#: common/models.py:222
msgid "Page Size"
msgstr ""
-#: common/models.py:221
+#: common/models.py:223
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:231
+#: common/models.py:233
msgid "Test Reports"
msgstr ""
-#: common/models.py:232
+#: common/models.py:234
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:238
+#: common/models.py:240
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:239
+#: common/models.py:241
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:245
+#: common/models.py:247
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:246
+#: common/models.py:248
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:252
+#: common/models.py:254
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:253
+#: common/models.py:255
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:255 part/templates/part/detail.html:121
+#: common/models.py:257 part/templates/part/detail.html:121
msgid "days"
msgstr ""
-#: common/models.py:260
+#: common/models.py:262
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:261
+#: common/models.py:263
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:267
+#: common/models.py:269
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:268
+#: common/models.py:270
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:274
+#: common/models.py:276
msgid "Group by Part"
msgstr ""
-#: common/models.py:275
+#: common/models.py:277
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:281
+#: common/models.py:283
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:282
+#: common/models.py:284
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:288
+#: common/models.py:290
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:289
+#: common/models.py:291
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:294
+#: common/models.py:296
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:295
+#: common/models.py:297
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:299
+#: common/models.py:301
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:300
+#: common/models.py:302
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:305
+#: common/models.py:307
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:306
+#: common/models.py:308
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:529
+#: common/models.py:531
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:531
+#: common/models.py:533
msgid "Settings value"
msgstr ""
-#: common/models.py:566
+#: common/models.py:568
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:589
+#: common/models.py:591
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:600
+#: common/models.py:602
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:623
+#: common/models.py:625
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:704 company/forms.py:177
+#: common/models.py:706 company/forms.py:177
msgid "Price break quantity"
msgstr ""
-#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82
#: part/templates/part/sale_prices.html:90 templates/js/bom.js:255
msgid "Price"
msgstr ""
-#: common/models.py:713
+#: common/models.py:715
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:736
+#: common/models.py:804
msgid "Default"
msgstr ""
@@ -1739,12 +1738,12 @@ msgstr ""
msgid "Supplied value must be a boolean"
msgstr ""
-#: company/forms.py:38 company/models.py:145
+#: company/forms.py:38 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
msgstr ""
-#: company/forms.py:39 company/models.py:147
+#: company/forms.py:39 company/models.py:144
msgid "Default currency used for this company"
msgstr ""
@@ -1764,15 +1763,15 @@ msgstr ""
msgid "Single quantity price"
msgstr ""
-#: company/forms.py:128 company/models.py:324
+#: company/forms.py:128 company/models.py:321
msgid "Select manufacturer"
msgstr ""
-#: company/forms.py:134 company/models.py:331
+#: company/forms.py:134 company/models.py:328
msgid "Manufacturer Part Number"
msgstr ""
-#: company/forms.py:136 company/models.py:330
+#: company/forms.py:136 company/models.py:327
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:101
@@ -1782,56 +1781,56 @@ msgstr ""
msgid "MPN"
msgstr ""
-#: company/models.py:102
+#: company/models.py:99
msgid "Company description"
msgstr ""
-#: company/models.py:103
+#: company/models.py:100
msgid "Description of the company"
msgstr ""
-#: company/models.py:107 company/templates/company/company_base.html:70
+#: company/models.py:104 company/templates/company/company_base.html:70
#: company/templates/company/detail.html:33 templates/js/company.js:60
msgid "Website"
msgstr ""
-#: company/models.py:107
+#: company/models.py:104
msgid "Company website URL"
msgstr ""
-#: company/models.py:110 company/templates/company/company_base.html:77
+#: company/models.py:107 company/templates/company/company_base.html:77
msgid "Address"
msgstr ""
-#: company/models.py:111
+#: company/models.py:108
msgid "Company address"
msgstr ""
-#: company/models.py:114
+#: company/models.py:111
msgid "Phone number"
msgstr ""
-#: company/models.py:115
+#: company/models.py:112
msgid "Contact phone number"
msgstr ""
-#: company/models.py:118 company/templates/company/company_base.html:91
+#: company/models.py:115 company/templates/company/company_base.html:91
msgid "Email"
msgstr ""
-#: company/models.py:118
+#: company/models.py:115
msgid "Contact email address"
msgstr ""
-#: company/models.py:121 company/templates/company/company_base.html:98
+#: company/models.py:118 company/templates/company/company_base.html:98
msgid "Contact"
msgstr ""
-#: company/models.py:122
+#: company/models.py:119
msgid "Point of contact"
msgstr ""
-#: company/models.py:124 company/models.py:336 company/models.py:488
+#: company/models.py:121 company/models.py:333 company/models.py:485
#: order/models.py:103 part/models.py:743
#: report/templates/report/inventree_build_order_base.html:165
#: stock/models.py:1556 templates/js/company.js:188 templates/js/company.js:318
@@ -1839,48 +1838,48 @@ msgstr ""
msgid "Link"
msgstr ""
-#: company/models.py:124
+#: company/models.py:121
msgid "Link to external company information"
msgstr ""
-#: company/models.py:132 part/models.py:753
+#: company/models.py:129 part/models.py:753
msgid "Image"
msgstr ""
-#: company/models.py:137
+#: company/models.py:134
msgid "is customer"
msgstr ""
-#: company/models.py:137
+#: company/models.py:134
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:139
+#: company/models.py:136
msgid "is supplier"
msgstr ""
-#: company/models.py:139
+#: company/models.py:136
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:141
+#: company/models.py:138
msgid "is manufacturer"
msgstr ""
-#: company/models.py:141
+#: company/models.py:138
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:308 company/models.py:459 stock/models.py:373
+#: company/models.py:305 company/models.py:456 stock/models.py:373
#: stock/templates/stock/item_base.html:224
msgid "Base Part"
msgstr ""
-#: company/models.py:312 company/models.py:463 order/views.py:1384
+#: company/models.py:309 company/models.py:460 order/views.py:1398
msgid "Select part"
msgstr ""
-#: company/models.py:323 company/templates/company/detail.html:57
+#: company/models.py:320 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
@@ -1891,15 +1890,15 @@ msgstr ""
msgid "Manufacturer"
msgstr ""
-#: company/models.py:337
+#: company/models.py:334
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:343
+#: company/models.py:340
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:469 company/templates/company/detail.html:62
+#: company/models.py:466 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:190
#: order/templates/order/order_base.html:92
@@ -1910,70 +1909,70 @@ msgstr ""
msgid "Supplier"
msgstr ""
-#: company/models.py:470
+#: company/models.py:467
msgid "Select supplier"
msgstr ""
-#: company/models.py:475 company/templates/company/supplier_part_base.html:88
+#: company/models.py:472 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
#: order/templates/order/purchase_order_detail.html:149 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr ""
-#: company/models.py:476
+#: company/models.py:473
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:482
+#: company/models.py:479
#: company/templates/company/manufacturer_part_base.html:6
#: company/templates/company/manufacturer_part_base.html:19
#: stock/templates/stock/item_base.html:346
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:483
+#: company/models.py:480
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:489
+#: company/models.py:486
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:495
+#: company/models.py:492
msgid "Supplier part description"
msgstr ""
-#: company/models.py:500 company/templates/company/supplier_part_base.html:115
-#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190
+#: company/models.py:497 company/templates/company/supplier_part_base.html:115
+#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "base cost"
msgstr ""
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:506 company/templates/company/supplier_part_base.html:108
+#: company/models.py:503 company/templates/company/supplier_part_base.html:108
#: stock/models.py:397 stock/templates/stock/item_base.html:299
#: templates/js/stock.js:667
msgid "Packaging"
msgstr ""
-#: company/models.py:506
+#: company/models.py:503
msgid "Part packaging"
msgstr ""
-#: company/models.py:508
+#: company/models.py:505 part/models.py:1616
msgid "multiple"
msgstr ""
-#: company/models.py:508
+#: company/models.py:505
msgid "Order multiple"
msgstr ""
@@ -1999,7 +1998,7 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:46 order/views.py:306
+#: company/templates/company/company_base.html:46 order/views.py:308
msgid "Create Purchase Order"
msgstr ""
@@ -2369,7 +2368,7 @@ msgid "Pricing Information"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794
-#: part/templates/part/sale_prices.html:17 part/views.py:2636
+#: part/templates/part/sale_prices.html:17 part/views.py:2644
msgid "Add Price Break"
msgstr ""
@@ -2484,15 +2483,15 @@ msgstr ""
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:799 part/views.py:2640
+#: company/views.py:799 part/views.py:2648
msgid "Added new price break"
msgstr ""
-#: company/views.py:855 part/views.py:2684
+#: company/views.py:855 part/views.py:2692
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:870 part/views.py:2698
+#: company/views.py:870 part/views.py:2706
msgid "Delete Price Break"
msgstr ""
@@ -2586,11 +2585,11 @@ msgstr ""
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:235
+#: order/forms.py:236
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:241
+#: order/forms.py:242
msgid "Enter quantity of stock items"
msgstr ""
@@ -2725,7 +2724,7 @@ msgstr ""
msgid "Line item notes"
msgstr ""
-#: order/models.py:633 order/models.py:677
+#: order/models.py:633 order/models.py:678
#: part/templates/part/allocation.html:17
#: part/templates/part/allocation.html:45
msgid "Order"
@@ -2762,39 +2761,48 @@ msgstr ""
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:753 order/models.py:755
+#: order/models.py:687 part/templates/part/navbar.html:95
+#: part/templates/part/part_pricing.html:78
+msgid "Sale Price"
+msgstr ""
+
+#: order/models.py:688
+msgid "Unit sale price"
+msgstr ""
+
+#: order/models.py:763 order/models.py:765
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:759
+#: order/models.py:769
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:761
+#: order/models.py:771
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:764
+#: order/models.py:774
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:774
+#: order/models.py:784
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:779
+#: order/models.py:789
msgid "Line"
msgstr ""
-#: order/models.py:790
+#: order/models.py:800
msgid "Item"
msgstr ""
-#: order/models.py:791
+#: order/models.py:801
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:794
+#: order/models.py:804
msgid "Enter stock allocation quantity"
msgstr ""
@@ -2952,8 +2960,8 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1120
-#: order/views.py:1203
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1122
+#: order/views.py:1205
msgid "Add Line Item"
msgstr ""
@@ -2962,11 +2970,12 @@ msgid "No line items found"
msgstr ""
#: order/templates/order/purchase_order_detail.html:180
+#: order/templates/order/sales_order_detail.html:229
msgid "Unit Price"
msgstr ""
#: order/templates/order/purchase_order_detail.html:221
-#: order/templates/order/sales_order_detail.html:294
+#: order/templates/order/sales_order_detail.html:303
msgid "Edit line item"
msgstr ""
@@ -3081,36 +3090,45 @@ msgstr ""
msgid "ID"
msgstr ""
-#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579
+#: order/templates/order/sales_order_detail.html:237 templates/js/build.js:579
#: templates/js/build.js:845
msgid "Allocated"
msgstr ""
-#: order/templates/order/sales_order_detail.html:231
+#: order/templates/order/sales_order_detail.html:239
msgid "Fulfilled"
msgstr ""
-#: order/templates/order/sales_order_detail.html:279
+#: order/templates/order/sales_order_detail.html:287
msgid "Allocate serial numbers"
msgstr ""
-#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641
+#: order/templates/order/sales_order_detail.html:290 templates/js/build.js:641
msgid "Allocate stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:285
+#: order/templates/order/sales_order_detail.html:293
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634
+#: order/templates/order/sales_order_detail.html:297 templates/js/build.js:634
#: templates/js/build.js:1052
msgid "Build stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:295
+#: order/templates/order/sales_order_detail.html:300
+#: order/templates/order/sales_order_detail.html:409
+msgid "Calculate price"
+msgstr ""
+
+#: order/templates/order/sales_order_detail.html:304
msgid "Delete line item "
msgstr ""
+#: order/templates/order/sales_order_detail.html:415
+msgid "Update Unit Price"
+msgstr ""
+
#: order/templates/order/sales_order_notes.html:14
msgid "Sales Order Notes"
msgstr ""
@@ -3152,167 +3170,185 @@ msgstr ""
msgid "Are you sure you wish to delete this line item?"
msgstr ""
-#: order/views.py:99
+#: order/views.py:101
msgid "Add Purchase Order Attachment"
msgstr ""
-#: order/views.py:149
+#: order/views.py:151
msgid "Add Sales Order Attachment"
msgstr ""
-#: order/views.py:341
+#: order/views.py:343
msgid "Create Sales Order"
msgstr ""
-#: order/views.py:376
+#: order/views.py:378
msgid "Edit Purchase Order"
msgstr ""
-#: order/views.py:396
+#: order/views.py:398
msgid "Edit Sales Order"
msgstr ""
-#: order/views.py:412
+#: order/views.py:414
msgid "Cancel Order"
msgstr ""
-#: order/views.py:421 order/views.py:447
+#: order/views.py:423 order/views.py:449
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:424 order/views.py:450
+#: order/views.py:426 order/views.py:452
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:438
+#: order/views.py:440
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:464
+#: order/views.py:466
msgid "Issue Order"
msgstr ""
-#: order/views.py:473
+#: order/views.py:475
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:483
+#: order/views.py:485
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:494
+#: order/views.py:496
msgid "Complete Order"
msgstr ""
-#: order/views.py:510
+#: order/views.py:512
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:521
+#: order/views.py:523
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:531
+#: order/views.py:533
msgid "Ship Order"
msgstr ""
-#: order/views.py:547
+#: order/views.py:549
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:553
+#: order/views.py:555
msgid "Could not ship order"
msgstr ""
-#: order/views.py:607
+#: order/views.py:609
msgid "Receive Parts"
msgstr ""
-#: order/views.py:677
+#: order/views.py:679
msgid "Items received"
msgstr ""
-#: order/views.py:691
+#: order/views.py:693
msgid "No destination set"
msgstr ""
-#: order/views.py:736
+#: order/views.py:738
msgid "Error converting quantity to number"
msgstr ""
-#: order/views.py:742
+#: order/views.py:744
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:748
+#: order/views.py:750
msgid "No lines specified"
msgstr ""
-#: order/views.py:1069
+#: order/views.py:1071
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1129
+#: order/views.py:1131
msgid "Supplier part must be specified"
msgstr ""
-#: order/views.py:1135
+#: order/views.py:1137
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1254 order/views.py:1272
+#: order/views.py:1268 order/views.py:1286
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1288 order/views.py:1300
+#: order/views.py:1302 order/views.py:1314
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1293 order/views.py:1305
+#: order/views.py:1307 order/views.py:1319
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1318
+#: order/views.py:1332
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1363
+#: order/views.py:1377
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1379
+#: order/views.py:1393
msgid "Select line item"
msgstr ""
-#: order/views.py:1410
+#: order/views.py:1424
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1420
+#: order/views.py:1434
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1428
+#: order/views.py:1442
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1482
+#: order/views.py:1496
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1556
+#: order/views.py:1570
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1571
+#: order/views.py:1585
msgid "Remove allocation"
msgstr ""
+#: order/views.py:1657
+msgid "Sales order not found"
+msgstr ""
+
+#: order/views.py:1663
+msgid "Price not found"
+msgstr ""
+
+#: order/views.py:1666
+#, python-brace-format
+msgid "Updated {part} unit-price to {price}"
+msgstr ""
+
+#: order/views.py:1671
+#, python-brace-format
+msgid "Updated {part} unit-price to {price} and quantity to {qty}"
+msgstr ""
+
#: part/bom.py:138 part/models.py:72 part/models.py:762
#: part/templates/part/category.html:66 part/templates/part/detail.html:90
msgid "Default Location"
@@ -3391,7 +3427,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:122 part/models.py:2077
+#: part/forms.py:122 part/models.py:2115
msgid "Parent Part"
msgstr ""
@@ -3467,7 +3503,7 @@ msgstr ""
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:344 part/models.py:2171
+#: part/forms.py:344 part/models.py:2209
msgid "Sub part"
msgstr ""
@@ -3487,7 +3523,7 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:82 part/models.py:2123
+#: part/models.py:82 part/models.py:2161
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -3557,7 +3593,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73
+#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73
#: part/templates/part/set_category.html:15 templates/js/part.js:385
msgid "Category"
msgstr ""
@@ -3612,7 +3648,7 @@ msgstr ""
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106
+#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106
#: part/templates/part/params.html:29
msgid "Units"
msgstr ""
@@ -3679,167 +3715,171 @@ msgstr ""
msgid "Creation User"
msgstr ""
-#: part/models.py:1949
-msgid "Test templates can only be created for trackable parts"
-msgstr ""
-
-#: part/models.py:1966
-msgid "Test with this name already exists for this part"
-msgstr ""
-
-#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104
-msgid "Test Name"
+#: part/models.py:1616
+msgid "Sell multiple"
msgstr ""
#: part/models.py:1987
+msgid "Test templates can only be created for trackable parts"
+msgstr ""
+
+#: part/models.py:2004
+msgid "Test with this name already exists for this part"
+msgstr ""
+
+#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104
+msgid "Test Name"
+msgstr ""
+
+#: part/models.py:2025
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:1992
+#: part/models.py:2030
msgid "Test Description"
msgstr ""
-#: part/models.py:1993
+#: part/models.py:2031
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:1998 templates/js/part.js:647
+#: part/models.py:2036 templates/js/part.js:647
#: templates/js/table_filters.js:222
msgid "Required"
msgstr ""
-#: part/models.py:1999
+#: part/models.py:2037
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2004 templates/js/part.js:655
+#: part/models.py:2042 templates/js/part.js:655
msgid "Requires Value"
msgstr ""
-#: part/models.py:2005
+#: part/models.py:2043
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2010 templates/js/part.js:662
+#: part/models.py:2048 templates/js/part.js:662
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2011
+#: part/models.py:2049
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2044
+#: part/models.py:2082
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2049
+#: part/models.py:2087
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2051
+#: part/models.py:2089
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2079 part/models.py:2128 part/models.py:2129
+#: part/models.py:2117 part/models.py:2166 part/models.py:2167
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Data"
msgstr ""
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2133 templates/InvenTree/settings/category.html:67
+#: part/models.py:2171 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2172
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2163
+#: part/models.py:2201
msgid "Select parent part"
msgstr ""
-#: part/models.py:2172
+#: part/models.py:2210
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2178
+#: part/models.py:2216
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269
+#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269
msgid "Optional"
msgstr ""
-#: part/models.py:2180
+#: part/models.py:2218
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2183
+#: part/models.py:2221
msgid "Overage"
msgstr ""
-#: part/models.py:2184
+#: part/models.py:2222
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2187
+#: part/models.py:2225
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2190
+#: part/models.py:2228
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2230
msgid "Checksum"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2230
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286
+#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286
#: templates/js/table_filters.js:50
msgid "Inherited"
msgstr ""
-#: part/models.py:2197
+#: part/models.py:2235
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2273 part/views.py:1592 part/views.py:1644
+#: part/models.py:2311 part/views.py:1592 part/views.py:1644
#: stock/models.py:260
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2282 part/models.py:2284
+#: part/models.py:2320 part/models.py:2322
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2287
+#: part/models.py:2325
msgid "BOM Item"
msgstr ""
-#: part/models.py:2404
+#: part/models.py:2442
msgid "Part 1"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Part 2"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2440
+#: part/models.py:2478
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4042,7 +4082,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:29 part/views.py:2282
+#: part/templates/part/category.html:29 part/views.py:2290
msgid "Create new part category"
msgstr ""
@@ -4301,10 +4341,6 @@ msgstr ""
msgid "Sales Price Information"
msgstr ""
-#: part/templates/part/navbar.html:95
-msgid "Sale Price"
-msgstr ""
-
#: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr ""
@@ -4439,42 +4475,39 @@ msgstr ""
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_pricing.html:8
-#, python-format
-msgid "Pricing information for:
%(part)s."
-msgstr ""
-
-#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:19
msgid "Supplier Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:27
-#: part/templates/part/part_pricing.html:53
+#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:81
msgid "Unit Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:33
-#: part/templates/part/part_pricing.html:59
+#: part/templates/part/part_pricing.html:29
+#: part/templates/part/part_pricing.html:55
+#: part/templates/part/part_pricing.html:85
msgid "Total Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:41
+#: part/templates/part/part_pricing.html:37
msgid "No supplier pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:45
msgid "BOM Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:67
+#: part/templates/part/part_pricing.html:63
msgid "Note: BOM pricing is incomplete for this part"
msgstr ""
-#: part/templates/part/part_pricing.html:74
+#: part/templates/part/part_pricing.html:70
msgid "No BOM pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:84
+#: part/templates/part/part_pricing.html:94
msgid "No pricing information is available for this part."
msgstr ""
@@ -4732,63 +4765,63 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2081
+#: part/views.py:2089
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2091
+#: part/views.py:2099
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2098
+#: part/views.py:2106
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2106
+#: part/views.py:2114
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2156
+#: part/views.py:2164
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2170
+#: part/views.py:2178
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2230
+#: part/views.py:2238
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:2268
+#: part/views.py:2276
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2274
+#: part/views.py:2282
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2326
+#: part/views.py:2334
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2427
+#: part/views.py:2435
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2483
+#: part/views.py:2491
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2502
+#: part/views.py:2510
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2572
+#: part/views.py:2580
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2628
+#: part/views.py:2636
msgid "Confim BOM item deletion"
msgstr ""
@@ -6166,9 +6199,9 @@ msgstr ""
msgid "Submit Bug Report"
msgstr ""
-#: templates/about.html:82 templates/js/modals.js:550
-#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52
-#: templates/modals.html:93
+#: templates/about.html:82 templates/js/modals.js:559
+#: templates/js/modals.js:837 templates/modals.html:29 templates/modals.html:54
+#: templates/modals.html:97
msgid "Close"
msgstr ""
@@ -6232,7 +6265,7 @@ msgstr ""
msgid "Unknown response from server"
msgstr ""
-#: templates/js/barcode.js:119 templates/js/modals.js:857
+#: templates/js/barcode.js:119 templates/js/modals.js:892
msgid "Invalid server response"
msgstr ""
@@ -6479,92 +6512,92 @@ msgstr ""
msgid "Waiting for server..."
msgstr ""
-#: templates/js/modals.js:406
+#: templates/js/modals.js:415
msgid "Show Error Information"
msgstr ""
-#: templates/js/modals.js:473 templates/modals.html:73
+#: templates/js/modals.js:482 templates/modals.html:76
msgid "Accept"
msgstr ""
-#: templates/js/modals.js:474 templates/modals.html:72
+#: templates/js/modals.js:483 templates/modals.html:75
msgid "Cancel"
msgstr ""
-#: templates/js/modals.js:538
+#: templates/js/modals.js:547
msgid "Loading Data"
msgstr ""
-#: templates/js/modals.js:549 templates/js/modals.js:808
-#: templates/modals.html:29 templates/modals.html:53
+#: templates/js/modals.js:558 templates/js/modals.js:836
+#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
-#: templates/js/modals.js:760
+#: templates/js/modals.js:788
msgid "Invalid response from server"
msgstr ""
-#: templates/js/modals.js:760
+#: templates/js/modals.js:788
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/modals.js:773
+#: templates/js/modals.js:801
msgid "Error posting form data"
msgstr ""
-#: templates/js/modals.js:857
+#: templates/js/modals.js:892
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/modals.js:867
+#: templates/js/modals.js:902
msgid "No Response"
msgstr ""
-#: templates/js/modals.js:868
+#: templates/js/modals.js:903
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/modals.js:872
+#: templates/js/modals.js:907
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/modals.js:873
+#: templates/js/modals.js:908
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/modals.js:877
+#: templates/js/modals.js:912
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/modals.js:878
+#: templates/js/modals.js:913
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/modals.js:882
+#: templates/js/modals.js:917
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/modals.js:883
+#: templates/js/modals.js:918
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/modals.js:887
+#: templates/js/modals.js:922
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/modals.js:888
+#: templates/js/modals.js:923
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/modals.js:892
+#: templates/js/modals.js:927
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/modals.js:893
+#: templates/js/modals.js:928
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/modals.js:896
+#: templates/js/modals.js:931
msgid "Error requesting form data"
msgstr ""
@@ -7069,7 +7102,7 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/modals.html:21 templates/modals.html:46
+#: templates/modals.html:21 templates/modals.html:47
msgid "Form errors exist"
msgstr ""