diff --git a/InvenTree/InvenTree/api_version.py b/InvenTree/InvenTree/api_version.py
index 670203e2a9..22c65f2417 100644
--- a/InvenTree/InvenTree/api_version.py
+++ b/InvenTree/InvenTree/api_version.py
@@ -2,11 +2,18 @@
# InvenTree API version
-INVENTREE_API_VERSION = 74
+INVENTREE_API_VERSION = 76
"""
Increment this API version number whenever there is a significant change to the API that any clients need to know about
+v76 -> 2022-09-10 : https://github.com/inventree/InvenTree/pull/3640
+ - Refactor of barcode data on the API
+ - StockItem.uid renamed to StockItem.barcode_hash
+
+v75 -> 2022-09-05 : https://github.com/inventree/InvenTree/pull/3644
+ - Adds "pack_size" attribute to SupplierPart API serializer
+
v74 -> 2022-08-28 : https://github.com/inventree/InvenTree/pull/3615
- Add confirmation field for completing PurchaseOrder if the order has incomplete lines
- Add confirmation field for completing SalesOrder if the order has incomplete lines
diff --git a/InvenTree/InvenTree/fields.py b/InvenTree/InvenTree/fields.py
index d8eff33093..caf625f2b8 100644
--- a/InvenTree/InvenTree/fields.py
+++ b/InvenTree/InvenTree/fields.py
@@ -165,11 +165,8 @@ class RoundingDecimalField(models.DecimalField):
def formfield(self, **kwargs):
"""Return a Field instance for this field."""
- defaults = {
- 'form_class': RoundingDecimalFormField
- }
- defaults.update(kwargs)
+ kwargs['form_class'] = RoundingDecimalFormField
return super().formfield(**kwargs)
diff --git a/InvenTree/InvenTree/helpers.py b/InvenTree/InvenTree/helpers.py
index fcbe9f4c0e..52befbff8f 100644
--- a/InvenTree/InvenTree/helpers.py
+++ b/InvenTree/InvenTree/helpers.py
@@ -1,5 +1,6 @@
"""Provides helper functions used throughout the InvenTree project."""
+import hashlib
import io
import json
import logging
@@ -907,6 +908,23 @@ def remove_non_printable_characters(value: str, remove_ascii=True, remove_unicod
return cleaned
+def hash_barcode(barcode_data):
+ """Calculate a 'unique' hash for a barcode string.
+
+ This hash is used for comparison / lookup.
+
+ We first remove any non-printable characters from the barcode data,
+ as some browsers have issues scanning characters in.
+ """
+
+ barcode_data = str(barcode_data).strip()
+ barcode_data = remove_non_printable_characters(barcode_data)
+
+ hash = hashlib.md5(str(barcode_data).encode())
+
+ return str(hash.hexdigest())
+
+
def get_objectreference(obj, type_ref: str = 'content_type', object_ref: str = 'object_id'):
"""Lookup method for the GenericForeignKey fields.
diff --git a/InvenTree/InvenTree/models.py b/InvenTree/InvenTree/models.py
index 90741d51dd..61fab96f40 100644
--- a/InvenTree/InvenTree/models.py
+++ b/InvenTree/InvenTree/models.py
@@ -636,6 +636,103 @@ class InvenTreeTree(MPTTModel):
return "{path} - {desc}".format(path=self.pathstring, desc=self.description)
+class InvenTreeBarcodeMixin(models.Model):
+ """A mixin class for adding barcode functionality to a model class.
+
+ Two types of barcodes are supported:
+
+ - Internal barcodes (QR codes using a strictly defined format)
+ - External barcodes (assign third party barcode data to a model instance)
+
+ The following fields are added to any model which implements this mixin:
+
+ - barcode_data : Raw data associated with an assigned barcode
+ - barcode_hash : A 'hash' of the assigned barcode data used to improve matching
+ """
+
+ class Meta:
+ """Metaclass options for this mixin.
+
+ Note: abstract must be true, as this is only a mixin, not a separate table
+ """
+ abstract = True
+
+ barcode_data = models.CharField(
+ blank=True, max_length=500,
+ verbose_name=_('Barcode Data'),
+ help_text=_('Third party barcode data'),
+ )
+
+ barcode_hash = models.CharField(
+ blank=True, max_length=128,
+ verbose_name=_('Barcode Hash'),
+ help_text=_('Unique hash of barcode data')
+ )
+
+ @classmethod
+ def barcode_model_type(cls):
+ """Return the model 'type' for creating a custom QR code."""
+
+ # By default, use the name of the class
+ return cls.__name__.lower()
+
+ def format_barcode(self, **kwargs):
+ """Return a JSON string for formatting a QR code for this model instance."""
+
+ return InvenTree.helpers.MakeBarcode(
+ self.__class__.barcode_model_type(),
+ self.pk,
+ **kwargs
+ )
+
+ @property
+ def barcode(self):
+ """Format a minimal barcode string (e.g. for label printing)"""
+
+ return self.format_barcode(brief=True)
+
+ @classmethod
+ def lookup_barcode(cls, barcode_hash):
+ """Check if a model instance exists with the specified third-party barcode hash."""
+
+ return cls.objects.filter(barcode_hash=barcode_hash).first()
+
+ def assign_barcode(self, barcode_hash=None, barcode_data=None, raise_error=True):
+ """Assign an external (third-party) barcode to this object."""
+
+ # Must provide either barcode_hash or barcode_data
+ if barcode_hash is None and barcode_data is None:
+ raise ValueError("Provide either 'barcode_hash' or 'barcode_data'")
+
+ # If barcode_hash is not provided, create from supplier barcode_data
+ if barcode_hash is None:
+ barcode_hash = InvenTree.helpers.hash_barcode(barcode_data)
+
+ # Check for existing item
+ if self.__class__.lookup_barcode(barcode_hash) is not None:
+ if raise_error:
+ raise ValidationError(_("Existing barcode found"))
+ else:
+ return False
+
+ if barcode_data is not None:
+ self.barcode_data = barcode_data
+
+ self.barcode_hash = barcode_hash
+
+ self.save()
+
+ return True
+
+ def unassign_barcode(self):
+ """Unassign custom barcode from this model"""
+
+ self.barcode_data = ''
+ self.barcode_hash = ''
+
+ self.save()
+
+
@receiver(pre_delete, sender=InvenTreeTree, dispatch_uid='tree_pre_delete_log')
def before_delete_tree_item(sender, instance, using, **kwargs):
"""Receives pre_delete signal from InvenTreeTree object.
diff --git a/InvenTree/InvenTree/settings.py b/InvenTree/InvenTree/settings.py
index 210024049d..977a481269 100644
--- a/InvenTree/InvenTree/settings.py
+++ b/InvenTree/InvenTree/settings.py
@@ -605,6 +605,7 @@ LANGUAGE_CODE = get_setting('INVENTREE_LANGUAGE', 'language', 'en-us')
# If a new language translation is supported, it must be added here
LANGUAGES = [
('cs', _('Czech')),
+ ('da', _('Danish')),
('de', _('German')),
('el', _('Greek')),
('en', _('English')),
diff --git a/InvenTree/InvenTree/static/script/inventree/inventree.js b/InvenTree/InvenTree/static/script/inventree/inventree.js
index ea0f2a681c..d66ad7013d 100644
--- a/InvenTree/InvenTree/static/script/inventree/inventree.js
+++ b/InvenTree/InvenTree/static/script/inventree/inventree.js
@@ -140,6 +140,8 @@ function inventreeDocReady() {
// start watcher
startNotificationWatcher();
+ attachClipboard('.clip-btn');
+
// always refresh when the focus returns
$(document).focus(function(){
startNotificationWatcher();
diff --git a/InvenTree/InvenTree/tests.py b/InvenTree/InvenTree/tests.py
index 823c9a918b..1929ba1325 100644
--- a/InvenTree/InvenTree/tests.py
+++ b/InvenTree/InvenTree/tests.py
@@ -19,6 +19,7 @@ from djmoney.contrib.exchange.models import Rate, convert_money
from djmoney.money import Money
import InvenTree.format
+import InvenTree.helpers
import InvenTree.tasks
from common.models import InvenTreeSetting
from common.settings import currency_codes
@@ -848,3 +849,32 @@ class TestOffloadTask(helpers.InvenTreeTestCase):
1, 2, 3, 4, 5,
force_async=True
)
+
+
+class BarcodeMixinTest(helpers.InvenTreeTestCase):
+ """Tests for the InvenTreeBarcodeMixin mixin class"""
+
+ def test_barcode_model_type(self):
+ """Test that the barcode_model_type property works for each class"""
+
+ from part.models import Part
+ from stock.models import StockItem, StockLocation
+
+ self.assertEqual(Part.barcode_model_type(), 'part')
+ self.assertEqual(StockItem.barcode_model_type(), 'stockitem')
+ self.assertEqual(StockLocation.barcode_model_type(), 'stocklocation')
+
+ def test_bacode_hash(self):
+ """Test that the barcode hashing function provides correct results"""
+
+ # Test multiple values for the hashing function
+ # This is to ensure that the hash function is always "backwards compatible"
+ hashing_tests = {
+ 'abcdefg': '7ac66c0f148de9519b8bd264312c4d64',
+ 'ABCDEFG': 'bb747b3df3130fe1ca4afa93fb7d97c9',
+ '1234567': 'fcea920f7412b5da7be0cf42b8c93759',
+ '{"part": 17, "stockitem": 12}': 'c88c11ed0628eb7fef0d59b098b96975',
+ }
+
+ for barcode, hash in hashing_tests.items():
+ self.assertEqual(InvenTree.helpers.hash_barcode(barcode), hash)
diff --git a/InvenTree/build/models.py b/InvenTree/build/models.py
index 07bcaf4514..5852fe4965 100644
--- a/InvenTree/build/models.py
+++ b/InvenTree/build/models.py
@@ -22,7 +22,7 @@ from mptt.exceptions import InvalidMove
from rest_framework import serializers
from InvenTree.status_codes import BuildStatus, StockStatus, StockHistoryCode
-from InvenTree.helpers import increment, normalize, MakeBarcode, notify_responsible
+from InvenTree.helpers import increment, normalize, notify_responsible
from InvenTree.models import InvenTreeAttachment, ReferenceIndexingMixin
from build.validators import generate_next_build_reference, validate_build_order_reference
@@ -110,17 +110,6 @@ class Build(MPTTModel, ReferenceIndexingMixin):
verbose_name = _("Build Order")
verbose_name_plural = _("Build Orders")
- def format_barcode(self, **kwargs):
- """Return a JSON string to represent this build as a barcode."""
- return MakeBarcode(
- "buildorder",
- self.pk,
- {
- "reference": self.title,
- "url": self.get_absolute_url(),
- }
- )
-
@staticmethod
def filterByDate(queryset, min_date, max_date):
"""Filter by 'minimum and maximum date range'.
diff --git a/InvenTree/company/api.py b/InvenTree/company/api.py
index 3307c9a619..83f6b34a08 100644
--- a/InvenTree/company/api.py
+++ b/InvenTree/company/api.py
@@ -8,6 +8,7 @@ from django_filters.rest_framework import DjangoFilterBackend
from rest_framework import filters
from InvenTree.api import AttachmentMixin, ListCreateDestroyAPIView
+from InvenTree.filters import InvenTreeOrderingFilter
from InvenTree.helpers import str2bool
from InvenTree.mixins import ListCreateAPI, RetrieveUpdateDestroyAPI
@@ -338,12 +339,30 @@ class SupplierPartList(ListCreateDestroyAPIView):
filter_backends = [
DjangoFilterBackend,
filters.SearchFilter,
- filters.OrderingFilter,
+ InvenTreeOrderingFilter,
]
filterset_fields = [
]
+ ordering_fields = [
+ 'SKU',
+ 'part',
+ 'supplier',
+ 'manufacturer',
+ 'MPN',
+ 'packaging',
+ 'pack_size',
+ 'in_stock',
+ ]
+
+ ordering_field_aliases = {
+ 'part': 'part__name',
+ 'supplier': 'supplier__name',
+ 'manufacturer': 'manufacturer_part__manufacturer__name',
+ 'MPN': 'manufacturer_part__MPN',
+ }
+
search_fields = [
'SKU',
'supplier__name',
diff --git a/InvenTree/company/migrations/0047_supplierpart_pack_size.py b/InvenTree/company/migrations/0047_supplierpart_pack_size.py
new file mode 100644
index 0000000000..47a4e6b3fb
--- /dev/null
+++ b/InvenTree/company/migrations/0047_supplierpart_pack_size.py
@@ -0,0 +1,20 @@
+# Generated by Django 3.2.15 on 2022-09-05 04:21
+
+import InvenTree.fields
+import django.core.validators
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('company', '0046_alter_company_image'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='supplierpart',
+ name='pack_size',
+ field=InvenTree.fields.RoundingDecimalField(decimal_places=5, default=1, help_text='Unit quantity supplied in a single pack', max_digits=15, validators=[django.core.validators.MinValueValidator(0.001)], verbose_name='Pack Quantity'),
+ ),
+ ]
diff --git a/InvenTree/company/migrations/0048_auto_20220913_0312.py b/InvenTree/company/migrations/0048_auto_20220913_0312.py
new file mode 100644
index 0000000000..6f4aecc77d
--- /dev/null
+++ b/InvenTree/company/migrations/0048_auto_20220913_0312.py
@@ -0,0 +1,23 @@
+# Generated by Django 3.2.15 on 2022-09-13 03:12
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('company', '0047_supplierpart_pack_size'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='supplierpart',
+ name='barcode_data',
+ field=models.CharField(blank=True, help_text='Third party barcode data', max_length=500, verbose_name='Barcode Data'),
+ ),
+ migrations.AddField(
+ model_name='supplierpart',
+ name='barcode_hash',
+ field=models.CharField(blank=True, help_text='Unique hash of barcode data', max_length=128, verbose_name='Barcode Hash'),
+ ),
+ ]
diff --git a/InvenTree/company/models.py b/InvenTree/company/models.py
index fa68dfcf1b..67b48a0e85 100644
--- a/InvenTree/company/models.py
+++ b/InvenTree/company/models.py
@@ -20,8 +20,8 @@ import InvenTree.fields
import InvenTree.helpers
import InvenTree.validators
from common.settings import currency_code_default
-from InvenTree.fields import InvenTreeURLField
-from InvenTree.models import InvenTreeAttachment
+from InvenTree.fields import InvenTreeURLField, RoundingDecimalField
+from InvenTree.models import InvenTreeAttachment, InvenTreeBarcodeMixin
from InvenTree.status_codes import PurchaseOrderStatus
@@ -391,7 +391,7 @@ class SupplierPartManager(models.Manager):
)
-class SupplierPart(models.Model):
+class SupplierPart(InvenTreeBarcodeMixin, models.Model):
"""Represents a unique part as provided by a Supplier Each SupplierPart is identified by a SKU (Supplier Part Number) Each SupplierPart is also linked to a Part or ManufacturerPart object. A Part may be available from multiple suppliers.
Attributes:
@@ -406,6 +406,7 @@ class SupplierPart(models.Model):
multiple: Multiple that the part is provided in
lead_time: Supplier lead time
packaging: packaging that the part is supplied in, e.g. "Reel"
+ pack_size: Quantity of item supplied in a single pack (e.g. 30ml in a single tube)
"""
objects = SupplierPartManager()
@@ -527,6 +528,14 @@ class SupplierPart(models.Model):
packaging = models.CharField(max_length=50, blank=True, null=True, verbose_name=_('Packaging'), help_text=_('Part packaging'))
+ pack_size = RoundingDecimalField(
+ verbose_name=_('Pack Quantity'),
+ help_text=_('Unit quantity supplied in a single pack'),
+ default=1,
+ max_digits=15, decimal_places=5,
+ validators=[MinValueValidator(0.001)],
+ )
+
multiple = models.PositiveIntegerField(default=1, validators=[MinValueValidator(1)], verbose_name=_('multiple'), help_text=_('Order multiple'))
# TODO - Reimplement lead-time as a charfield with special validation (pattern matching).
diff --git a/InvenTree/company/serializers.py b/InvenTree/company/serializers.py
index 5a9e5b4587..2f74501fd0 100644
--- a/InvenTree/company/serializers.py
+++ b/InvenTree/company/serializers.py
@@ -239,6 +239,8 @@ class SupplierPartSerializer(InvenTreeModelSerializer):
pretty_name = serializers.CharField(read_only=True)
+ pack_size = serializers.FloatField(label=_('Pack Quantity'))
+
def __init__(self, *args, **kwargs):
"""Initialize this serializer with extra detail fields as required"""
@@ -273,6 +275,8 @@ class SupplierPartSerializer(InvenTreeModelSerializer):
manufacturer_part_detail = ManufacturerPartSerializer(source='manufacturer_part', read_only=True)
+ url = serializers.CharField(source='get_absolute_url', read_only=True)
+
class Meta:
"""Metaclass options."""
@@ -291,12 +295,14 @@ class SupplierPartSerializer(InvenTreeModelSerializer):
'note',
'pk',
'packaging',
+ 'pack_size',
'part',
'part_detail',
'pretty_name',
'SKU',
'supplier',
'supplier_detail',
+ 'url',
]
read_only_fields = [
diff --git a/InvenTree/company/templates/company/supplier_part.html b/InvenTree/company/templates/company/supplier_part.html
index 5c4533a197..9a058c2d4e 100644
--- a/InvenTree/company/templates/company/supplier_part.html
+++ b/InvenTree/company/templates/company/supplier_part.html
@@ -30,6 +30,22 @@
{% url 'admin:company_supplierpart_change' part.pk as url %}
{% include "admin_button.html" with url=url %}
{% endif %}
+{% if barcodes %}
+
+
+
+
+
+
+
+{% endif %}
{% if roles.purchase_order.change or roles.purchase_order.add or roles.purchase_order.delete %}
@@ -49,6 +65,11 @@
{% trans "Edit Supplier Part" %}
{% endif %}
+ {% if roles.purchase_order.add %}
+
+ {% trans "Duplicate Supplier Part" %}
+
+ {% endif %}
{% if roles.purchase_order.delete %}
{% trans "Delete Supplier Part" %}
@@ -95,6 +116,13 @@ src="{% static 'img/blank_image.png' %}"
{% decimal part.available %}{% render_date part.availability_updated %}
{% endif %}
+ {% if part.barcode_hash %}
+
+
+ {% trans "Barcode Identifier" %}
+ {{ part.barcode_hash }}
+
+ {% endif %}
{% endblock details %}
@@ -140,6 +168,13 @@ src="{% static 'img/blank_image.png' %}"
{{ part.packaging }}{% include "clip.html"%}
{% endif %}
+ {% if part.pack_size != 1.0 %}
+
+
+ {% trans "Pack Quantity" %}
+ {% decimal part.pack_size %} {% include "part/part_units.html" with part=part.part %}
+
+ {% endif %}
{% if part.note %}
@@ -229,6 +264,33 @@ src="{% static 'img/blank_image.png' %}"
{% block js_ready %}
{{ block.super }}
+{% if barcodes %}
+
+$("#show-qr-code").click(function() {
+ launchModalForm("{% url 'supplier-part-qr' part.pk %}",
+ {
+ no_post: true,
+ });
+});
+
+$("#barcode-link").click(function() {
+ linkBarcodeDialog(
+ {
+ supplierpart: {{ part.pk }},
+ },
+ {
+ title: '{% trans "Link Barcode to Supplier Part" %}',
+ }
+ );
+});
+
+$("#barcode-unlink").click(function() {
+ unlinkBarcode({
+ supplierpart: {{ part.pk }},
+ });
+});
+{% endif %}
+
function reloadPriceBreaks() {
$("#price-break-table").bootstrapTable("refresh");
}
@@ -386,6 +448,12 @@ $('#update-part-availability').click(function() {
});
});
+$('#duplicate-part').click(function() {
+ duplicateSupplierPart({{ part.pk }}, {
+ follow: true
+ });
+});
+
$('#edit-part').click(function () {
editSupplierPart({{ part.pk }}, {
diff --git a/InvenTree/company/urls.py b/InvenTree/company/urls.py
index 1b91cae5be..34aa85a366 100644
--- a/InvenTree/company/urls.py
+++ b/InvenTree/company/urls.py
@@ -25,5 +25,10 @@ manufacturer_part_urls = [
]
supplier_part_urls = [
- re_path(r'^(?P\d+)/', views.SupplierPartDetail.as_view(template_name='company/supplier_part.html'), name='supplier-part-detail'),
+ re_path(r'^(?P\d+)/', include([
+ re_path('^qr_code/?', views.SupplierPartQRCode.as_view(), name='supplier-part-qr'),
+ re_path('^.*$', views.SupplierPartDetail.as_view(template_name='company/supplier_part.html'), name='supplier-part-detail'),
+ ]))
+
+
]
diff --git a/InvenTree/company/views.py b/InvenTree/company/views.py
index 147e5e407d..96411bb493 100644
--- a/InvenTree/company/views.py
+++ b/InvenTree/company/views.py
@@ -4,7 +4,7 @@ from django.urls import reverse
from django.utils.translation import gettext_lazy as _
from django.views.generic import DetailView, ListView
-from InvenTree.views import InvenTreeRoleMixin
+from InvenTree.views import InvenTreeRoleMixin, QRCodeView
from plugin.views import InvenTreePluginViewMixin
from .models import Company, ManufacturerPart, SupplierPart
@@ -112,3 +112,18 @@ class SupplierPartDetail(InvenTreePluginViewMixin, DetailView):
context_object_name = 'part'
queryset = SupplierPart.objects.all()
permission_required = 'purchase_order.view'
+
+
+class SupplierPartQRCode(QRCodeView):
+ """View for displaying a QR code for a StockItem object."""
+
+ ajax_form_title = _("Stock Item QR Code")
+ role_required = 'stock.view'
+
+ def get_qr_data(self):
+ """Generate QR code data for the StockItem."""
+ try:
+ part = SupplierPart.objects.get(id=self.pk)
+ return part.format_barcode()
+ except SupplierPart.DoesNotExist:
+ return None
diff --git a/InvenTree/label/models.py b/InvenTree/label/models.py
index 13b5ac331e..ee9ad7f3cb 100644
--- a/InvenTree/label/models.py
+++ b/InvenTree/label/models.py
@@ -249,7 +249,8 @@ class StockItemLabel(LabelTemplate):
'revision': stock_item.part.revision,
'quantity': normalize(stock_item.quantity),
'serial': stock_item.serial,
- 'uid': stock_item.uid,
+ 'barcode_data': stock_item.barcode_data,
+ 'barcode_hash': stock_item.barcode_hash,
'qr_data': stock_item.format_barcode(brief=True),
'qr_url': stock_item.format_barcode(url=True, request=request),
'tests': stock_item.testResultMap(),
diff --git a/InvenTree/locale/cs/LC_MESSAGES/django.po b/InvenTree/locale/cs/LC_MESSAGES/django.po
index 20b7ede8a6..cf0210c506 100644
--- a/InvenTree/locale/cs/LC_MESSAGES/django.po
+++ b/InvenTree/locale/cs/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-08-25 10:08+0000\n"
-"PO-Revision-Date: 2022-08-26 01:55\n"
+"POT-Creation-Date: 2022-09-09 02:44+0000\n"
+"PO-Revision-Date: 2022-09-09 03:57\n"
"Last-Translator: \n"
"Language-Team: Czech\n"
"Language: cs_CZ\n"
@@ -29,9 +29,9 @@ msgstr "Podrobnosti o chybě lze nalézt v panelu administrace"
msgid "Enter date"
msgstr "Zadejte datum"
-#: InvenTree/fields.py:186 build/serializers.py:384
-#: build/templates/build/sidebar.html:21 company/models.py:523
-#: company/templates/company/sidebar.html:25 order/models.py:906
+#: InvenTree/fields.py:183 build/serializers.py:384
+#: build/templates/build/sidebar.html:21 company/models.py:524
+#: company/templates/company/sidebar.html:25 order/models.py:910
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17
#: part/templates/part/part_sidebar.html:59
@@ -40,11 +40,12 @@ msgstr "Zadejte datum"
#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823
#: stock/serializers.py:922 stock/serializers.py:1054
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099
-#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210
-#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859
-#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208
-#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1107
+#: templates/js/translated/company.js:1022
+#: templates/js/translated/order.js:2404 templates/js/translated/order.js:2555
+#: templates/js/translated/order.js:3053 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:4402 templates/js/translated/stock.js:1374
+#: templates/js/translated/stock.js:1976
msgid "Notes"
msgstr ""
@@ -210,12 +211,12 @@ msgid "Select file to attach"
msgstr "Vyberte soubor k přiložení"
#: InvenTree/models.py:402 company/models.py:124 company/models.py:276
-#: company/models.py:510 order/models.py:84 order/models.py:1245
+#: company/models.py:511 order/models.py:84 order/models.py:1249
#: part/models.py:802 part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
-#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848
-#: templates/js/translated/part.js:1534
+#: templates/js/translated/company.js:691
+#: templates/js/translated/company.js:1011
+#: templates/js/translated/order.js:3042 templates/js/translated/part.js:1563
msgid "Link"
msgstr "Odkaz"
@@ -233,12 +234,12 @@ msgstr "Komentář"
msgid "File comment"
msgstr "Komentář k souboru"
-#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665
-#: common/models.py:1666 common/models.py:1889 common/models.py:1890
-#: common/models.py:2152 common/models.py:2153 part/models.py:2239
-#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257
+#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1669
+#: common/models.py:1670 common/models.py:1893 common/models.py:1894
+#: common/models.py:2156 common/models.py:2157 part/models.py:2247
+#: part/models.py:2267 plugin/models.py:260 plugin/models.py:261
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2641
+#: templates/js/translated/stock.js:2637
msgid "User"
msgstr "Uživatel"
@@ -275,28 +276,28 @@ msgstr "Chyba při přejmenování souboru"
msgid "Invalid choice"
msgstr "Neplatný výběr"
-#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875
+#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1879
#: company/models.py:358 label/models.py:101 part/models.py:746
-#: part/models.py:2417 plugin/models.py:94 report/models.py:152
+#: part/models.py:2425 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin.html:134
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:347
-#: templates/js/translated/company.js:545
-#: templates/js/translated/company.js:758
+#: templates/js/translated/company.js:580
+#: templates/js/translated/company.js:793
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:688 templates/js/translated/part.js:840
-#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392
+#: templates/js/translated/part.js:686 templates/js/translated/part.js:838
+#: templates/js/translated/part.js:1955 templates/js/translated/stock.js:2388
msgid "Name"
msgstr "Název"
#: InvenTree/models.py:544 build/models.py:174
#: build/templates/build/detail.html:24 company/models.py:282
-#: company/models.py:516 company/templates/company/company_base.html:71
+#: company/models.py:517 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:87 label/models.py:108
-#: order/models.py:82 part/models.py:769 part/models.py:2429
+#: company/templates/company/supplier_part.html:92 label/models.py:108
+#: order/models.py:82 part/models.py:769 part/models.py:2437
#: part/templates/part/category.html:80 part/templates/part/part_base.html:167
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
@@ -305,14 +306,14 @@ msgstr "Název"
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/InvenTree/settings/settings.html:358
#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846
-#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409
-#: templates/js/translated/company.js:667
-#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637
-#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167
-#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962
-#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743
-#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478
+#: templates/js/translated/build.js:2512 templates/js/translated/company.js:444
+#: templates/js/translated/company.js:702
+#: templates/js/translated/company.js:986 templates/js/translated/order.js:1988
+#: templates/js/translated/order.js:2220 templates/js/translated/order.js:2831
+#: templates/js/translated/part.js:745 templates/js/translated/part.js:1187
+#: templates/js/translated/part.js:1463 templates/js/translated/part.js:1991
+#: templates/js/translated/part.js:2060 templates/js/translated/stock.js:1743
+#: templates/js/translated/stock.js:2420 templates/js/translated/stock.js:2474
msgid "Description"
msgstr "Popis"
@@ -325,7 +326,7 @@ msgid "parent"
msgstr "nadřazený"
#: InvenTree/models.py:560 InvenTree/models.py:561
-#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:2426
msgid "Path"
msgstr "Cesta"
@@ -337,7 +338,7 @@ msgstr "Chyba serveru"
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2745
+#: InvenTree/serializers.py:55 part/models.py:2753
msgid "Must be a valid number"
msgstr "Musí být platné číslo"
@@ -522,7 +523,7 @@ msgid "Placed"
msgstr "Umístěno"
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr "Hotovo"
@@ -542,8 +543,8 @@ msgstr "Ztraceno"
msgid "Returned"
msgstr "Vráceno"
-#: InvenTree/status_codes.py:141 order/models.py:1128
-#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785
+#: InvenTree/status_codes.py:141 order/models.py:1132
+#: templates/js/translated/order.js:3630 templates/js/translated/order.js:3979
msgid "Shipped"
msgstr "Odesláno"
@@ -627,7 +628,7 @@ msgstr "Rozdělit od nadřazené položky"
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080
msgid "Merged stock items"
msgstr ""
@@ -717,7 +718,7 @@ msgstr "Informace o systému"
msgid "About InvenTree"
msgstr ""
-#: build/api.py:217
+#: build/api.py:219
msgid "Build must be cancelled before it can be deleted"
msgstr ""
@@ -748,15 +749,15 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:166 order/models.py:240 order/models.py:623
-#: order/models.py:904 part/models.py:2663
+#: build/models.py:166 order/models.py:240 order/models.py:627
+#: order/models.py:908 part/models.py:2671
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853
-#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089
-#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629
-#: templates/js/translated/order.js:4137
+#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2251
+#: templates/js/translated/order.js:2484 templates/js/translated/order.js:3823
+#: templates/js/translated/order.js:4331
msgid "Reference"
msgstr ""
@@ -774,12 +775,12 @@ msgid "BuildOrder to which this build is allocated"
msgstr ""
#: build/models.py:191 build/templates/build/build_base.html:80
-#: build/templates/build/detail.html:29 company/models.py:670
-#: order/models.py:1001 order/models.py:1112 order/models.py:1113
-#: part/models.py:343 part/models.py:2185 part/models.py:2200
-#: part/models.py:2219 part/models.py:2237 part/models.py:2336
-#: part/models.py:2463 part/models.py:2553 part/models.py:2638
-#: part/models.py:2914 part/serializers.py:814
+#: build/templates/build/detail.html:29 company/models.py:679
+#: order/models.py:1005 order/models.py:1116 order/models.py:1117
+#: part/models.py:343 part/models.py:2193 part/models.py:2208
+#: part/models.py:2227 part/models.py:2245 part/models.py:2344
+#: part/models.py:2471 part/models.py:2561 part/models.py:2646
+#: part/models.py:2922 part/serializers.py:814
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -795,18 +796,18 @@ msgstr ""
#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800
#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682
#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517
-#: templates/js/translated/company.js:266
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:608
-#: templates/js/translated/company.js:868 templates/js/translated/order.js:105
-#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493
-#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613
-#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224
-#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586
+#: templates/js/translated/company.js:301
+#: templates/js/translated/company.js:531
+#: templates/js/translated/company.js:643
+#: templates/js/translated/company.js:904 templates/js/translated/order.js:106
+#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1638
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:3185
+#: templates/js/translated/order.js:3581 templates/js/translated/order.js:3807
+#: templates/js/translated/part.js:1172 templates/js/translated/part.js:1244
+#: templates/js/translated/part.js:1441 templates/js/translated/stock.js:586
#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504
-#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833
+#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2500
+#: templates/js/translated/stock.js:2695 templates/js/translated/stock.js:2829
msgid "Part"
msgstr ""
@@ -823,7 +824,7 @@ msgid "SalesOrder to which this build is allocated"
msgstr ""
#: build/models.py:213 build/serializers.py:800
-#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979
+#: templates/js/translated/build.js:2114 templates/js/translated/order.js:3173
msgid "Source Location"
msgstr ""
@@ -863,8 +864,8 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:251 build/serializers.py:225 order/serializers.py:447
-#: stock/models.py:662 templates/js/translated/order.js:1353
+#: build/models.py:251 build/serializers.py:225 order/serializers.py:464
+#: stock/models.py:662 templates/js/translated/order.js:1496
msgid "Batch Code"
msgstr ""
@@ -873,11 +874,11 @@ msgid "Batch code for this build output"
msgstr ""
#: build/models.py:258 order/models.py:86 part/models.py:938
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2844
msgid "Creation Date"
msgstr ""
-#: build/models.py:262 order/models.py:648
+#: build/models.py:262 order/models.py:652
msgid "Target completion date"
msgstr ""
@@ -904,10 +905,10 @@ msgstr ""
#: build/models.py:289 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:100
-#: order/templates/order/order_base.html:179
+#: order/templates/order/order_base.html:185
#: order/templates/order/sales_order_base.html:183 part/models.py:942
#: report/templates/report/inventree_build_order_base.html:158
-#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860
+#: templates/js/translated/build.js:2574 templates/js/translated/order.js:2022
msgid "Responsible"
msgstr ""
@@ -917,9 +918,9 @@ msgstr ""
#: build/models.py:295 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
-#: company/templates/company/supplier_part.html:153
+#: company/templates/company/supplier_part.html:165
#: part/templates/part/part_base.html:346 stock/models.py:656
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr ""
@@ -957,11 +958,11 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1188 order/models.py:1379
+#: build/models.py:1188 order/models.py:1383
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1194 order/models.py:1382
+#: build/models.py:1194 order/models.py:1386
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -973,7 +974,7 @@ msgstr ""
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1326 stock/templates/stock/item_base.html:172
+#: build/models.py:1326 stock/templates/stock/item_base.html:175
#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496
#: templates/navbar.html:38
msgid "Build"
@@ -983,18 +984,18 @@ msgstr ""
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015
-#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754
+#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1035
+#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754
#: stock/serializers.py:880 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:197
#: templates/js/translated/build.js:774 templates/js/translated/build.js:779
#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679
-#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992
-#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299
-#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486
+#: templates/js/translated/order.js:107 templates/js/translated/order.js:3186
+#: templates/js/translated/order.js:3488 templates/js/translated/order.js:3493
+#: templates/js/translated/order.js:3588 templates/js/translated/order.js:3680
#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752
-#: templates/js/translated/stock.js:2577
+#: templates/js/translated/stock.js:2573
msgid "Stock Item"
msgstr ""
@@ -1004,11 +1005,11 @@ msgstr ""
#: build/models.py:1356 build/serializers.py:193
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1697
-#: company/templates/company/supplier_part.html:279 order/models.py:897
-#: order/models.py:1423 order/serializers.py:1155
+#: build/templates/build/detail.html:34 common/models.py:1701
+#: company/templates/company/supplier_part.html:291 order/models.py:901
+#: order/models.py:1427 order/serializers.py:1209
#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40
-#: part/models.py:2654 part/templates/part/detail.html:951
+#: part/models.py:2662 part/templates/part/detail.html:951
#: part/templates/part/detail.html:1037
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -1017,8 +1018,8 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:291 stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
+#: stock/serializers.py:291 stock/templates/stock/item_base.html:290
+#: stock/templates/stock/item_base.html:298
#: templates/email/build_order_completed.html:18
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691
#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458
@@ -1026,16 +1027,16 @@ msgstr ""
#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708
#: templates/js/translated/build.js:2129
#: templates/js/translated/model_renderers.js:120
-#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043
-#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313
-#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492
-#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143
-#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176
-#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686
-#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458
+#: templates/js/translated/order.js:123 templates/js/translated/order.js:1137
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:2490
+#: templates/js/translated/order.js:3187 templates/js/translated/order.js:3507
+#: templates/js/translated/order.js:3594 templates/js/translated/order.js:3686
+#: templates/js/translated/order.js:3829 templates/js/translated/order.js:4337
+#: templates/js/translated/part.js:1036 templates/js/translated/part.js:2205
+#: templates/js/translated/part.js:2674 templates/js/translated/part.js:2715
+#: templates/js/translated/part.js:2793 templates/js/translated/stock.js:458
#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782
-#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2707
msgid "Quantity"
msgstr ""
@@ -1077,7 +1078,7 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:208 build/serializers.py:665 order/models.py:318
-#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545
+#: order/serializers.py:304 order/serializers.py:459 part/serializers.py:545
#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251
#: stock/serializers.py:300
msgid "Quantity must be greater than zero"
@@ -1091,8 +1092,8 @@ msgstr ""
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159
-#: stock/serializers.py:309 templates/js/translated/order.js:1364
+#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213
+#: stock/serializers.py:309 templates/js/translated/order.js:1507
#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459
msgid "Serial Numbers"
msgstr ""
@@ -1117,18 +1118,18 @@ msgstr ""
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532
+#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552
#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532
#: stock/serializers.py:915 stock/serializers.py:1148
-#: stock/templates/stock/item_base.html:385
+#: stock/templates/stock/item_base.html:388
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786
-#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391
-#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411
-#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500
+#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1534
+#: templates/js/translated/order.js:3500 templates/js/translated/order.js:3605
+#: templates/js/translated/order.js:3613 templates/js/translated/order.js:3694
#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588
#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960
-#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2514
msgid "Location"
msgstr ""
@@ -1137,12 +1138,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:373 build/templates/build/build_base.html:145
-#: build/templates/build/detail.html:62 order/models.py:642
-#: order/serializers.py:465 stock/templates/stock/item_base.html:418
+#: build/templates/build/detail.html:62 order/models.py:646
+#: order/serializers.py:482 stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546
-#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830
-#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829
-#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727
+#: templates/js/translated/order.js:1643 templates/js/translated/order.js:1992
+#: templates/js/translated/order.js:2836 templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:2591 templates/js/translated/stock.js:2723
msgid "Status"
msgstr ""
@@ -1202,7 +1203,7 @@ msgstr ""
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:527
+#: build/serializers.py:527 order/serializers.py:208 order/serializers.py:1103
msgid "Accept Incomplete"
msgstr ""
@@ -1218,8 +1219,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772
-#: part/models.py:2906
+#: build/serializers.py:577 build/serializers.py:622 part/models.py:2780
+#: part/models.py:2914
msgid "BOM Item"
msgstr ""
@@ -1239,7 +1240,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:709 order/serializers.py:1073
+#: build/serializers.py:709 order/serializers.py:1093
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1256,7 +1257,7 @@ msgstr ""
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:750 order/serializers.py:1319
+#: build/serializers.py:750 order/serializers.py:1373
msgid "Allocation items must be provided"
msgstr ""
@@ -1371,13 +1372,13 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:154
-#: build/templates/build/detail.html:131 order/models.py:910
-#: order/templates/order/order_base.html:165
+#: build/templates/build/detail.html:131 order/models.py:914
+#: order/templates/order/order_base.html:171
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:125
-#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847
-#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658
-#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042
+#: templates/js/translated/build.js:2586 templates/js/translated/order.js:2009
+#: templates/js/translated/order.js:2351 templates/js/translated/order.js:2852
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1051
msgid "Target Date"
msgstr ""
@@ -1388,7 +1389,7 @@ msgstr ""
#: build/templates/build/build_base.html:159
#: build/templates/build/build_base.html:204
-#: order/templates/order/order_base.html:101
+#: order/templates/order/order_base.html:107
#: order/templates/order/sales_order_base.html:94
#: templates/js/translated/table_filters.js:320
#: templates/js/translated/table_filters.js:361
@@ -1404,15 +1405,15 @@ msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:179
-#: build/templates/build/detail.html:94 order/models.py:1105
-#: order/models.py:1199 order/models.py:1330
+#: build/templates/build/detail.html:94 order/models.py:1109
+#: order/models.py:1203 order/models.py:1334
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:365
+#: stock/templates/stock/item_base.html:368
#: templates/email/overdue_sales_order.html:15
-#: templates/js/translated/order.js:2604
+#: templates/js/translated/order.js:2798
msgid "Sales Order"
msgstr ""
@@ -1438,8 +1439,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1023
-#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199
+#: build/templates/build/detail.html:49 order/models.py:1027
+#: templates/js/translated/order.js:1644 templates/js/translated/order.js:2393
msgid "Destination"
msgstr ""
@@ -1452,18 +1453,18 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:165
+#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1215
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843
-#: templates/js/translated/stock.js:2734
+#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1839
+#: templates/js/translated/stock.js:2730
#: templates/js/translated/table_filters.js:159
#: templates/js/translated/table_filters.js:250
msgid "Batch"
msgstr ""
#: build/templates/build/detail.html:126
-#: order/templates/order/order_base.html:152
+#: order/templates/order/order_base.html:158
#: order/templates/order/sales_order_base.html:158
#: templates/js/translated/build.js:2554
msgid "Created"
@@ -1516,7 +1517,7 @@ msgstr ""
#: build/templates/build/detail.html:187
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:85
-#: part/templates/part/category.html:183 templates/js/translated/order.js:1083
+#: part/templates/part/category.html:183 templates/js/translated/order.js:1177
msgid "Order Parts"
msgstr ""
@@ -1851,7 +1852,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:951 part/models.py:2465 report/models.py:158
+#: common/models.py:951 part/models.py:2473 report/models.py:158
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:484
msgid "Template"
@@ -1861,7 +1862,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446
+#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1454
#: templates/js/translated/table_filters.js:176
#: templates/js/translated/table_filters.js:447
msgid "Assembly"
@@ -2275,349 +2276,349 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1342 common/models.py:1658
+#: common/models.py:1344 common/models.py:1662
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1364
+#: common/models.py:1366
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1365
+#: common/models.py:1367
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1371
+#: common/models.py:1373
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1372
+#: common/models.py:1374
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1378
+#: common/models.py:1380
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1379
+#: common/models.py:1381
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1385
+#: common/models.py:1387
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1386
+#: common/models.py:1388
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1392
+#: common/models.py:1394
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1393
+#: common/models.py:1395
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1399
+#: common/models.py:1401
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1400
+#: common/models.py:1402
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1406
+#: common/models.py:1408
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1407
+#: common/models.py:1409
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1413
+#: common/models.py:1415
msgid "Show low stock"
msgstr ""
-#: common/models.py:1414
+#: common/models.py:1416
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1420
+#: common/models.py:1422
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1421
+#: common/models.py:1423
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1427
+#: common/models.py:1429
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1430
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1434
+#: common/models.py:1436
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1435
+#: common/models.py:1437
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1441
+#: common/models.py:1443
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1442
+#: common/models.py:1444
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1448
+#: common/models.py:1450
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1449
+#: common/models.py:1451
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1455
+#: common/models.py:1457
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1456
+#: common/models.py:1458
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1462
+#: common/models.py:1464
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1463
+#: common/models.py:1465
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1469
+#: common/models.py:1471
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1470
+#: common/models.py:1472
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1476
+#: common/models.py:1478
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1477
+#: common/models.py:1479
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1483
+#: common/models.py:1485
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1484
+#: common/models.py:1486
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1490
+#: common/models.py:1492
msgid "Inline label display"
msgstr ""
-#: common/models.py:1491
+#: common/models.py:1493
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1499
msgid "Inline report display"
msgstr ""
-#: common/models.py:1498
+#: common/models.py:1500
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1506
msgid "Search Parts"
msgstr ""
-#: common/models.py:1505
+#: common/models.py:1507
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1513
msgid "Seach Supplier Parts"
msgstr ""
-#: common/models.py:1512
+#: common/models.py:1514
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1520
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:1519
+#: common/models.py:1521
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:1525
+#: common/models.py:1527
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1526
+#: common/models.py:1528
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1532
+#: common/models.py:1534
msgid "Search Categories"
msgstr ""
-#: common/models.py:1533
+#: common/models.py:1535
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1539
+#: common/models.py:1541
msgid "Search Stock"
msgstr ""
-#: common/models.py:1540
+#: common/models.py:1542
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1546
+#: common/models.py:1548
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1547
+#: common/models.py:1549
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1553
+#: common/models.py:1555
msgid "Search Locations"
msgstr ""
-#: common/models.py:1554
+#: common/models.py:1556
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1560
+#: common/models.py:1562
msgid "Search Companies"
msgstr ""
-#: common/models.py:1561
+#: common/models.py:1563
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1567
+#: common/models.py:1569
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1568
+#: common/models.py:1570
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1574
+#: common/models.py:1576
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1575
+#: common/models.py:1577
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1581
+#: common/models.py:1583
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1582
+#: common/models.py:1584
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1588
+#: common/models.py:1590
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1591
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1595
+#: common/models.py:1597
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1598
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1602
+#: common/models.py:1604
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1605
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1609
+#: common/models.py:1611
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1610
+#: common/models.py:1612
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1616
+#: common/models.py:1618
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1617
+#: common/models.py:1619
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1623
+#: common/models.py:1625
msgid "Date Format"
msgstr ""
-#: common/models.py:1624
+#: common/models.py:1626
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1638 part/templates/part/detail.html:41
+#: common/models.py:1640 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1641
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1698
+#: common/models.py:1702
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1705 company/serializers.py:366
-#: company/templates/company/supplier_part.html:284 order/models.py:938
-#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181
+#: common/models.py:1709 company/serializers.py:372
+#: company/templates/company/supplier_part.html:296 order/models.py:942
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:2210
msgid "Price"
msgstr ""
-#: common/models.py:1706
+#: common/models.py:1710
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1866 common/models.py:2044
+#: common/models.py:1870 common/models.py:2048
msgid "Endpoint"
msgstr ""
-#: common/models.py:1867
+#: common/models.py:1871
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1876
+#: common/models.py:1880
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1881 part/models.py:921 plugin/models.py:100
+#: common/models.py:1885 part/models.py:921 plugin/models.py:100
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:104
#: templates/js/translated/table_filters.js:316
@@ -2625,67 +2626,67 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1886
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1896
+#: common/models.py:1900
msgid "Token"
msgstr ""
-#: common/models.py:1897
+#: common/models.py:1901
msgid "Token for access"
msgstr ""
-#: common/models.py:1904
+#: common/models.py:1908
msgid "Secret"
msgstr ""
-#: common/models.py:1905
+#: common/models.py:1909
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2011
+#: common/models.py:2015
msgid "Message ID"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2016
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2020
+#: common/models.py:2024
msgid "Host"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2025
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2032
msgid "Header"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2033
msgid "Header of this message"
msgstr ""
-#: common/models.py:2035
+#: common/models.py:2039
msgid "Body"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2040
msgid "Body of this message"
msgstr ""
-#: common/models.py:2045
+#: common/models.py:2049
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2054
msgid "Worked on"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2055
msgid "Was the work on this message finished?"
msgstr ""
@@ -2747,7 +2748,7 @@ msgstr ""
#: company/models.py:105 company/templates/company/company_base.html:100
#: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:413
+#: templates/js/translated/company.js:448
msgid "Website"
msgstr ""
@@ -2824,7 +2825,7 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:148 company/serializers.py:372
+#: company/models.py:148 company/serializers.py:378
#: company/templates/company/company_base.html:106 part/serializers.py:153
#: part/serializers.py:184 stock/serializers.py:178
msgid "Currency"
@@ -2834,24 +2835,24 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:248 company/models.py:481 stock/models.py:598
+#: company/models.py:248 company/models.py:482 stock/models.py:598
#: stock/serializers.py:85 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:542
msgid "Base Part"
msgstr ""
-#: company/models.py:252 company/models.py:485
+#: company/models.py:252 company/models.py:486
msgid "Select part"
msgstr ""
#: company/models.py:263 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:124
-#: stock/templates/stock/item_base.html:207
-#: templates/js/translated/company.js:397
-#: templates/js/translated/company.js:498
-#: templates/js/translated/company.js:633
-#: templates/js/translated/company.js:919 templates/js/translated/part.js:236
+#: company/templates/company/supplier_part.html:129
+#: stock/templates/stock/item_base.html:210
+#: templates/js/translated/company.js:432
+#: templates/js/translated/company.js:533
+#: templates/js/translated/company.js:668
+#: templates/js/translated/company.js:956 templates/js/translated/part.js:236
#: templates/js/translated/table_filters.js:419
msgid "Manufacturer"
msgstr ""
@@ -2861,12 +2862,12 @@ msgid "Select manufacturer"
msgstr ""
#: company/models.py:270 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:132
-#: templates/js/translated/company.js:269
-#: templates/js/translated/company.js:497
-#: templates/js/translated/company.js:649
-#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077
-#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027
+#: company/templates/company/supplier_part.html:137
+#: templates/js/translated/company.js:304
+#: templates/js/translated/company.js:532
+#: templates/js/translated/company.js:684
+#: templates/js/translated/company.js:975 templates/js/translated/order.js:2239
+#: templates/js/translated/part.js:247 templates/js/translated/part.js:1025
msgid "MPN"
msgstr ""
@@ -2882,10 +2883,10 @@ msgstr ""
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:328 company/models.py:352 company/models.py:504
+#: company/models.py:328 company/models.py:352 company/models.py:505
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:220
msgid "Manufacturer Part"
msgstr ""
@@ -2895,8 +2896,8 @@ msgstr ""
#: company/models.py:365
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2095 templates/js/translated/company.js:546
-#: templates/js/translated/company.js:764 templates/js/translated/part.js:849
+#: stock/models.py:2095 templates/js/translated/company.js:581
+#: templates/js/translated/company.js:799 templates/js/translated/part.js:847
#: templates/js/translated/stock.js:1360
msgid "Value"
msgstr ""
@@ -2905,10 +2906,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:372 part/models.py:888 part/models.py:2425
+#: company/models.py:372 part/models.py:888 part/models.py:2433
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:352
-#: templates/js/translated/company.js:770 templates/js/translated/part.js:855
+#: templates/js/translated/company.js:805 templates/js/translated/part.js:853
msgid "Units"
msgstr ""
@@ -2916,106 +2917,119 @@ msgstr ""
msgid "Parameter units"
msgstr ""
-#: company/models.py:449
+#: company/models.py:450
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:491 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:108 order/models.py:258
-#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:224
+#: company/models.py:492 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:113 order/models.py:258
+#: order/templates/order/order_base.html:121 part/bom.py:237 part/bom.py:265
+#: stock/templates/stock/item_base.html:227
#: templates/email/overdue_purchase_order.html:16
-#: templates/js/translated/company.js:268
-#: templates/js/translated/company.js:401
-#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813
-#: templates/js/translated/part.js:217 templates/js/translated/part.js:995
+#: templates/js/translated/company.js:303
+#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:929 templates/js/translated/order.js:1975
+#: templates/js/translated/part.js:217 templates/js/translated/part.js:993
#: templates/js/translated/table_filters.js:423
msgid "Supplier"
msgstr ""
-#: company/models.py:492 templates/js/translated/part.js:218
+#: company/models.py:493 templates/js/translated/part.js:218
msgid "Select supplier"
msgstr ""
-#: company/models.py:497 company/templates/company/supplier_part.html:118
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267
-#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228
-#: templates/js/translated/part.js:1013
+#: company/models.py:498 company/templates/company/supplier_part.html:123
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:302
+#: templates/js/translated/order.js:2226 templates/js/translated/part.js:228
+#: templates/js/translated/part.js:1011
msgid "SKU"
msgstr ""
-#: company/models.py:498 templates/js/translated/part.js:229
+#: company/models.py:499 templates/js/translated/part.js:229
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:505
+#: company/models.py:506
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:511
+#: company/models.py:512
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:517
+#: company/models.py:518
msgid "Supplier part description"
msgstr ""
-#: company/models.py:522 company/templates/company/supplier_part.html:146
-#: part/models.py:2666 part/templates/part/upload_bom.html:59
+#: company/models.py:523 company/templates/company/supplier_part.html:158
+#: part/models.py:2674 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399
msgid "Note"
msgstr ""
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "base cost"
msgstr ""
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:528 company/templates/company/supplier_part.html:139
-#: stock/models.py:624 stock/templates/stock/item_base.html:240
-#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976
+#: company/models.py:529 company/templates/company/supplier_part.html:144
+#: stock/models.py:624 stock/templates/stock/item_base.html:243
+#: templates/js/translated/company.js:991 templates/js/translated/stock.js:1972
msgid "Packaging"
msgstr ""
-#: company/models.py:528
+#: company/models.py:529
msgid "Part packaging"
msgstr ""
-#: company/models.py:530 part/models.py:1783
+#: company/models.py:532 company/serializers.py:242
+#: company/templates/company/supplier_part.html:151
+#: templates/js/translated/company.js:996 templates/js/translated/order.js:820
+#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:2270 templates/js/translated/order.js:2287
+#: templates/js/translated/part.js:1043 templates/js/translated/part.js:1095
+msgid "Pack Quantity"
+msgstr ""
+
+#: company/models.py:533
+msgid "Unit quantity supplied in a single pack"
+msgstr ""
+
+#: company/models.py:539 part/models.py:1783
msgid "multiple"
msgstr ""
-#: company/models.py:530
+#: company/models.py:539
msgid "Order multiple"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part.html:94
+#: company/models.py:547 company/templates/company/supplier_part.html:99
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823
-#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979
-#: templates/js/translated/part.js:600 templates/js/translated/part.js:603
+#: templates/js/translated/bom.js:915 templates/js/translated/build.js:1823
+#: templates/js/translated/build.js:2686 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:601
#: templates/js/translated/table_filters.js:186
msgid "Available"
msgstr ""
-#: company/models.py:539
+#: company/models.py:548
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:543
+#: company/models.py:552
msgid "Availability Updated"
msgstr ""
-#: company/models.py:544
+#: company/models.py:553
msgid "Date of last update of availability data"
msgstr ""
-#: company/models.py:672
+#: company/models.py:681
msgid "last updated"
msgstr ""
@@ -3029,12 +3043,12 @@ msgstr ""
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386
+#: templates/InvenTree/search.html:179 templates/js/translated/company.js:421
msgid "Company"
msgstr ""
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:624
+#: templates/js/translated/order.js:689
msgid "Create Purchase Order"
msgstr ""
@@ -3047,7 +3061,7 @@ msgid "Edit company information"
msgstr ""
#: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:329
+#: templates/js/translated/company.js:364
msgid "Edit Company"
msgstr ""
@@ -3070,13 +3084,13 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:86 order/models.py:637
+#: company/templates/company/company_base.html:86 order/models.py:641
#: order/templates/order/sales_order_base.html:116 stock/models.py:643
#: stock/models.py:644 stock/serializers.py:809
-#: stock/templates/stock/item_base.html:396
+#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
-#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619
-#: templates/js/translated/stock.js:2559
+#: templates/js/translated/company.js:428 templates/js/translated/order.js:2813
+#: templates/js/translated/stock.js:2555
#: templates/js/translated/table_filters.js:427
msgid "Customer"
msgstr ""
@@ -3211,23 +3225,23 @@ msgid "Manufacturers"
msgstr ""
#: company/templates/company/manufacturer_part.html:35
-#: company/templates/company/supplier_part.html:186
+#: company/templates/company/supplier_part.html:198
#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80
msgid "Order part"
msgstr ""
#: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:681
+#: templates/js/translated/company.js:716
msgid "Edit manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:682
+#: templates/js/translated/company.js:717
msgid "Delete manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:65
-#: company/templates/company/supplier_part.html:77
+#: company/templates/company/supplier_part.html:82
msgid "Internal Part"
msgstr ""
@@ -3250,8 +3264,8 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:371 part/templates/part/detail.html:401
-#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34
-#: users/models.py:220
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:34
+#: users/models.py:222
msgid "Delete"
msgstr ""
@@ -3296,9 +3310,9 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:607
-#: stock/templates/stock/item_base.html:233
-#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041
-#: templates/js/translated/stock.js:1933
+#: stock/templates/stock/item_base.html:236
+#: templates/js/translated/company.js:945 templates/js/translated/order.js:1135
+#: templates/js/translated/stock.js:1929
msgid "Supplier Part"
msgstr ""
@@ -3308,7 +3322,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:40
#: company/templates/company/supplier_part.html:41
-#: company/templates/company/supplier_part.html:187
+#: company/templates/company/supplier_part.html:199
#: part/templates/part/detail.html:88
msgid "Order Part"
msgstr ""
@@ -3320,81 +3334,87 @@ msgstr ""
#: company/templates/company/supplier_part.html:48
#: company/templates/company/supplier_part.html:49
-#: templates/js/translated/company.js:212
+#: templates/js/translated/company.js:247
msgid "Edit Supplier Part"
msgstr ""
#: company/templates/company/supplier_part.html:53
+#: company/templates/company/supplier_part.html:54
+#: templates/js/translated/company.js:222
+msgid "Duplicate Supplier Part"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:58
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:54
+#: company/templates/company/supplier_part.html:59
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:112
+#: company/templates/company/supplier_part.html:117
msgid "No supplier information available"
msgstr ""
-#: company/templates/company/supplier_part.html:165
+#: company/templates/company/supplier_part.html:177
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr ""
-#: company/templates/company/supplier_part.html:168
+#: company/templates/company/supplier_part.html:180
#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181
msgid "Create new stock item"
msgstr ""
-#: company/templates/company/supplier_part.html:169
+#: company/templates/company/supplier_part.html:181
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182
#: templates/js/translated/stock.js:435
msgid "New Stock Item"
msgstr ""
-#: company/templates/company/supplier_part.html:182
+#: company/templates/company/supplier_part.html:194
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr ""
-#: company/templates/company/supplier_part.html:207
+#: company/templates/company/supplier_part.html:219
#: part/templates/part/prices.html:10
msgid "Pricing Information"
msgstr ""
-#: company/templates/company/supplier_part.html:212
-#: company/templates/company/supplier_part.html:326
-#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253
+#: company/templates/company/supplier_part.html:224
+#: company/templates/company/supplier_part.html:338
+#: part/templates/part/prices.html:276 templates/js/translated/part.js:2282
msgid "Add Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:250
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:252
-#: templates/js/translated/part.js:2263
+#: company/templates/company/supplier_part.html:264
+#: templates/js/translated/part.js:2292
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:266
-#: templates/js/translated/part.js:2277
+#: company/templates/company/supplier_part.html:278
+#: templates/js/translated/part.js:2306
msgid "Edit Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:291
+#: company/templates/company/supplier_part.html:303
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part.html:292
+#: company/templates/company/supplier_part.html:304
msgid "Delete price break"
msgstr ""
-#: company/templates/company/supplier_part.html:301
+#: company/templates/company/supplier_part.html:313
msgid "Last updated"
msgstr ""
-#: company/templates/company/supplier_part.html:382
+#: company/templates/company/supplier_part.html:394
msgid "Update Part Availability"
msgstr ""
@@ -3404,8 +3424,8 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313
-#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959
+#: templates/js/translated/part.js:749 templates/js/translated/part.js:1334
+#: templates/js/translated/part.js:1495 templates/js/translated/stock.js:959
#: templates/js/translated/stock.js:1754 templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -3432,7 +3452,7 @@ msgstr ""
#: stock/templates/stock/location.html:178
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2436 users/models.py:40
+#: templates/js/translated/stock.js:2432 users/models.py:40
msgid "Stock Items"
msgstr ""
@@ -3534,7 +3554,7 @@ msgstr ""
msgid "Order description"
msgstr ""
-#: order/models.py:84 order/models.py:1246
+#: order/models.py:84 order/models.py:1250
msgid "Link to external page"
msgstr ""
@@ -3550,11 +3570,11 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:241 order/models.py:624
+#: order/models.py:241 order/models.py:628
msgid "Order reference"
msgstr ""
-#: order/models.py:249 order/models.py:642
+#: order/models.py:249 order/models.py:646
msgid "Purchase order status"
msgstr ""
@@ -3562,8 +3582,8 @@ msgstr ""
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:262 order/templates/order/order_base.html:127
-#: templates/js/translated/order.js:1822
+#: order/models.py:262 order/templates/order/order_base.html:133
+#: templates/js/translated/order.js:1984
msgid "Supplier Reference"
msgstr ""
@@ -3603,245 +3623,245 @@ msgstr ""
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:638
+#: order/models.py:642
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer Reference "
msgstr ""
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:649
+#: order/models.py:653
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:652 order/models.py:1204
-#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828
+#: order/models.py:656 order/models.py:1208
+#: templates/js/translated/order.js:2860 templates/js/translated/order.js:3022
msgid "Shipment Date"
msgstr ""
-#: order/models.py:659
+#: order/models.py:663
msgid "shipped by"
msgstr ""
-#: order/models.py:714
+#: order/models.py:718
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:718
+#: order/models.py:722
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:721
+#: order/models.py:725 templates/js/translated/order.js:419
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:724
+#: order/models.py:728
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:898
+#: order/models.py:902
msgid "Item quantity"
msgstr ""
-#: order/models.py:904
+#: order/models.py:908
msgid "Line item reference"
msgstr ""
-#: order/models.py:906
+#: order/models.py:910
msgid "Line item notes"
msgstr ""
-#: order/models.py:911
+#: order/models.py:915
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:929
+#: order/models.py:933
msgid "Context"
msgstr ""
-#: order/models.py:930
+#: order/models.py:934
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:939
+#: order/models.py:943
msgid "Unit price"
msgstr ""
-#: order/models.py:969
+#: order/models.py:973
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:977
+#: order/models.py:981
msgid "deleted"
msgstr ""
-#: order/models.py:983 order/models.py:1063 order/models.py:1104
-#: order/models.py:1198 order/models.py:1330
-#: templates/js/translated/order.js:3284
+#: order/models.py:987 order/models.py:1067 order/models.py:1108
+#: order/models.py:1202 order/models.py:1334
+#: templates/js/translated/order.js:3478
msgid "Order"
msgstr ""
-#: order/models.py:984 order/models.py:1063
+#: order/models.py:988 order/models.py:1067
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:179
+#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
-#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042
-#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972
-#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540
+#: templates/js/translated/order.js:619 templates/js/translated/order.js:1136
+#: templates/js/translated/order.js:1959 templates/js/translated/part.js:970
+#: templates/js/translated/stock.js:1909 templates/js/translated/stock.js:2536
msgid "Purchase Order"
msgstr ""
-#: order/models.py:1002
+#: order/models.py:1006
msgid "Supplier part"
msgstr ""
-#: order/models.py:1009 order/templates/order/order_base.html:172
-#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105
+#: order/models.py:1013 order/templates/order/order_base.html:178
+#: templates/js/translated/order.js:1641 templates/js/translated/order.js:2373
+#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1125
#: templates/js/translated/table_filters.js:338
msgid "Received"
msgstr ""
-#: order/models.py:1010
+#: order/models.py:1014
msgid "Number of items received"
msgstr ""
-#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734
-#: stock/serializers.py:169 stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1964
+#: order/models.py:1021 part/templates/part/prices.html:181 stock/models.py:734
+#: stock/serializers.py:169 stock/templates/stock/item_base.html:189
+#: templates/js/translated/stock.js:1960
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1018
+#: order/models.py:1022
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1026
+#: order/models.py:1030
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1092
+#: order/models.py:1096
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1097
+#: order/models.py:1101
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1123 part/templates/part/part_pricing.html:115
+#: order/models.py:1127 part/templates/part/part_pricing.html:115
#: part/templates/part/prices.html:121 part/templates/part/prices.html:290
msgid "Sale Price"
msgstr ""
-#: order/models.py:1124
+#: order/models.py:1128
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1129
+#: order/models.py:1133
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1205
+#: order/models.py:1209
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1212
+#: order/models.py:1216
msgid "Checked By"
msgstr ""
-#: order/models.py:1213
+#: order/models.py:1217
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1220 order/models.py:1405 order/serializers.py:1170
-#: order/serializers.py:1294 templates/js/translated/model_renderers.js:314
+#: order/models.py:1224 order/models.py:1409 order/serializers.py:1224
+#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314
msgid "Shipment"
msgstr ""
-#: order/models.py:1221
+#: order/models.py:1225
msgid "Shipment number"
msgstr ""
-#: order/models.py:1225
+#: order/models.py:1229
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1231
+#: order/models.py:1235
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1232
+#: order/models.py:1236
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1239
+#: order/models.py:1243
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1240
+#: order/models.py:1244
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1258
+#: order/models.py:1262
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1261
+#: order/models.py:1265
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1364 order/models.py:1366
+#: order/models.py:1368 order/models.py:1370
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1370
+#: order/models.py:1374
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1372
+#: order/models.py:1376
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1375
+#: order/models.py:1379
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1385 order/serializers.py:1066
+#: order/models.py:1389 order/serializers.py:1086
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1388
+#: order/models.py:1392
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1389
+#: order/models.py:1393
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1397
+#: order/models.py:1401
msgid "Line"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1410
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1419 templates/js/translated/notification.js:55
+#: order/models.py:1423 templates/js/translated/notification.js:55
msgid "Item"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1424
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1423
+#: order/models.py:1427
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3853,111 +3873,119 @@ msgstr ""
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:294
+#: order/serializers.py:209 order/serializers.py:1104
+msgid "Allow order to be closed with incomplete line items"
+msgstr ""
+
+#: order/serializers.py:220 order/serializers.py:1115
+msgid "Order has incomplete line items"
+msgstr ""
+
+#: order/serializers.py:311
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:318
+#: order/serializers.py:335
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:354
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:342
+#: order/serializers.py:359
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:348
+#: order/serializers.py:365
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:349
+#: order/serializers.py:366
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:413 order/serializers.py:1138
+#: order/serializers.py:430 order/serializers.py:1192
msgid "Line Item"
msgstr ""
-#: order/serializers.py:419
+#: order/serializers.py:436
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:429 order/serializers.py:533
+#: order/serializers.py:446 order/serializers.py:553
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:448 templates/js/translated/order.js:1354
+#: order/serializers.py:465 templates/js/translated/order.js:1497
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:456 templates/js/translated/order.js:1365
+#: order/serializers.py:473 templates/js/translated/order.js:1508
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:469
+#: order/serializers.py:486
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:470
+#: order/serializers.py:487
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:484
+#: order/serializers.py:501
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:507
+#: order/serializers.py:527
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:549
+#: order/serializers.py:569
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:566
+#: order/serializers.py:586
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:577
+#: order/serializers.py:597
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:883
+#: order/serializers.py:903
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:964
+#: order/serializers.py:984
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1027 order/serializers.py:1147
+#: order/serializers.py:1047 order/serializers.py:1201
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1049
+#: order/serializers.py:1069
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1160
+#: order/serializers.py:1214
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1182 order/serializers.py:1302
+#: order/serializers.py:1236 order/serializers.py:1356
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1185 order/serializers.py:1305
+#: order/serializers.py:1239 order/serializers.py:1359
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1235
+#: order/serializers.py:1289
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1245
+#: order/serializers.py:1299
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3993,83 +4021,83 @@ msgstr ""
msgid "Order actions"
msgstr ""
-#: order/templates/order/order_base.html:45
+#: order/templates/order/order_base.html:46
#: order/templates/order/sales_order_base.html:58
msgid "Edit order"
msgstr ""
-#: order/templates/order/order_base.html:47
+#: order/templates/order/order_base.html:50
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr ""
-#: order/templates/order/order_base.html:50
+#: order/templates/order/order_base.html:55
msgid "Duplicate order"
msgstr ""
-#: order/templates/order/order_base.html:55
+#: order/templates/order/order_base.html:61
msgid "Place order"
msgstr ""
-#: order/templates/order/order_base.html:59
+#: order/templates/order/order_base.html:65
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:61
+#: order/templates/order/order_base.html:67
#: order/templates/order/purchase_order_detail.html:30
msgid "Receive Items"
msgstr ""
-#: order/templates/order/order_base.html:63
+#: order/templates/order/order_base.html:69
msgid "Mark order as complete"
msgstr ""
-#: order/templates/order/order_base.html:65
+#: order/templates/order/order_base.html:71
#: order/templates/order/sales_order_base.html:68
msgid "Complete Order"
msgstr ""
-#: order/templates/order/order_base.html:87
+#: order/templates/order/order_base.html:93
#: order/templates/order/sales_order_base.html:80
msgid "Order Reference"
msgstr ""
-#: order/templates/order/order_base.html:92
+#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:85
msgid "Order Description"
msgstr ""
-#: order/templates/order/order_base.html:97
+#: order/templates/order/order_base.html:103
#: order/templates/order/sales_order_base.html:90
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:120
+#: order/templates/order/order_base.html:126
msgid "No suppplier information available"
msgstr ""
-#: order/templates/order/order_base.html:133
+#: order/templates/order/order_base.html:139
#: order/templates/order/sales_order_base.html:129
msgid "Completed Line Items"
msgstr ""
-#: order/templates/order/order_base.html:139
+#: order/templates/order/order_base.html:145
#: order/templates/order/sales_order_base.html:135
#: order/templates/order/sales_order_base.html:145
msgid "Incomplete"
msgstr ""
-#: order/templates/order/order_base.html:158
+#: order/templates/order/order_base.html:164
#: report/templates/report/inventree_build_order_base.html:121
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:186
+#: order/templates/order/order_base.html:192
#: order/templates/order/sales_order_base.html:190
msgid "Total cost"
msgstr ""
-#: order/templates/order/order_base.html:190
+#: order/templates/order/order_base.html:196
#: order/templates/order/sales_order_base.html:194
msgid "Total cost could not be calculated"
msgstr ""
@@ -4102,8 +4130,8 @@ msgstr ""
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463
#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015
-#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443
-#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625
+#: templates/js/translated/order.js:1084 templates/js/translated/order.js:1586
+#: templates/js/translated/order.js:3097 templates/js/translated/stock.js:625
#: templates/js/translated/stock.js:793
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
@@ -4139,7 +4167,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:26
#: order/templates/order/sales_order_detail.html:22
#: order/templates/order/sales_order_detail.html:255
-#: templates/js/translated/order.js:663
+#: templates/js/translated/order.js:728
msgid "Add Line Item"
msgstr ""
@@ -4167,7 +4195,7 @@ msgstr ""
msgid "Order Notes"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:228
+#: order/templates/order/purchase_order_detail.html:232
msgid "Add Order Line"
msgstr ""
@@ -4185,12 +4213,12 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:231
+#: templates/js/translated/order.js:232
msgid "Complete Shipments"
msgstr ""
#: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:258
+#: templates/js/translated/order.js:397
msgid "Complete Sales Order"
msgstr ""
@@ -4199,7 +4227,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2632
+#: templates/js/translated/order.js:2826
msgid "Customer Reference"
msgstr ""
@@ -4223,7 +4251,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:72
-#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1116
#: templates/js/translated/build.js:1923
msgid "Actions"
msgstr ""
@@ -4308,14 +4336,14 @@ msgid "Total Stock"
msgstr ""
#: part/bom.py:129 part/templates/part/part_base.html:189
-#: templates/js/translated/order.js:3724
+#: templates/js/translated/order.js:3918
msgid "Available Stock"
msgstr ""
#: part/bom.py:130 part/templates/part/part_base.html:207
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853
-#: templates/js/translated/part.js:590 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503
+#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1853
+#: templates/js/translated/part.js:588 templates/js/translated/part.js:608
+#: templates/js/translated/part.js:1337 templates/js/translated/part.js:1520
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr ""
@@ -4344,7 +4372,7 @@ msgstr ""
msgid "Icon (optional)"
msgstr ""
-#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16
+#: part/models.py:122 part/models.py:2516 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -4361,7 +4389,7 @@ msgstr ""
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146
+#: templates/js/translated/part.js:2004 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr ""
@@ -4391,7 +4419,7 @@ msgstr ""
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:745 part/models.py:2562
+#: part/models.py:745 part/models.py:2570
msgid "Part name"
msgstr ""
@@ -4424,11 +4452,11 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:783 part/models.py:2257 part/models.py:2507
+#: part/models.py:783 part/models.py:2265 part/models.py:2515
#: part/templates/part/part_base.html:257
#: templates/InvenTree/settings/settings.html:232
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688
+#: templates/js/translated/part.js:1477 templates/js/translated/part.js:1717
msgid "Category"
msgstr ""
@@ -4437,7 +4465,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:789 part/templates/part/part_base.html:266
-#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:1430
#: templates/js/translated/stock.js:1726
msgid "IPN"
msgstr ""
@@ -4451,7 +4479,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:797 part/templates/part/part_base.html:273
-#: report/models.py:171 templates/js/translated/part.js:743
+#: report/models.py:171 templates/js/translated/part.js:741
msgid "Revision"
msgstr ""
@@ -4543,245 +4571,245 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2304
+#: part/models.py:2312
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2321
+#: part/models.py:2329
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2341 templates/js/translated/part.js:2026
+#: part/models.py:2349 templates/js/translated/part.js:2055
#: templates/js/translated/stock.js:1340
msgid "Test Name"
msgstr ""
-#: part/models.py:2342
+#: part/models.py:2350
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2347
+#: part/models.py:2355
msgid "Test Description"
msgstr ""
-#: part/models.py:2348
+#: part/models.py:2356
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2353 templates/js/translated/part.js:2035
+#: part/models.py:2361 templates/js/translated/part.js:2064
#: templates/js/translated/table_filters.js:302
msgid "Required"
msgstr ""
-#: part/models.py:2354
+#: part/models.py:2362
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2359 templates/js/translated/part.js:2043
+#: part/models.py:2367 templates/js/translated/part.js:2072
msgid "Requires Value"
msgstr ""
-#: part/models.py:2360
+#: part/models.py:2368
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2365 templates/js/translated/part.js:2050
+#: part/models.py:2373 templates/js/translated/part.js:2079
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2366
+#: part/models.py:2374
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2374
+#: part/models.py:2382
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2410
+#: part/models.py:2418
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2418
+#: part/models.py:2426
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2433
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2430
+#: part/models.py:2438
msgid "Parameter description"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2471
msgid "Parent Part"
msgstr ""
-#: part/models.py:2465 part/models.py:2513 part/models.py:2514
+#: part/models.py:2473 part/models.py:2521 part/models.py:2522
#: templates/InvenTree/settings/settings.html:227
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Data"
msgstr ""
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2518 templates/InvenTree/settings/settings.html:236
+#: part/models.py:2526 templates/InvenTree/settings/settings.html:236
msgid "Default Value"
msgstr ""
-#: part/models.py:2519
+#: part/models.py:2527
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2554
+#: part/models.py:2562
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2557 templates/js/translated/model_renderers.js:212
+#: part/models.py:2565 templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr ""
-#: part/models.py:2558
+#: part/models.py:2566
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2561
+#: part/models.py:2569
msgid "Part Name"
msgstr ""
-#: part/models.py:2565
+#: part/models.py:2573
msgid "Part IPN"
msgstr ""
-#: part/models.py:2566
+#: part/models.py:2574
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2569
+#: part/models.py:2577
msgid "Level"
msgstr ""
-#: part/models.py:2570
+#: part/models.py:2578
msgid "BOM level"
msgstr ""
-#: part/models.py:2639
+#: part/models.py:2647
msgid "Select parent part"
msgstr ""
-#: part/models.py:2647
+#: part/models.py:2655
msgid "Sub part"
msgstr ""
-#: part/models.py:2648
+#: part/models.py:2656
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2654
+#: part/models.py:2662
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2656 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997
+#: part/models.py:2664 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:876 templates/js/translated/bom.js:1005
#: templates/js/translated/table_filters.js:100
msgid "Optional"
msgstr ""
-#: part/models.py:2656
+#: part/models.py:2664
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2659 part/templates/part/upload_bom.html:55
+#: part/models.py:2667 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2660
+#: part/models.py:2668
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2671
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2666
+#: part/models.py:2674
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "Checksum"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2672 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1014
+#: part/models.py:2680 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:1022
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:96
msgid "Inherited"
msgstr ""
-#: part/models.py:2673
+#: part/models.py:2681
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2678 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1006
+#: part/models.py:2686 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:1014
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2679
+#: part/models.py:2687
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2757 stock/models.py:468
+#: part/models.py:2765 stock/models.py:468
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2766 part/models.py:2768
+#: part/models.py:2774 part/models.py:2776
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2873
+#: part/models.py:2881
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2902
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2915
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2923
msgid "Substitute part"
msgstr ""
-#: part/models.py:2930
+#: part/models.py:2938
msgid "Part 1"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Part 2"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2960
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:2956
+#: part/models.py:2964
msgid "Duplicate relationship already exists"
msgstr ""
@@ -5309,10 +5337,10 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:624
-#: templates/js/translated/company.js:884
+#: templates/js/translated/company.js:659
+#: templates/js/translated/company.js:920
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:654 templates/js/translated/part.js:731
+#: templates/js/translated/part.js:652 templates/js/translated/part.js:729
msgid "Inactive"
msgstr ""
@@ -5327,28 +5355,28 @@ msgid "This part is a variant of %(link)s"
msgstr ""
#: part/templates/part/part_base.html:194
-#: templates/js/translated/company.js:974
+#: templates/js/translated/company.js:1027
#: templates/js/translated/table_filters.js:201
msgid "In Stock"
msgstr ""
#: part/templates/part/part_base.html:215
-#: stock/templates/stock/item_base.html:379
+#: stock/templates/stock/item_base.html:382
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:224
-#: stock/templates/stock/item_base.html:372
+#: stock/templates/stock/item_base.html:375
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1043
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320
-#: templates/js/translated/part.js:1510
+#: part/templates/part/part_base.html:238 templates/js/translated/part.js:591
+#: templates/js/translated/part.js:611 templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1527
msgid "Building"
msgstr ""
@@ -5361,7 +5389,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:328
+#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
@@ -5400,7 +5428,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:989
+#: templates/js/translated/bom.js:997
msgid "No supplier pricing available"
msgstr ""
@@ -5439,7 +5467,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:53
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468
+#: templates/js/translated/order.js:2001 templates/js/translated/stock.js:2464
msgid "Date"
msgstr ""
@@ -5495,7 +5523,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983
+#: part/templates/part/prices.html:160 templates/js/translated/bom.js:991
msgid "Supplier Cost"
msgstr ""
@@ -5533,8 +5561,8 @@ msgstr ""
msgid "No sale pice history available for this part."
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616
-#: templates/js/translated/part.js:1308
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:614
+#: templates/js/translated/part.js:1329 templates/js/translated/part.js:1331
msgid "No Stock"
msgstr ""
@@ -5735,19 +5763,19 @@ msgstr ""
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:186
+#: plugin/models.py:188
msgid "Plugin"
msgstr ""
-#: plugin/models.py:249
+#: plugin/models.py:253
msgid "Method"
msgstr ""
-#: plugin/plugin.py:251
+#: plugin/plugin.py:252
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:263
+#: plugin/plugin.py:264
msgid "No date found"
msgstr ""
@@ -5925,12 +5953,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:648 stock/templates/stock/item_base.html:317
+#: stock/models.py:648 stock/templates/stock/item_base.html:320
#: templates/js/translated/build.js:456 templates/js/translated/build.js:608
#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706
#: templates/js/translated/model_renderers.js:118
-#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403
-#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490
+#: templates/js/translated/order.js:121 templates/js/translated/order.js:3597
+#: templates/js/translated/order.js:3684 templates/js/translated/stock.js:490
msgid "Serial Number"
msgstr ""
@@ -5963,7 +5991,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780
-#: templates/js/translated/stock.js:2717
+#: templates/js/translated/stock.js:2713
msgid "Serial"
msgstr ""
@@ -5980,7 +6008,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
#: stock/models.py:89 stock/models.py:739
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:250
msgid "Owner"
msgstr ""
@@ -6046,7 +6074,7 @@ msgstr ""
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:631 stock/templates/stock/item_base.html:356
+#: stock/models.py:631 stock/templates/stock/item_base.html:359
msgid "Installed In"
msgstr ""
@@ -6086,8 +6114,8 @@ msgstr ""
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:706 stock/templates/stock/item_base.html:424
-#: templates/js/translated/stock.js:1883
+#: stock/models.py:706 stock/templates/stock/item_base.html:427
+#: templates/js/translated/stock.js:1879
msgid "Expiry Date"
msgstr ""
@@ -6379,7 +6407,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2857
msgid "Install Stock Item"
msgstr ""
@@ -6479,134 +6507,135 @@ msgstr ""
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:158
+#: stock/templates/stock/item_base.html:161
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:193
+#: stock/templates/stock/item_base.html:196
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:214
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:254
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/location.html:132
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:268
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:266
+#: stock/templates/stock/item_base.html:269
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:279
+#: stock/templates/stock/item_base.html:282
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:290
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:298
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:301
+#: stock/templates/stock/item_base.html:304
msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
msgstr ""
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:345
+#: stock/templates/stock/item_base.html:348
msgid "Available Quantity"
msgstr ""
-#: stock/templates/stock/item_base.html:389
+#: stock/templates/stock/item_base.html:392
#: templates/js/translated/build.js:1729
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:404
+#: stock/templates/stock/item_base.html:407
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#: templates/js/translated/table_filters.js:269
msgid "Expired"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:275
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:437
-#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899
+#: stock/templates/stock/item_base.html:440
+#: templates/js/translated/company.js:1038
+#: templates/js/translated/stock.js:1895
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:442
+#: stock/templates/stock/item_base.html:445
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:516
+#: stock/templates/stock/item_base.html:519
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:589
+#: stock/templates/stock/item_base.html:592
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:592
+#: stock/templates/stock/item_base.html:595
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:593
+#: stock/templates/stock/item_base.html:596
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:601
+#: stock/templates/stock/item_base.html:604
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:629
+#: stock/templates/stock/item_base.html:632
msgid "Return to Stock"
msgstr ""
@@ -6739,11 +6768,11 @@ msgstr ""
msgid "Refer to the error log in the admin interface for further details"
msgstr ""
-#: templates/503.html:11 templates/503.html:36
+#: templates/503.html:11 templates/503.html:34
msgid "Site is in Maintenance"
msgstr ""
-#: templates/503.html:42
+#: templates/503.html:40
msgid "The site is currently in maintenance and should be up again soon!"
msgstr ""
@@ -7509,7 +7538,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:644
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "Potvrdit"
@@ -7728,7 +7757,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1481
+#: templates/js/translated/bom.js:1489
msgid "Required Quantity"
msgstr ""
@@ -7742,7 +7771,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2522
+#: templates/js/translated/part.js:2551
msgid "Minimum Quantity"
msgstr ""
@@ -7947,7 +7976,7 @@ msgstr ""
#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620
#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601
#: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003
-#: templates/js/translated/order.js:1085 templates/modals.html:15
+#: templates/js/translated/order.js:1179 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -7957,12 +7986,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145
+#: templates/js/translated/order.js:960 templates/js/translated/tables.js:145
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:867
+#: templates/js/translated/order.js:961
msgid "Select file format"
msgstr ""
@@ -8058,73 +8087,73 @@ msgstr ""
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857
-#: templates/js/translated/order.js:3738
+#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1857
+#: templates/js/translated/order.js:3932
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861
+#: templates/js/translated/bom.js:940 templates/js/translated/build.js:1861
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516
+#: templates/js/translated/bom.js:942 templates/js/translated/build.js:1863
+#: templates/js/translated/part.js:761 templates/js/translated/part.js:1533
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865
+#: templates/js/translated/bom.js:944 templates/js/translated/build.js:1865
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:954
+#: templates/js/translated/bom.js:962
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:969
+#: templates/js/translated/bom.js:977
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:976
+#: templates/js/translated/bom.js:984
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145
+#: templates/js/translated/bom.js:1033 templates/js/translated/bom.js:1153
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1052
+#: templates/js/translated/bom.js:1060
msgid "Including On Order"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1124
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1118
+#: templates/js/translated/bom.js:1126
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1120
+#: templates/js/translated/bom.js:1128
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284
+#: templates/js/translated/bom.js:1130 templates/js/translated/bom.js:1292
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1124
+#: templates/js/translated/bom.js:1132
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650
+#: templates/js/translated/bom.js:1228 templates/js/translated/build.js:1650
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789
+#: templates/js/translated/bom.js:1472 templates/js/translated/build.js:1789
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1486
+#: templates/js/translated/bom.js:1498
msgid "Inherited from parent BOM"
msgstr ""
@@ -8267,12 +8296,12 @@ msgid "No required tests for this build"
msgstr ""
#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697
-#: templates/js/translated/order.js:3438
+#: templates/js/translated/order.js:3632
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698
-#: templates/js/translated/order.js:3439
+#: templates/js/translated/order.js:3633
msgid "Delete stock allocation"
msgstr ""
@@ -8292,20 +8321,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745
+#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3939
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743
+#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3937
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127
-#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757
+#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3951
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837
+#: templates/js/translated/build.js:1930 templates/js/translated/order.js:4031
msgid "Build stock"
msgstr ""
@@ -8313,21 +8342,21 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830
+#: templates/js/translated/build.js:1937 templates/js/translated/order.js:4024
msgid "Allocate stock"
msgstr ""
#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965
+#: templates/js/translated/order.js:1007 templates/js/translated/order.js:3159
#: templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966
+#: templates/js/translated/build.js:1977 templates/js/translated/order.js:3160
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914
+#: templates/js/translated/build.js:2026 templates/js/translated/order.js:3108
msgid "Specify stock allocation quantity"
msgstr ""
@@ -8339,7 +8368,7 @@ msgstr ""
msgid "All selected parts have been fully allocated"
msgstr ""
-#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980
+#: templates/js/translated/build.js:2115 templates/js/translated/order.js:3174
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
@@ -8347,11 +8376,11 @@ msgstr ""
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077
+#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3271
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154
+#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3348
msgid "No matching stock items"
msgstr ""
@@ -8383,9 +8412,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401
-#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1422
+#: templates/js/translated/part.js:1948 templates/js/translated/stock.js:1686
+#: templates/js/translated/stock.js:2382
msgid "Select"
msgstr ""
@@ -8397,7 +8426,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647
+#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2643
msgid "No user information"
msgstr ""
@@ -8405,111 +8434,115 @@ msgstr ""
msgid "No parts allocated for"
msgstr ""
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:179
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:181
msgid "Add Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
msgid "Edit Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:167 templates/js/translated/order.js:511
+#: templates/js/translated/company.js:169 templates/js/translated/order.js:576
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:195 templates/js/translated/order.js:734
+#: templates/js/translated/company.js:197 templates/js/translated/order.js:828
msgid "Add Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:262
+#: templates/js/translated/company.js:297
msgid "All selected supplier parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:278
+#: templates/js/translated/company.js:313
msgid "Delete Supplier Parts"
msgstr ""
-#: templates/js/translated/company.js:350
+#: templates/js/translated/company.js:385
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:427
+#: templates/js/translated/company.js:462
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:471
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:451
+#: templates/js/translated/company.js:486
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:492
+#: templates/js/translated/company.js:527
msgid "All selected manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:507
+#: templates/js/translated/company.js:542
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:541
+#: templates/js/translated/company.js:576
msgid "All selected parameters will be deleted"
msgstr ""
-#: templates/js/translated/company.js:555
+#: templates/js/translated/company.js:590
msgid "Delete Parameters"
msgstr ""
-#: templates/js/translated/company.js:596
+#: templates/js/translated/company.js:631
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:616
-#: templates/js/translated/company.js:876 templates/js/translated/part.js:638
-#: templates/js/translated/part.js:723
+#: templates/js/translated/company.js:651
+#: templates/js/translated/company.js:912 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:721
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:620
-#: templates/js/translated/company.js:880 templates/js/translated/part.js:642
-#: templates/js/translated/part.js:727
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:916 templates/js/translated/part.js:640
+#: templates/js/translated/part.js:725
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:748 templates/js/translated/part.js:830
+#: templates/js/translated/company.js:783 templates/js/translated/part.js:828
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:785 templates/js/translated/part.js:872
+#: templates/js/translated/company.js:820 templates/js/translated/part.js:870
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:786 templates/js/translated/part.js:873
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:871
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:805 templates/js/translated/part.js:890
+#: templates/js/translated/company.js:840 templates/js/translated/part.js:888
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:816 templates/js/translated/part.js:902
+#: templates/js/translated/company.js:851 templates/js/translated/part.js:900
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:856
+#: templates/js/translated/company.js:891
msgid "No supplier parts found"
msgstr ""
-#: templates/js/translated/company.js:1002
+#: templates/js/translated/company.js:1032
+msgid "Availability"
+msgstr ""
+
+#: templates/js/translated/company.js:1055
msgid "Edit supplier part"
msgstr ""
-#: templates/js/translated/company.js:1003
+#: templates/js/translated/company.js:1056
msgid "Delete supplier part"
msgstr ""
@@ -8547,61 +8580,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:367 templates/js/translated/forms.js:382
-#: templates/js/translated/forms.js:396 templates/js/translated/forms.js:410
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:369
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:384
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:398
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:670
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:771
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1269 templates/modals.html:19
+#: templates/js/translated/forms.js:1274 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1702
+#: templates/js/translated/forms.js:1707
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1917 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2170
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2648
+#: templates/js/translated/forms.js:2653
msgid "Select Columns"
msgstr ""
@@ -8792,409 +8825,422 @@ msgstr ""
msgid "Notifications will load here"
msgstr ""
-#: templates/js/translated/order.js:96
+#: templates/js/translated/order.js:97
msgid "No stock items have been allocated to this shipment"
msgstr ""
-#: templates/js/translated/order.js:101
+#: templates/js/translated/order.js:102
msgid "The following stock items will be shipped"
msgstr ""
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:142
msgid "Complete Shipment"
msgstr ""
-#: templates/js/translated/order.js:161
+#: templates/js/translated/order.js:162
msgid "Confirm Shipment"
msgstr ""
-#: templates/js/translated/order.js:217
+#: templates/js/translated/order.js:218
msgid "No pending shipments found"
msgstr ""
-#: templates/js/translated/order.js:221
+#: templates/js/translated/order.js:222
msgid "No stock items have been allocated to pending shipments"
msgstr ""
-#: templates/js/translated/order.js:253
+#: templates/js/translated/order.js:254
msgid "Skip"
msgstr ""
-#: templates/js/translated/order.js:283
+#: templates/js/translated/order.js:284
msgid "Complete Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:289
+#: templates/js/translated/order.js:301 templates/js/translated/order.js:413
msgid "Mark this order as complete?"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:307
msgid "All line items have been received"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:312
msgid "This order has line items which have not been marked as received."
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:313 templates/js/translated/order.js:427
msgid "Completing this order means that the order and line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:324
+#: templates/js/translated/order.js:336
msgid "Cancel Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:329
+#: templates/js/translated/order.js:341
msgid "Are you sure you wish to cancel this purchase order?"
msgstr ""
-#: templates/js/translated/order.js:335
+#: templates/js/translated/order.js:347
msgid "This purchase order can not be cancelled"
msgstr ""
-#: templates/js/translated/order.js:358
+#: templates/js/translated/order.js:370
msgid "Issue Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:363
+#: templates/js/translated/order.js:375
msgid "After placing this purchase order, line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:385
+#: templates/js/translated/order.js:426
+msgid "This order has line items which have not been completed."
+msgstr ""
+
+#: templates/js/translated/order.js:450
msgid "Cancel Sales Order"
msgstr ""
-#: templates/js/translated/order.js:390
+#: templates/js/translated/order.js:455
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:444
+#: templates/js/translated/order.js:509
msgid "Create New Shipment"
msgstr ""
-#: templates/js/translated/order.js:469
+#: templates/js/translated/order.js:534
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:494
+#: templates/js/translated/order.js:559
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:555
+#: templates/js/translated/order.js:620
msgid "Select purchase order to duplicate"
msgstr ""
-#: templates/js/translated/order.js:562
+#: templates/js/translated/order.js:627
msgid "Duplicate Line Items"
msgstr ""
-#: templates/js/translated/order.js:563
+#: templates/js/translated/order.js:628
msgid "Duplicate all line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:570
+#: templates/js/translated/order.js:635
msgid "Duplicate Extra Lines"
msgstr ""
-#: templates/js/translated/order.js:571
+#: templates/js/translated/order.js:636
msgid "Duplicate extra line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:588
+#: templates/js/translated/order.js:653
msgid "Edit Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:605
+#: templates/js/translated/order.js:670
msgid "Duplication Options"
msgstr ""
-#: templates/js/translated/order.js:863
+#: templates/js/translated/order.js:957
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:914
+#: templates/js/translated/order.js:1008
msgid "At least one purchaseable part must be selected"
msgstr ""
-#: templates/js/translated/order.js:939
+#: templates/js/translated/order.js:1033
msgid "Quantity to order"
msgstr ""
-#: templates/js/translated/order.js:948
+#: templates/js/translated/order.js:1042
msgid "New supplier part"
msgstr ""
-#: templates/js/translated/order.js:966
+#: templates/js/translated/order.js:1060
msgid "New purchase order"
msgstr ""
-#: templates/js/translated/order.js:999
+#: templates/js/translated/order.js:1093
msgid "Add to purchase order"
msgstr ""
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1233
msgid "No matching supplier parts"
msgstr ""
-#: templates/js/translated/order.js:1123
+#: templates/js/translated/order.js:1252
msgid "No matching purchase orders"
msgstr ""
-#: templates/js/translated/order.js:1300
+#: templates/js/translated/order.js:1429
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1430
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420
+#: templates/js/translated/order.js:1450 templates/js/translated/order.js:1563
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431
+#: templates/js/translated/order.js:1456 templates/js/translated/order.js:1574
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1339
+#: templates/js/translated/order.js:1471
+msgid "Received Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:1482
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144
+#: templates/js/translated/order.js:1546 templates/js/translated/stock.js:2140
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:1494
+#: templates/js/translated/order.js:1639
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:1495
+#: templates/js/translated/order.js:1640
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:1497
+#: templates/js/translated/order.js:1642
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:1516
+#: templates/js/translated/order.js:1661
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:1517
+#: templates/js/translated/order.js:1662
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943
+#: templates/js/translated/order.js:1940 templates/js/translated/part.js:941
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2803
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674
-#: templates/js/translated/order.js:2815
+#: templates/js/translated/order.js:2017 templates/js/translated/order.js:2868
+#: templates/js/translated/order.js:3009
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889
+#: templates/js/translated/order.js:2115 templates/js/translated/order.js:4083
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911
+#: templates/js/translated/order.js:2132 templates/js/translated/order.js:4105
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:4116
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:2026
+#: templates/js/translated/order.js:2188
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:2215 templates/js/translated/order.js:3817
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309
-#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156
-#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753
+#: templates/js/translated/order.js:2270 templates/js/translated/part.js:1043
+#: templates/js/translated/part.js:1095
+msgid "Total Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:2301 templates/js/translated/order.js:2503
+#: templates/js/translated/order.js:3842 templates/js/translated/order.js:4350
+#: templates/js/translated/part.js:2184 templates/js/translated/part.js:2782
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325
-#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172
+#: templates/js/translated/order.js:2316 templates/js/translated/order.js:2519
+#: templates/js/translated/order.js:3858 templates/js/translated/order.js:4366
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706
-#: templates/js/translated/part.js:1070
+#: templates/js/translated/order.js:2357 templates/js/translated/order.js:3900
+#: templates/js/translated/part.js:1079
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110
+#: templates/js/translated/order.js:2416 templates/js/translated/part.js:1130
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2420 templates/js/translated/order.js:4037
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844
+#: templates/js/translated/order.js:2421 templates/js/translated/order.js:4038
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848
+#: templates/js/translated/order.js:2422 templates/js/translated/order.js:4042
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221
+#: templates/js/translated/order.js:2568 templates/js/translated/order.js:4415
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222
+#: templates/js/translated/order.js:2569 templates/js/translated/order.js:4416
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223
+#: templates/js/translated/order.js:2570 templates/js/translated/order.js:4417
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253
+#: templates/js/translated/order.js:2600 templates/js/translated/order.js:4447
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274
+#: templates/js/translated/order.js:2621 templates/js/translated/order.js:4468
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285
+#: templates/js/translated/order.js:2632 templates/js/translated/order.js:4479
msgid "Delete Line"
msgstr ""
-#: templates/js/translated/order.js:2449
+#: templates/js/translated/order.js:2643
msgid "No matching line"
msgstr ""
-#: templates/js/translated/order.js:2560
+#: templates/js/translated/order.js:2754
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:2623
+#: templates/js/translated/order.js:2817
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:2721
+#: templates/js/translated/order.js:2915
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:2724
+#: templates/js/translated/order.js:2918
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:2729
+#: templates/js/translated/order.js:2923
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:2749
+#: templates/js/translated/order.js:2943
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:2766
+#: templates/js/translated/order.js:2960
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:2800
+#: templates/js/translated/order.js:2994
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:2810
+#: templates/js/translated/order.js:3004
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:2834
+#: templates/js/translated/order.js:3028
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:2840
+#: templates/js/translated/order.js:3034
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:2844
+#: templates/js/translated/order.js:3038
msgid "Invoice"
msgstr ""
-#: templates/js/translated/order.js:3013
+#: templates/js/translated/order.js:3207
msgid "Add Shipment"
msgstr ""
-#: templates/js/translated/order.js:3064
+#: templates/js/translated/order.js:3258
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/order.js:3065
+#: templates/js/translated/order.js:3259
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:3273
+#: templates/js/translated/order.js:3467
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:3352
+#: templates/js/translated/order.js:3546
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3369
+#: templates/js/translated/order.js:3563
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:3370
+#: templates/js/translated/order.js:3564
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504
+#: templates/js/translated/order.js:3609 templates/js/translated/order.js:3698
#: templates/js/translated/stock.js:1602
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513
+#: templates/js/translated/order.js:3617 templates/js/translated/order.js:3707
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3827
+#: templates/js/translated/order.js:4021
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3833
+#: templates/js/translated/order.js:4027
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038
+#: templates/js/translated/order.js:4034 templates/js/translated/order.js:4232
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3852
+#: templates/js/translated/order.js:4046
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3855
+#: templates/js/translated/order.js:4049
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3937
+#: templates/js/translated/order.js:4131
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:4046
+#: templates/js/translated/order.js:4240
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:4060
+#: templates/js/translated/order.js:4254
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4296
+#: templates/js/translated/order.js:4490
msgid "No matching lines"
msgstr ""
@@ -9374,173 +9420,177 @@ msgstr ""
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498
+#: templates/js/translated/part.js:584 templates/js/translated/part.js:1515
#: templates/js/translated/table_filters.js:468
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:596
+#: templates/js/translated/part.js:594
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:715
+#: templates/js/translated/part.js:628 templates/js/translated/part.js:713
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:634 templates/js/translated/part.js:719
+#: templates/js/translated/part.js:632 templates/js/translated/part.js:717
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:646
+#: templates/js/translated/part.js:644
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:650
+#: templates/js/translated/part.js:648
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:778
+#: templates/js/translated/part.js:776
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1180
+#: templates/js/translated/part.js:1200
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1204
+#: templates/js/translated/part.js:1224
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573
+#: templates/js/translated/part.js:1291 templates/js/translated/part.js:1602
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1310
-msgid "Not available"
-msgstr ""
-
-#: templates/js/translated/part.js:1461
+#: templates/js/translated/part.js:1482
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1496
+#: templates/js/translated/part.js:1513
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840
-#: templates/js/translated/stock.js:2347
+#: templates/js/translated/part.js:1537
+msgid "Allocated to build orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1541
+msgid "Allocated to sales orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1626 templates/js/translated/part.js:1869
+#: templates/js/translated/stock.js:2343
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1613
+#: templates/js/translated/part.js:1642
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1679
+#: templates/js/translated/part.js:1708
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1684
+#: templates/js/translated/part.js:1713
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:1689
+#: templates/js/translated/part.js:1718
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1702
+#: templates/js/translated/part.js:1731
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366
+#: templates/js/translated/part.js:1888 templates/js/translated/stock.js:2362
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1938
+#: templates/js/translated/part.js:1967
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:1954
+#: templates/js/translated/part.js:1983
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2012
+#: templates/js/translated/part.js:2041
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299
+#: templates/js/translated/part.js:2092 templates/js/translated/stock.js:1299
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300
+#: templates/js/translated/part.js:2093 templates/js/translated/stock.js:1300
#: templates/js/translated/stock.js:1560
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2070
+#: templates/js/translated/part.js:2099
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2092
+#: templates/js/translated/part.js:2121
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2106
+#: templates/js/translated/part.js:2135
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2131
+#: templates/js/translated/part.js:2160
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:2188
+#: templates/js/translated/part.js:2217
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2189
+#: templates/js/translated/part.js:2218
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355
+#: templates/js/translated/part.js:2383 templates/js/translated/part.js:2384
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2357
+#: templates/js/translated/part.js:2386
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2363
+#: templates/js/translated/part.js:2392
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2413
+#: templates/js/translated/part.js:2442
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2419
+#: templates/js/translated/part.js:2448
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2515
+#: templates/js/translated/part.js:2544
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2531
+#: templates/js/translated/part.js:2560
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2576
+#: templates/js/translated/part.js:2605
msgid "Minimum Stock Level"
msgstr ""
-#: templates/js/translated/part.js:2677
+#: templates/js/translated/part.js:2706
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:2696
+#: templates/js/translated/part.js:2725
msgid "Single Price Difference"
msgstr ""
@@ -9778,7 +9828,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:942 users/models.py:216
+#: templates/js/translated/stock.js:942 users/models.py:218
msgid "Add"
msgstr ""
@@ -9854,156 +9904,156 @@ msgstr ""
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1775
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1780
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1787
+#: templates/js/translated/stock.js:1783
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1790
+#: templates/js/translated/stock.js:1786
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1792
+#: templates/js/translated/stock.js:1788
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1794
+#: templates/js/translated/stock.js:1790
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1797
+#: templates/js/translated/stock.js:1793
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1797
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1803
+#: templates/js/translated/stock.js:1799
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1810
+#: templates/js/translated/stock.js:1806
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:1808
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1814
+#: templates/js/translated/stock.js:1810
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1818
+#: templates/js/translated/stock.js:1814
#: templates/js/translated/table_filters.js:196
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1869
+#: templates/js/translated/stock.js:1865
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1948
+#: templates/js/translated/stock.js:1944
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1986
+#: templates/js/translated/stock.js:1982
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2159
+#: templates/js/translated/stock.js:2155
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2173
+#: templates/js/translated/stock.js:2169
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2174
+#: templates/js/translated/stock.js:2170
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2404
+#: templates/js/translated/stock.js:2400
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2493
+#: templates/js/translated/stock.js:2489
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2509
+#: templates/js/translated/stock.js:2505
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2531
+#: templates/js/translated/stock.js:2527
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2550
+#: templates/js/translated/stock.js:2546
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2569
+#: templates/js/translated/stock.js:2565
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2587
+#: templates/js/translated/stock.js:2583
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2610
+#: templates/js/translated/stock.js:2606
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2618
+#: templates/js/translated/stock.js:2614
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2694
+#: templates/js/translated/stock.js:2690
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781
+#: templates/js/translated/stock.js:2741 templates/js/translated/stock.js:2777
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2790
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2815
+#: templates/js/translated/stock.js:2811
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2816
+#: templates/js/translated/stock.js:2812
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2818
+#: templates/js/translated/stock.js:2814
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2819
+#: templates/js/translated/stock.js:2815
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2820
+#: templates/js/translated/stock.js:2816
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2821
+#: templates/js/translated/stock.js:2817
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2834
+#: templates/js/translated/stock.js:2830
msgid "Select part to install"
msgstr ""
@@ -10525,35 +10575,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:203
+#: users/models.py:205
msgid "Permission set"
msgstr ""
-#: users/models.py:211
+#: users/models.py:213
msgid "Group"
msgstr ""
-#: users/models.py:214
+#: users/models.py:216
msgid "View"
msgstr ""
-#: users/models.py:214
+#: users/models.py:216
msgid "Permission to view items"
msgstr ""
-#: users/models.py:216
+#: users/models.py:218
msgid "Permission to add items"
msgstr ""
-#: users/models.py:218
+#: users/models.py:220
msgid "Change"
msgstr ""
-#: users/models.py:218
+#: users/models.py:220
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:222
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/da/LC_MESSAGES/django.po b/InvenTree/locale/da/LC_MESSAGES/django.po
new file mode 100644
index 0000000000..2772399fdb
--- /dev/null
+++ b/InvenTree/locale/da/LC_MESSAGES/django.po
@@ -0,0 +1,10694 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR , YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2022-09-14 04:24+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: LANGUAGE \n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: InvenTree/api.py:54
+msgid "API endpoint not found"
+msgstr ""
+
+#: InvenTree/exceptions.py:68
+msgid "Error details can be found in the admin panel"
+msgstr ""
+
+#: InvenTree/fields.py:109
+msgid "Enter date"
+msgstr ""
+
+#: InvenTree/fields.py:183 build/serializers.py:384
+#: build/templates/build/sidebar.html:21 company/models.py:524
+#: company/templates/company/sidebar.html:25 order/models.py:910
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:17
+#: part/templates/part/part_sidebar.html:59
+#: report/templates/report/inventree_build_order_base.html:172
+#: stock/models.py:2000 stock/models.py:2108 stock/serializers.py:327
+#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823
+#: stock/serializers.py:922 stock/serializers.py:1054
+#: stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1107
+#: templates/js/translated/company.js:1022
+#: templates/js/translated/order.js:2404 templates/js/translated/order.js:2555
+#: templates/js/translated/order.js:3053 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:4402 templates/js/translated/stock.js:1374
+#: templates/js/translated/stock.js:1976
+msgid "Notes"
+msgstr ""
+
+#: InvenTree/format.py:142
+#, python-brace-format
+msgid "Value '{name}' does not appear in pattern format"
+msgstr ""
+
+#: InvenTree/format.py:152
+msgid "Provided value does not match required pattern: "
+msgstr ""
+
+#: InvenTree/forms.py:133
+msgid "Enter password"
+msgstr ""
+
+#: InvenTree/forms.py:134
+msgid "Enter new password"
+msgstr ""
+
+#: InvenTree/forms.py:143
+msgid "Confirm password"
+msgstr ""
+
+#: InvenTree/forms.py:144
+msgid "Confirm new password"
+msgstr ""
+
+#: InvenTree/forms.py:148
+msgid "Old password"
+msgstr ""
+
+#: InvenTree/forms.py:177
+msgid "Email (again)"
+msgstr ""
+
+#: InvenTree/forms.py:181
+msgid "Email address confirmation"
+msgstr ""
+
+#: InvenTree/forms.py:202
+msgid "You must type the same email each time."
+msgstr ""
+
+#: InvenTree/helpers.py:175
+msgid "Connection error"
+msgstr ""
+
+#: InvenTree/helpers.py:179 InvenTree/helpers.py:184
+msgid "Server responded with invalid status code"
+msgstr ""
+
+#: InvenTree/helpers.py:181
+msgid "Exception occurred"
+msgstr ""
+
+#: InvenTree/helpers.py:189
+msgid "Server responded with invalid Content-Length value"
+msgstr ""
+
+#: InvenTree/helpers.py:192
+msgid "Image size is too large"
+msgstr ""
+
+#: InvenTree/helpers.py:204
+msgid "Image download exceeded maximum size"
+msgstr ""
+
+#: InvenTree/helpers.py:209
+msgid "Remote server returned empty response"
+msgstr ""
+
+#: InvenTree/helpers.py:217
+msgid "Supplied URL is not a valid image file"
+msgstr ""
+
+#: InvenTree/helpers.py:600
+#, python-brace-format
+msgid "Duplicate serial: {sn}"
+msgstr ""
+
+#: InvenTree/helpers.py:607 order/models.py:320 order/models.py:472
+msgid "Invalid quantity provided"
+msgstr ""
+
+#: InvenTree/helpers.py:610
+msgid "Empty serial number string"
+msgstr ""
+
+#: InvenTree/helpers.py:642
+#, python-brace-format
+msgid "Invalid group range: {g}"
+msgstr ""
+
+#: InvenTree/helpers.py:645
+#, python-brace-format
+msgid "Invalid group: {g}"
+msgstr ""
+
+#: InvenTree/helpers.py:673
+#, python-brace-format
+msgid "Invalid group sequence: {g}"
+msgstr ""
+
+#: InvenTree/helpers.py:681
+#, python-brace-format
+msgid "Invalid/no group {group}"
+msgstr ""
+
+#: InvenTree/helpers.py:687
+msgid "No serial numbers found"
+msgstr ""
+
+#: InvenTree/helpers.py:691
+#, python-brace-format
+msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
+msgstr ""
+
+#: InvenTree/helpers.py:890
+msgid "Remove HTML tags from this value"
+msgstr ""
+
+#: InvenTree/models.py:236
+msgid "Improperly formatted pattern"
+msgstr ""
+
+#: InvenTree/models.py:243
+msgid "Unknown format key specified"
+msgstr ""
+
+#: InvenTree/models.py:249
+msgid "Missing required format key"
+msgstr ""
+
+#: InvenTree/models.py:261
+msgid "Reference field cannot be empty"
+msgstr ""
+
+#: InvenTree/models.py:268
+msgid "Reference must match required pattern"
+msgstr ""
+
+#: InvenTree/models.py:304
+msgid "Reference number is too large"
+msgstr ""
+
+#: InvenTree/models.py:382
+msgid "Missing file"
+msgstr ""
+
+#: InvenTree/models.py:383
+msgid "Missing external link"
+msgstr ""
+
+#: InvenTree/models.py:395 stock/models.py:2102
+#: templates/js/translated/attachment.js:103
+#: templates/js/translated/attachment.js:241
+msgid "Attachment"
+msgstr ""
+
+#: InvenTree/models.py:396
+msgid "Select file to attach"
+msgstr ""
+
+#: InvenTree/models.py:402 company/models.py:124 company/models.py:276
+#: company/models.py:511 order/models.py:84 order/models.py:1249
+#: part/models.py:802 part/templates/part/part_scheduling.html:11
+#: report/templates/report/inventree_build_order_base.html:164
+#: templates/js/translated/company.js:691
+#: templates/js/translated/company.js:1011
+#: templates/js/translated/order.js:3042 templates/js/translated/part.js:1563
+msgid "Link"
+msgstr ""
+
+#: InvenTree/models.py:403 build/models.py:296 part/models.py:803
+#: stock/models.py:658
+msgid "Link to external URL"
+msgstr ""
+
+#: InvenTree/models.py:406 templates/js/translated/attachment.js:104
+#: templates/js/translated/attachment.js:285
+msgid "Comment"
+msgstr ""
+
+#: InvenTree/models.py:406
+msgid "File comment"
+msgstr ""
+
+#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1669
+#: common/models.py:1670 common/models.py:1893 common/models.py:1894
+#: common/models.py:2156 common/models.py:2157 part/models.py:2247
+#: part/models.py:2267 plugin/models.py:260 plugin/models.py:261
+#: report/templates/report/inventree_test_report_base.html:96
+#: templates/js/translated/stock.js:2637
+msgid "User"
+msgstr ""
+
+#: InvenTree/models.py:416
+msgid "upload date"
+msgstr ""
+
+#: InvenTree/models.py:438
+msgid "Filename must not be empty"
+msgstr ""
+
+#: InvenTree/models.py:447
+msgid "Invalid attachment directory"
+msgstr ""
+
+#: InvenTree/models.py:457
+#, python-brace-format
+msgid "Filename contains illegal character '{c}'"
+msgstr ""
+
+#: InvenTree/models.py:460
+msgid "Filename missing extension"
+msgstr ""
+
+#: InvenTree/models.py:467
+msgid "Attachment with this filename already exists"
+msgstr ""
+
+#: InvenTree/models.py:474
+msgid "Error renaming file"
+msgstr ""
+
+#: InvenTree/models.py:510
+msgid "Invalid choice"
+msgstr ""
+
+#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1879
+#: company/models.py:358 label/models.py:101 part/models.py:746
+#: part/models.py:2425 plugin/models.py:94 report/models.py:152
+#: templates/InvenTree/settings/mixins/urls.html:13
+#: templates/InvenTree/settings/plugin.html:51
+#: templates/InvenTree/settings/plugin.html:134
+#: templates/InvenTree/settings/plugin_settings.html:23
+#: templates/InvenTree/settings/settings.html:347
+#: templates/js/translated/company.js:580
+#: templates/js/translated/company.js:793
+#: templates/js/translated/notification.js:71
+#: templates/js/translated/part.js:686 templates/js/translated/part.js:838
+#: templates/js/translated/part.js:1955 templates/js/translated/stock.js:2388
+msgid "Name"
+msgstr ""
+
+#: InvenTree/models.py:544 build/models.py:174
+#: build/templates/build/detail.html:24 company/models.py:282
+#: company/models.py:517 company/templates/company/company_base.html:71
+#: company/templates/company/manufacturer_part.html:75
+#: company/templates/company/supplier_part.html:92 label/models.py:108
+#: order/models.py:82 part/models.py:769 part/models.py:2437
+#: part/templates/part/category.html:80 part/templates/part/part_base.html:167
+#: part/templates/part/part_scheduling.html:12 report/models.py:165
+#: report/models.py:507 report/models.py:551
+#: report/templates/report/inventree_build_order_base.html:117
+#: stock/templates/stock/location.html:108
+#: templates/InvenTree/settings/plugin_settings.html:33
+#: templates/InvenTree/settings/settings.html:358
+#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846
+#: templates/js/translated/build.js:2512 templates/js/translated/company.js:444
+#: templates/js/translated/company.js:702
+#: templates/js/translated/company.js:986 templates/js/translated/order.js:1988
+#: templates/js/translated/order.js:2220 templates/js/translated/order.js:2831
+#: templates/js/translated/part.js:745 templates/js/translated/part.js:1187
+#: templates/js/translated/part.js:1463 templates/js/translated/part.js:1991
+#: templates/js/translated/part.js:2060 templates/js/translated/stock.js:1743
+#: templates/js/translated/stock.js:2420 templates/js/translated/stock.js:2474
+msgid "Description"
+msgstr ""
+
+#: InvenTree/models.py:545
+msgid "Description (optional)"
+msgstr ""
+
+#: InvenTree/models.py:553
+msgid "parent"
+msgstr ""
+
+#: InvenTree/models.py:560 InvenTree/models.py:561
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:2426
+msgid "Path"
+msgstr ""
+
+#: InvenTree/models.py:670
+msgid "Server Error"
+msgstr ""
+
+#: InvenTree/models.py:671
+msgid "An error has been logged by the server."
+msgstr ""
+
+#: InvenTree/serializers.py:55 part/models.py:2753
+msgid "Must be a valid number"
+msgstr ""
+
+#: InvenTree/serializers.py:262
+msgid "Filename"
+msgstr ""
+
+#: InvenTree/serializers.py:297
+msgid "Invalid value"
+msgstr ""
+
+#: InvenTree/serializers.py:319
+msgid "Data File"
+msgstr ""
+
+#: InvenTree/serializers.py:320
+msgid "Select data file for upload"
+msgstr ""
+
+#: InvenTree/serializers.py:341
+msgid "Unsupported file type"
+msgstr ""
+
+#: InvenTree/serializers.py:347
+msgid "File is too large"
+msgstr ""
+
+#: InvenTree/serializers.py:368
+msgid "No columns found in file"
+msgstr ""
+
+#: InvenTree/serializers.py:371
+msgid "No data rows found in file"
+msgstr ""
+
+#: InvenTree/serializers.py:494
+msgid "No data rows provided"
+msgstr ""
+
+#: InvenTree/serializers.py:497
+msgid "No data columns supplied"
+msgstr ""
+
+#: InvenTree/serializers.py:574
+#, python-brace-format
+msgid "Missing required column: '{name}'"
+msgstr ""
+
+#: InvenTree/serializers.py:583
+#, python-brace-format
+msgid "Duplicate column: '{col}'"
+msgstr ""
+
+#: InvenTree/serializers.py:602
+#: templates/InvenTree/settings/mixins/urls.html:14
+msgid "URL"
+msgstr ""
+
+#: InvenTree/serializers.py:603
+msgid "URL of remote image file"
+msgstr ""
+
+#: InvenTree/serializers.py:617
+msgid "Downloading images from remote URL is not enabled"
+msgstr ""
+
+#: InvenTree/settings.py:607
+msgid "Czech"
+msgstr ""
+
+#: InvenTree/settings.py:608
+msgid "Danish"
+msgstr ""
+
+#: InvenTree/settings.py:609
+msgid "German"
+msgstr ""
+
+#: InvenTree/settings.py:610
+msgid "Greek"
+msgstr ""
+
+#: InvenTree/settings.py:611
+msgid "English"
+msgstr ""
+
+#: InvenTree/settings.py:612
+msgid "Spanish"
+msgstr ""
+
+#: InvenTree/settings.py:613
+msgid "Spanish (Mexican)"
+msgstr ""
+
+#: InvenTree/settings.py:614
+msgid "Farsi / Persian"
+msgstr ""
+
+#: InvenTree/settings.py:615
+msgid "French"
+msgstr ""
+
+#: InvenTree/settings.py:616
+msgid "Hebrew"
+msgstr ""
+
+#: InvenTree/settings.py:617
+msgid "Hungarian"
+msgstr ""
+
+#: InvenTree/settings.py:618
+msgid "Italian"
+msgstr ""
+
+#: InvenTree/settings.py:619
+msgid "Japanese"
+msgstr ""
+
+#: InvenTree/settings.py:620
+msgid "Korean"
+msgstr ""
+
+#: InvenTree/settings.py:621
+msgid "Dutch"
+msgstr ""
+
+#: InvenTree/settings.py:622
+msgid "Norwegian"
+msgstr ""
+
+#: InvenTree/settings.py:623
+msgid "Polish"
+msgstr ""
+
+#: InvenTree/settings.py:624
+msgid "Portuguese"
+msgstr ""
+
+#: InvenTree/settings.py:625
+msgid "Portuguese (Brazilian)"
+msgstr ""
+
+#: InvenTree/settings.py:626
+msgid "Russian"
+msgstr ""
+
+#: InvenTree/settings.py:627
+msgid "Swedish"
+msgstr ""
+
+#: InvenTree/settings.py:628
+msgid "Thai"
+msgstr ""
+
+#: InvenTree/settings.py:629
+msgid "Turkish"
+msgstr ""
+
+#: InvenTree/settings.py:630
+msgid "Vietnamese"
+msgstr ""
+
+#: InvenTree/settings.py:631
+msgid "Chinese"
+msgstr ""
+
+#: InvenTree/status.py:99
+msgid "Background worker check failed"
+msgstr ""
+
+#: InvenTree/status.py:103
+msgid "Email backend not configured"
+msgstr ""
+
+#: InvenTree/status.py:106
+msgid "InvenTree system health checks failed"
+msgstr ""
+
+#: InvenTree/status_codes.py:99 InvenTree/status_codes.py:140
+#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:334
+msgid "Pending"
+msgstr ""
+
+#: InvenTree/status_codes.py:100
+msgid "Placed"
+msgstr ""
+
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
+#: order/templates/order/order_base.html:143
+#: order/templates/order/sales_order_base.html:133
+msgid "Complete"
+msgstr ""
+
+#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:308
+msgid "Cancelled"
+msgstr ""
+
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:143
+#: InvenTree/status_codes.py:183
+msgid "Lost"
+msgstr ""
+
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:186
+msgid "Returned"
+msgstr ""
+
+#: InvenTree/status_codes.py:141 order/models.py:1132
+#: templates/js/translated/order.js:3630 templates/js/translated/order.js:3979
+msgid "Shipped"
+msgstr ""
+
+#: InvenTree/status_codes.py:179
+msgid "OK"
+msgstr ""
+
+#: InvenTree/status_codes.py:180
+msgid "Attention needed"
+msgstr ""
+
+#: InvenTree/status_codes.py:181
+msgid "Damaged"
+msgstr ""
+
+#: InvenTree/status_codes.py:182
+msgid "Destroyed"
+msgstr ""
+
+#: InvenTree/status_codes.py:184
+msgid "Rejected"
+msgstr ""
+
+#: InvenTree/status_codes.py:185
+msgid "Quarantined"
+msgstr ""
+
+#: InvenTree/status_codes.py:259
+msgid "Legacy stock tracking entry"
+msgstr ""
+
+#: InvenTree/status_codes.py:261
+msgid "Stock item created"
+msgstr ""
+
+#: InvenTree/status_codes.py:263
+msgid "Edited stock item"
+msgstr ""
+
+#: InvenTree/status_codes.py:264
+msgid "Assigned serial number"
+msgstr ""
+
+#: InvenTree/status_codes.py:266
+msgid "Stock counted"
+msgstr ""
+
+#: InvenTree/status_codes.py:267
+msgid "Stock manually added"
+msgstr ""
+
+#: InvenTree/status_codes.py:268
+msgid "Stock manually removed"
+msgstr ""
+
+#: InvenTree/status_codes.py:270
+msgid "Location changed"
+msgstr ""
+
+#: InvenTree/status_codes.py:272
+msgid "Installed into assembly"
+msgstr ""
+
+#: InvenTree/status_codes.py:273
+msgid "Removed from assembly"
+msgstr ""
+
+#: InvenTree/status_codes.py:275
+msgid "Installed component item"
+msgstr ""
+
+#: InvenTree/status_codes.py:276
+msgid "Removed component item"
+msgstr ""
+
+#: InvenTree/status_codes.py:278
+msgid "Split from parent item"
+msgstr ""
+
+#: InvenTree/status_codes.py:279
+msgid "Split child item"
+msgstr ""
+
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080
+msgid "Merged stock items"
+msgstr ""
+
+#: InvenTree/status_codes.py:283
+msgid "Converted to variant"
+msgstr ""
+
+#: InvenTree/status_codes.py:285 templates/js/translated/table_filters.js:221
+msgid "Sent to customer"
+msgstr ""
+
+#: InvenTree/status_codes.py:286
+msgid "Returned from customer"
+msgstr ""
+
+#: InvenTree/status_codes.py:288
+msgid "Build order output created"
+msgstr ""
+
+#: InvenTree/status_codes.py:289
+msgid "Build order output completed"
+msgstr ""
+
+#: InvenTree/status_codes.py:290
+msgid "Consumed by build order"
+msgstr ""
+
+#: InvenTree/status_codes.py:292
+msgid "Received against purchase order"
+msgstr ""
+
+#: InvenTree/status_codes.py:307
+msgid "Production"
+msgstr ""
+
+#: InvenTree/validators.py:18
+msgid "Not a valid currency code"
+msgstr ""
+
+#: InvenTree/validators.py:45
+msgid "Invalid character in part name"
+msgstr ""
+
+#: InvenTree/validators.py:57
+#, python-brace-format
+msgid "IPN must match regex pattern {pat}"
+msgstr ""
+
+#: InvenTree/validators.py:68 InvenTree/validators.py:79
+#, python-brace-format
+msgid "Reference must match pattern {pattern}"
+msgstr ""
+
+#: InvenTree/validators.py:102 InvenTree/validators.py:118
+msgid "Overage value must not be negative"
+msgstr ""
+
+#: InvenTree/validators.py:120
+msgid "Overage must not exceed 100%"
+msgstr ""
+
+#: InvenTree/validators.py:127
+msgid "Invalid value for overage"
+msgstr ""
+
+#: InvenTree/views.py:520 templates/InvenTree/settings/user.html:22
+msgid "Edit User Information"
+msgstr ""
+
+#: InvenTree/views.py:532 templates/InvenTree/settings/user.html:19
+msgid "Set Password"
+msgstr ""
+
+#: InvenTree/views.py:554
+msgid "Password fields must match"
+msgstr ""
+
+#: InvenTree/views.py:563
+msgid "Wrong password provided"
+msgstr ""
+
+#: InvenTree/views.py:773 templates/navbar.html:152
+msgid "System Information"
+msgstr ""
+
+#: InvenTree/views.py:780 templates/navbar.html:163
+msgid "About InvenTree"
+msgstr ""
+
+#: build/api.py:219
+msgid "Build must be cancelled before it can be deleted"
+msgstr ""
+
+#: build/models.py:105
+msgid "Invalid choice for parent build"
+msgstr ""
+
+#: build/models.py:110 build/templates/build/build_base.html:9
+#: build/templates/build/build_base.html:27
+#: report/templates/report/inventree_build_order_base.html:105
+#: templates/email/build_order_completed.html:16
+#: templates/email/overdue_build_order.html:15
+#: templates/js/translated/build.js:764
+msgid "Build Order"
+msgstr ""
+
+#: build/models.py:111 build/templates/build/build_base.html:13
+#: build/templates/build/index.html:8 build/templates/build/index.html:12
+#: order/templates/order/sales_order_detail.html:120
+#: order/templates/order/so_sidebar.html:13
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:141
+#: templates/InvenTree/settings/sidebar.html:47 users/models.py:41
+msgid "Build Orders"
+msgstr ""
+
+#: build/models.py:165
+msgid "Build Order Reference"
+msgstr ""
+
+#: build/models.py:166 order/models.py:240 order/models.py:627
+#: order/models.py:908 part/models.py:2671
+#: part/templates/part/upload_bom.html:54
+#: report/templates/report/inventree_po_report.html:91
+#: report/templates/report/inventree_so_report.html:92
+#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853
+#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2251
+#: templates/js/translated/order.js:2484 templates/js/translated/order.js:3823
+#: templates/js/translated/order.js:4331
+msgid "Reference"
+msgstr ""
+
+#: build/models.py:177
+msgid "Brief description of the build"
+msgstr ""
+
+#: build/models.py:185 build/templates/build/build_base.html:172
+#: build/templates/build/detail.html:87
+msgid "Parent Build"
+msgstr ""
+
+#: build/models.py:186
+msgid "BuildOrder to which this build is allocated"
+msgstr ""
+
+#: build/models.py:191 build/templates/build/build_base.html:80
+#: build/templates/build/detail.html:29 company/models.py:679
+#: order/models.py:1005 order/models.py:1116 order/models.py:1117
+#: part/models.py:343 part/models.py:2193 part/models.py:2208
+#: part/models.py:2227 part/models.py:2245 part/models.py:2344
+#: part/models.py:2471 part/models.py:2561 part/models.py:2646
+#: part/models.py:2922 part/serializers.py:814
+#: part/templates/part/part_app_base.html:8
+#: part/templates/part/part_pricing.html:12
+#: part/templates/part/upload_bom.html:52
+#: report/templates/report/inventree_build_order_base.html:109
+#: report/templates/report/inventree_po_report.html:89
+#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86
+#: stock/serializers.py:490 templates/InvenTree/search.html:82
+#: templates/email/build_order_completed.html:17
+#: templates/email/build_order_required_stock.html:17
+#: templates/email/low_stock_notification.html:16
+#: templates/email/overdue_build_order.html:16
+#: templates/js/translated/barcode.js:435 templates/js/translated/bom.js:552
+#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800
+#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682
+#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517
+#: templates/js/translated/company.js:301
+#: templates/js/translated/company.js:531
+#: templates/js/translated/company.js:643
+#: templates/js/translated/company.js:904 templates/js/translated/order.js:106
+#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1638
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:3185
+#: templates/js/translated/order.js:3581 templates/js/translated/order.js:3807
+#: templates/js/translated/part.js:1172 templates/js/translated/part.js:1244
+#: templates/js/translated/part.js:1441 templates/js/translated/stock.js:586
+#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958
+#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2500
+#: templates/js/translated/stock.js:2695 templates/js/translated/stock.js:2829
+msgid "Part"
+msgstr ""
+
+#: build/models.py:199
+msgid "Select part to build"
+msgstr ""
+
+#: build/models.py:204
+msgid "Sales Order Reference"
+msgstr ""
+
+#: build/models.py:208
+msgid "SalesOrder to which this build is allocated"
+msgstr ""
+
+#: build/models.py:213 build/serializers.py:800
+#: templates/js/translated/build.js:2114 templates/js/translated/order.js:3173
+msgid "Source Location"
+msgstr ""
+
+#: build/models.py:217
+msgid ""
+"Select location to take stock from for this build (leave blank to take from "
+"any stock location)"
+msgstr ""
+
+#: build/models.py:222
+msgid "Destination Location"
+msgstr ""
+
+#: build/models.py:226
+msgid "Select location where the completed items will be stored"
+msgstr ""
+
+#: build/models.py:230
+msgid "Build Quantity"
+msgstr ""
+
+#: build/models.py:233
+msgid "Number of stock items to build"
+msgstr ""
+
+#: build/models.py:237
+msgid "Completed items"
+msgstr ""
+
+#: build/models.py:239
+msgid "Number of stock items which have been completed"
+msgstr ""
+
+#: build/models.py:243
+msgid "Build Status"
+msgstr ""
+
+#: build/models.py:247
+msgid "Build status code"
+msgstr ""
+
+#: build/models.py:251 build/serializers.py:225 order/serializers.py:464
+#: stock/models.py:662 templates/js/translated/order.js:1496
+msgid "Batch Code"
+msgstr ""
+
+#: build/models.py:255 build/serializers.py:226
+msgid "Batch code for this build output"
+msgstr ""
+
+#: build/models.py:258 order/models.py:86 part/models.py:938
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2844
+msgid "Creation Date"
+msgstr ""
+
+#: build/models.py:262 order/models.py:652
+msgid "Target completion date"
+msgstr ""
+
+#: build/models.py:263
+msgid ""
+"Target date for build completion. Build will be overdue after this date."
+msgstr ""
+
+#: build/models.py:266 order/models.py:286
+#: templates/js/translated/build.js:2594
+msgid "Completion Date"
+msgstr ""
+
+#: build/models.py:272
+msgid "completed by"
+msgstr ""
+
+#: build/models.py:280 templates/js/translated/build.js:2562
+msgid "Issued by"
+msgstr ""
+
+#: build/models.py:281
+msgid "User who issued this build order"
+msgstr ""
+
+#: build/models.py:289 build/templates/build/build_base.html:193
+#: build/templates/build/detail.html:115 order/models.py:100
+#: order/templates/order/order_base.html:185
+#: order/templates/order/sales_order_base.html:183 part/models.py:942
+#: report/templates/report/inventree_build_order_base.html:158
+#: templates/js/translated/build.js:2574 templates/js/translated/order.js:2022
+msgid "Responsible"
+msgstr ""
+
+#: build/models.py:290
+msgid "User responsible for this build order"
+msgstr ""
+
+#: build/models.py:295 build/templates/build/detail.html:101
+#: company/templates/company/manufacturer_part.html:107
+#: company/templates/company/supplier_part.html:165
+#: part/templates/part/part_base.html:346 stock/models.py:656
+#: stock/templates/stock/item_base.html:203
+msgid "External Link"
+msgstr ""
+
+#: build/models.py:300
+msgid "Extra build notes"
+msgstr ""
+
+#: build/models.py:538
+#, python-brace-format
+msgid "Build order {build} has been completed"
+msgstr ""
+
+#: build/models.py:544
+msgid "A build order has been completed"
+msgstr ""
+
+#: build/models.py:723
+msgid "No build output specified"
+msgstr ""
+
+#: build/models.py:726
+msgid "Build output is already completed"
+msgstr ""
+
+#: build/models.py:729
+msgid "Build output does not match Build Order"
+msgstr ""
+
+#: build/models.py:1169
+msgid ""
+"Build item must specify a build output, as master part is marked as trackable"
+msgstr ""
+
+#: build/models.py:1178
+#, python-brace-format
+msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
+msgstr ""
+
+#: build/models.py:1188 order/models.py:1383
+msgid "Stock item is over-allocated"
+msgstr ""
+
+#: build/models.py:1194 order/models.py:1386
+msgid "Allocation quantity must be greater than zero"
+msgstr ""
+
+#: build/models.py:1200
+msgid "Quantity must be 1 for serialized stock"
+msgstr ""
+
+#: build/models.py:1257
+msgid "Selected stock item not found in BOM"
+msgstr ""
+
+#: build/models.py:1326 stock/templates/stock/item_base.html:175
+#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496
+#: templates/navbar.html:38
+msgid "Build"
+msgstr ""
+
+#: build/models.py:1327
+msgid "Build to allocate parts"
+msgstr ""
+
+#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1035
+#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754
+#: stock/serializers.py:880 stock/templates/stock/item_base.html:10
+#: stock/templates/stock/item_base.html:23
+#: stock/templates/stock/item_base.html:197
+#: templates/js/translated/build.js:774 templates/js/translated/build.js:779
+#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679
+#: templates/js/translated/order.js:107 templates/js/translated/order.js:3186
+#: templates/js/translated/order.js:3488 templates/js/translated/order.js:3493
+#: templates/js/translated/order.js:3588 templates/js/translated/order.js:3680
+#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752
+#: templates/js/translated/stock.js:2573
+msgid "Stock Item"
+msgstr ""
+
+#: build/models.py:1344
+msgid "Source stock item"
+msgstr ""
+
+#: build/models.py:1356 build/serializers.py:193
+#: build/templates/build/build_base.html:85
+#: build/templates/build/detail.html:34 common/models.py:1701
+#: company/templates/company/supplier_part.html:291 order/models.py:901
+#: order/models.py:1427 order/serializers.py:1209
+#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40
+#: part/models.py:2662 part/templates/part/detail.html:951
+#: part/templates/part/detail.html:1037
+#: part/templates/part/part_pricing.html:16
+#: part/templates/part/upload_bom.html:53
+#: report/templates/report/inventree_build_order_base.html:113
+#: report/templates/report/inventree_po_report.html:90
+#: report/templates/report/inventree_so_report.html:91
+#: report/templates/report/inventree_test_report_base.html:81
+#: report/templates/report/inventree_test_report_base.html:139
+#: stock/serializers.py:291 stock/templates/stock/item_base.html:290
+#: stock/templates/stock/item_base.html:298
+#: templates/email/build_order_completed.html:18
+#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691
+#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458
+#: templates/js/translated/build.js:610 templates/js/translated/build.js:801
+#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708
+#: templates/js/translated/build.js:2129
+#: templates/js/translated/model_renderers.js:120
+#: templates/js/translated/order.js:123 templates/js/translated/order.js:1137
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:2490
+#: templates/js/translated/order.js:3187 templates/js/translated/order.js:3507
+#: templates/js/translated/order.js:3594 templates/js/translated/order.js:3686
+#: templates/js/translated/order.js:3829 templates/js/translated/order.js:4337
+#: templates/js/translated/part.js:1036 templates/js/translated/part.js:2205
+#: templates/js/translated/part.js:2674 templates/js/translated/part.js:2715
+#: templates/js/translated/part.js:2793 templates/js/translated/stock.js:458
+#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2707
+msgid "Quantity"
+msgstr ""
+
+#: build/models.py:1357
+msgid "Stock quantity to allocate to build"
+msgstr ""
+
+#: build/models.py:1365
+msgid "Install into"
+msgstr ""
+
+#: build/models.py:1366
+msgid "Destination stock item"
+msgstr ""
+
+#: build/serializers.py:138 build/serializers.py:674
+#: templates/js/translated/build.js:1199
+msgid "Build Output"
+msgstr ""
+
+#: build/serializers.py:150
+msgid "Build output does not match the parent build"
+msgstr ""
+
+#: build/serializers.py:154
+msgid "Output part does not match BuildOrder part"
+msgstr ""
+
+#: build/serializers.py:158
+msgid "This build output has already been completed"
+msgstr ""
+
+#: build/serializers.py:169
+msgid "This build output is not fully allocated"
+msgstr ""
+
+#: build/serializers.py:194
+msgid "Enter quantity for build output"
+msgstr ""
+
+#: build/serializers.py:208 build/serializers.py:665 order/models.py:318
+#: order/serializers.py:304 order/serializers.py:459 part/serializers.py:545
+#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251
+#: stock/serializers.py:300
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:215
+msgid "Integer quantity required for trackable parts"
+msgstr ""
+
+#: build/serializers.py:218
+msgid ""
+"Integer quantity required, as the bill of materials contains trackable parts"
+msgstr ""
+
+#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213
+#: stock/serializers.py:309 templates/js/translated/order.js:1507
+#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459
+msgid "Serial Numbers"
+msgstr ""
+
+#: build/serializers.py:233
+msgid "Enter serial numbers for build outputs"
+msgstr ""
+
+#: build/serializers.py:246
+msgid "Auto Allocate Serial Numbers"
+msgstr ""
+
+#: build/serializers.py:247
+msgid "Automatically allocate required items with matching serial numbers"
+msgstr ""
+
+#: build/serializers.py:278 stock/api.py:577
+msgid "The following serial numbers already exist"
+msgstr ""
+
+#: build/serializers.py:327 build/serializers.py:396
+msgid "A list of build outputs must be provided"
+msgstr ""
+
+#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552
+#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532
+#: stock/serializers.py:915 stock/serializers.py:1148
+#: stock/templates/stock/item_base.html:388
+#: templates/js/translated/barcode.js:436
+#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786
+#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1534
+#: templates/js/translated/order.js:3500 templates/js/translated/order.js:3605
+#: templates/js/translated/order.js:3613 templates/js/translated/order.js:3694
+#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588
+#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960
+#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2514
+msgid "Location"
+msgstr ""
+
+#: build/serializers.py:367
+msgid "Location for completed build outputs"
+msgstr ""
+
+#: build/serializers.py:373 build/templates/build/build_base.html:145
+#: build/templates/build/detail.html:62 order/models.py:646
+#: order/serializers.py:482 stock/templates/stock/item_base.html:421
+#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546
+#: templates/js/translated/order.js:1643 templates/js/translated/order.js:1992
+#: templates/js/translated/order.js:2836 templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:2591 templates/js/translated/stock.js:2723
+msgid "Status"
+msgstr ""
+
+#: build/serializers.py:379
+msgid "Accept Incomplete Allocation"
+msgstr ""
+
+#: build/serializers.py:380
+msgid "Complete outputs if stock has not been fully allocated"
+msgstr ""
+
+#: build/serializers.py:449
+msgid "Remove Allocated Stock"
+msgstr ""
+
+#: build/serializers.py:450
+msgid "Subtract any stock which has already been allocated to this build"
+msgstr ""
+
+#: build/serializers.py:456
+msgid "Remove Incomplete Outputs"
+msgstr ""
+
+#: build/serializers.py:457
+msgid "Delete any build outputs which have not been completed"
+msgstr ""
+
+#: build/serializers.py:485
+msgid "Accept as consumed by this build order"
+msgstr ""
+
+#: build/serializers.py:486
+msgid "Deallocate before completing this build order"
+msgstr ""
+
+#: build/serializers.py:494
+msgid "Overallocated Stock"
+msgstr ""
+
+#: build/serializers.py:496
+msgid "How do you want to handle extra stock items assigned to the build order"
+msgstr ""
+
+#: build/serializers.py:506
+msgid "Some stock items have been overallocated"
+msgstr ""
+
+#: build/serializers.py:511
+msgid "Accept Unallocated"
+msgstr ""
+
+#: build/serializers.py:512
+msgid ""
+"Accept that stock items have not been fully allocated to this build order"
+msgstr ""
+
+#: build/serializers.py:522 templates/js/translated/build.js:227
+msgid "Required stock has not been fully allocated"
+msgstr ""
+
+#: build/serializers.py:527 order/serializers.py:208 order/serializers.py:1103
+msgid "Accept Incomplete"
+msgstr ""
+
+#: build/serializers.py:528
+msgid ""
+"Accept that the required number of build outputs have not been completed"
+msgstr ""
+
+#: build/serializers.py:538 templates/js/translated/build.js:231
+msgid "Required build quantity has not been completed"
+msgstr ""
+
+#: build/serializers.py:547
+msgid "Build order has incomplete outputs"
+msgstr ""
+
+#: build/serializers.py:577 build/serializers.py:622 part/models.py:2780
+#: part/models.py:2914
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:587
+msgid "Build output"
+msgstr ""
+
+#: build/serializers.py:595
+msgid "Build output must point to the same build"
+msgstr ""
+
+#: build/serializers.py:636
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:651 stock/serializers.py:767
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:709 order/serializers.py:1093
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:715
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:722
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:727
+msgid "This stock item has already been allocated to this build output"
+msgstr ""
+
+#: build/serializers.py:750 order/serializers.py:1373
+msgid "Allocation items must be provided"
+msgstr ""
+
+#: build/serializers.py:801
+msgid ""
+"Stock location where parts are to be sourced (leave blank to take from any "
+"location)"
+msgstr ""
+
+#: build/serializers.py:809
+msgid "Exclude Location"
+msgstr ""
+
+#: build/serializers.py:810
+msgid "Exclude stock items from this selected location"
+msgstr ""
+
+#: build/serializers.py:815
+msgid "Interchangeable Stock"
+msgstr ""
+
+#: build/serializers.py:816
+msgid "Stock items in multiple locations can be used interchangeably"
+msgstr ""
+
+#: build/serializers.py:821
+msgid "Substitute Stock"
+msgstr ""
+
+#: build/serializers.py:822
+msgid "Allow allocation of substitute parts"
+msgstr ""
+
+#: build/tasks.py:100
+msgid "Stock required for build order"
+msgstr ""
+
+#: build/tasks.py:118
+msgid "Overdue Build Order"
+msgstr ""
+
+#: build/tasks.py:123
+#, python-brace-format
+msgid "Build order {bo} is now overdue"
+msgstr ""
+
+#: build/templates/build/build_base.html:39
+#: order/templates/order/order_base.html:28
+#: order/templates/order/sales_order_base.html:38
+msgid "Print actions"
+msgstr ""
+
+#: build/templates/build/build_base.html:43
+msgid "Print build order report"
+msgstr ""
+
+#: build/templates/build/build_base.html:50
+msgid "Build actions"
+msgstr ""
+
+#: build/templates/build/build_base.html:54
+msgid "Edit Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:56
+msgid "Cancel Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:59
+msgid "Duplicate Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:62
+msgid "Delete Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:67
+#: build/templates/build/build_base.html:68
+msgid "Complete Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:90
+msgid "Build Description"
+msgstr ""
+
+#: build/templates/build/build_base.html:98
+msgid "No build outputs have been created for this build order"
+msgstr ""
+
+#: build/templates/build/build_base.html:104
+#, python-format
+msgid "This Build Order is allocated to Sales Order %(link)s"
+msgstr ""
+
+#: build/templates/build/build_base.html:111
+#, python-format
+msgid "This Build Order is a child of Build Order %(link)s"
+msgstr ""
+
+#: build/templates/build/build_base.html:118
+msgid "Build Order is ready to mark as completed"
+msgstr ""
+
+#: build/templates/build/build_base.html:123
+msgid "Build Order cannot be completed as outstanding outputs remain"
+msgstr ""
+
+#: build/templates/build/build_base.html:128
+msgid "Required build quantity has not yet been completed"
+msgstr ""
+
+#: build/templates/build/build_base.html:133
+msgid "Stock has not been fully allocated to this Build Order"
+msgstr ""
+
+#: build/templates/build/build_base.html:154
+#: build/templates/build/detail.html:131 order/models.py:914
+#: order/templates/order/order_base.html:171
+#: order/templates/order/sales_order_base.html:164
+#: report/templates/report/inventree_build_order_base.html:125
+#: templates/js/translated/build.js:2586 templates/js/translated/order.js:2009
+#: templates/js/translated/order.js:2351 templates/js/translated/order.js:2852
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1051
+msgid "Target Date"
+msgstr ""
+
+#: build/templates/build/build_base.html:159
+#, python-format
+msgid "This build was due on %(target)s"
+msgstr ""
+
+#: build/templates/build/build_base.html:159
+#: build/templates/build/build_base.html:204
+#: order/templates/order/order_base.html:107
+#: order/templates/order/sales_order_base.html:94
+#: templates/js/translated/table_filters.js:320
+#: templates/js/translated/table_filters.js:361
+#: templates/js/translated/table_filters.js:391
+msgid "Overdue"
+msgstr ""
+
+#: build/templates/build/build_base.html:166
+#: build/templates/build/detail.html:67 build/templates/build/detail.html:142
+#: order/templates/order/sales_order_base.html:171
+#: templates/js/translated/table_filters.js:400
+msgid "Completed"
+msgstr ""
+
+#: build/templates/build/build_base.html:179
+#: build/templates/build/detail.html:94 order/models.py:1109
+#: order/models.py:1203 order/models.py:1334
+#: order/templates/order/sales_order_base.html:9
+#: order/templates/order/sales_order_base.html:28
+#: report/templates/report/inventree_build_order_base.html:135
+#: report/templates/report/inventree_so_report.html:77
+#: stock/templates/stock/item_base.html:368
+#: templates/email/overdue_sales_order.html:15
+#: templates/js/translated/order.js:2798
+msgid "Sales Order"
+msgstr ""
+
+#: build/templates/build/build_base.html:186
+#: build/templates/build/detail.html:108
+#: report/templates/report/inventree_build_order_base.html:152
+msgid "Issued By"
+msgstr ""
+
+#: build/templates/build/build_base.html:256
+msgid "Delete Build Order"
+msgstr ""
+
+#: build/templates/build/detail.html:15
+msgid "Build Details"
+msgstr ""
+
+#: build/templates/build/detail.html:38
+msgid "Stock Source"
+msgstr ""
+
+#: build/templates/build/detail.html:43
+msgid "Stock can be taken from any available location."
+msgstr ""
+
+#: build/templates/build/detail.html:49 order/models.py:1027
+#: templates/js/translated/order.js:1644 templates/js/translated/order.js:2393
+msgid "Destination"
+msgstr ""
+
+#: build/templates/build/detail.html:56
+msgid "Destination location not specified"
+msgstr ""
+
+#: build/templates/build/detail.html:73
+msgid "Allocated Parts"
+msgstr ""
+
+#: build/templates/build/detail.html:80
+#: stock/templates/stock/item_base.html:168
+#: templates/js/translated/build.js:1215
+#: templates/js/translated/model_renderers.js:124
+#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1839
+#: templates/js/translated/stock.js:2730
+#: templates/js/translated/table_filters.js:159
+#: templates/js/translated/table_filters.js:250
+msgid "Batch"
+msgstr ""
+
+#: build/templates/build/detail.html:126
+#: order/templates/order/order_base.html:158
+#: order/templates/order/sales_order_base.html:158
+#: templates/js/translated/build.js:2554
+msgid "Created"
+msgstr ""
+
+#: build/templates/build/detail.html:137
+msgid "No target date set"
+msgstr ""
+
+#: build/templates/build/detail.html:146
+msgid "Build not complete"
+msgstr ""
+
+#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17
+msgid "Child Build Orders"
+msgstr ""
+
+#: build/templates/build/detail.html:172
+msgid "Allocate Stock to Build"
+msgstr ""
+
+#: build/templates/build/detail.html:176 templates/js/translated/build.js:1942
+msgid "Unallocate stock"
+msgstr ""
+
+#: build/templates/build/detail.html:177
+msgid "Unallocate Stock"
+msgstr ""
+
+#: build/templates/build/detail.html:179
+msgid "Automatically allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:180
+msgid "Auto Allocate"
+msgstr ""
+
+#: build/templates/build/detail.html:182
+msgid "Manually allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8
+msgid "Allocate Stock"
+msgstr ""
+
+#: build/templates/build/detail.html:186
+msgid "Order required parts"
+msgstr ""
+
+#: build/templates/build/detail.html:187
+#: company/templates/company/detail.html:37
+#: company/templates/company/detail.html:85
+#: part/templates/part/category.html:183 templates/js/translated/order.js:1177
+msgid "Order Parts"
+msgstr ""
+
+#: build/templates/build/detail.html:199
+msgid "Untracked stock has been fully allocated for this Build Order"
+msgstr ""
+
+#: build/templates/build/detail.html:203
+msgid "Untracked stock has not been fully allocated for this Build Order"
+msgstr ""
+
+#: build/templates/build/detail.html:210
+msgid "Allocate selected items"
+msgstr ""
+
+#: build/templates/build/detail.html:220
+msgid "This Build Order does not have any associated untracked BOM items"
+msgstr ""
+
+#: build/templates/build/detail.html:229
+msgid "Incomplete Build Outputs"
+msgstr ""
+
+#: build/templates/build/detail.html:233
+msgid "Create new build output"
+msgstr ""
+
+#: build/templates/build/detail.html:234
+msgid "New Build Output"
+msgstr ""
+
+#: build/templates/build/detail.html:248
+msgid "Output Actions"
+msgstr ""
+
+#: build/templates/build/detail.html:253
+msgid "Complete selected build outputs"
+msgstr ""
+
+#: build/templates/build/detail.html:254
+msgid "Complete outputs"
+msgstr ""
+
+#: build/templates/build/detail.html:258
+msgid "Delete selected build outputs"
+msgstr ""
+
+#: build/templates/build/detail.html:259
+msgid "Delete outputs"
+msgstr ""
+
+#: build/templates/build/detail.html:267
+#: stock/templates/stock/location.html:202 templates/stock_table.html:27
+msgid "Printing Actions"
+msgstr ""
+
+#: build/templates/build/detail.html:271 build/templates/build/detail.html:272
+#: stock/templates/stock/location.html:206 templates/stock_table.html:31
+msgid "Print labels"
+msgstr ""
+
+#: build/templates/build/detail.html:294
+msgid "Completed Build Outputs"
+msgstr ""
+
+#: build/templates/build/detail.html:306 build/templates/build/sidebar.html:19
+#: company/templates/company/manufacturer_part.html:151
+#: company/templates/company/manufacturer_part_sidebar.html:9
+#: order/templates/order/po_sidebar.html:9
+#: order/templates/order/purchase_order_detail.html:82
+#: order/templates/order/sales_order_detail.html:135
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:212
+#: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:117
+#: stock/templates/stock/stock_sidebar.html:23
+msgid "Attachments"
+msgstr ""
+
+#: build/templates/build/detail.html:321
+msgid "Build Notes"
+msgstr ""
+
+#: build/templates/build/detail.html:504
+msgid "Allocation Complete"
+msgstr ""
+
+#: build/templates/build/detail.html:505
+msgid "All untracked stock items have been allocated"
+msgstr ""
+
+#: build/templates/build/index.html:18 part/templates/part/detail.html:318
+msgid "New Build Order"
+msgstr ""
+
+#: build/templates/build/index.html:37 build/templates/build/index.html:38
+msgid "Print Build Orders"
+msgstr ""
+
+#: build/templates/build/sidebar.html:5
+msgid "Build Order Details"
+msgstr ""
+
+#: build/templates/build/sidebar.html:12
+msgid "Incomplete Outputs"
+msgstr ""
+
+#: build/templates/build/sidebar.html:15
+msgid "Completed Outputs"
+msgstr ""
+
+#: common/files.py:62
+msgid "Unsupported file format: {ext.upper()}"
+msgstr ""
+
+#: common/files.py:64
+msgid "Error reading file (invalid encoding)"
+msgstr ""
+
+#: common/files.py:69
+msgid "Error reading file (invalid format)"
+msgstr ""
+
+#: common/files.py:71
+msgid "Error reading file (incorrect dimension)"
+msgstr ""
+
+#: common/files.py:73
+msgid "Error reading file (data could be corrupted)"
+msgstr ""
+
+#: common/forms.py:29
+msgid "File"
+msgstr ""
+
+#: common/forms.py:30
+msgid "Select file to upload"
+msgstr ""
+
+#: common/forms.py:44
+msgid "{name.title()} File"
+msgstr ""
+
+#: common/forms.py:45
+#, python-brace-format
+msgid "Select {name} file to upload"
+msgstr ""
+
+#: common/models.py:451
+msgid "Settings key (must be unique - case insensitive)"
+msgstr ""
+
+#: common/models.py:453
+msgid "Settings value"
+msgstr ""
+
+#: common/models.py:494
+msgid "Chosen value is not a valid option"
+msgstr ""
+
+#: common/models.py:511
+msgid "Value must be a boolean value"
+msgstr ""
+
+#: common/models.py:522
+msgid "Value must be an integer value"
+msgstr ""
+
+#: common/models.py:567
+msgid "Key string must be unique"
+msgstr ""
+
+#: common/models.py:751
+msgid "No group"
+msgstr ""
+
+#: common/models.py:804
+msgid "Restart required"
+msgstr ""
+
+#: common/models.py:805
+msgid "A setting has been changed which requires a server restart"
+msgstr ""
+
+#: common/models.py:812
+msgid "Server Instance Name"
+msgstr ""
+
+#: common/models.py:814
+msgid "String descriptor for the server instance"
+msgstr ""
+
+#: common/models.py:819
+msgid "Use instance name"
+msgstr ""
+
+#: common/models.py:820
+msgid "Use the instance name in the title-bar"
+msgstr ""
+
+#: common/models.py:826
+msgid "Restrict showing `about`"
+msgstr ""
+
+#: common/models.py:827
+msgid "Show the `about` modal only to superusers"
+msgstr ""
+
+#: common/models.py:833 company/models.py:93 company/models.py:94
+msgid "Company name"
+msgstr ""
+
+#: common/models.py:834
+msgid "Internal company name"
+msgstr ""
+
+#: common/models.py:839
+msgid "Base URL"
+msgstr ""
+
+#: common/models.py:840
+msgid "Base URL for server instance"
+msgstr ""
+
+#: common/models.py:847
+msgid "Default Currency"
+msgstr ""
+
+#: common/models.py:848
+msgid "Default currency"
+msgstr ""
+
+#: common/models.py:854
+msgid "Download from URL"
+msgstr ""
+
+#: common/models.py:855
+msgid "Allow download of remote images and files from external URL"
+msgstr ""
+
+#: common/models.py:861
+msgid "Download Size Limit"
+msgstr ""
+
+#: common/models.py:862
+msgid "Maximum allowable download size for remote image"
+msgstr ""
+
+#: common/models.py:873
+msgid "Require confirm"
+msgstr ""
+
+#: common/models.py:874
+msgid "Require explicit user confirmation for certain action."
+msgstr ""
+
+#: common/models.py:880
+msgid "Tree Depth"
+msgstr ""
+
+#: common/models.py:881
+msgid ""
+"Default tree depth for treeview. Deeper levels can be lazy loaded as they "
+"are needed."
+msgstr ""
+
+#: common/models.py:890 templates/InvenTree/settings/sidebar.html:33
+msgid "Barcode Support"
+msgstr ""
+
+#: common/models.py:891
+msgid "Enable barcode scanner support"
+msgstr ""
+
+#: common/models.py:897
+msgid "Barcode Webcam Support"
+msgstr ""
+
+#: common/models.py:898
+msgid "Allow barcode scanning via webcam in browser"
+msgstr ""
+
+#: common/models.py:904
+msgid "IPN Regex"
+msgstr ""
+
+#: common/models.py:905
+msgid "Regular expression pattern for matching Part IPN"
+msgstr ""
+
+#: common/models.py:909
+msgid "Allow Duplicate IPN"
+msgstr ""
+
+#: common/models.py:910
+msgid "Allow multiple parts to share the same IPN"
+msgstr ""
+
+#: common/models.py:916
+msgid "Allow Editing IPN"
+msgstr ""
+
+#: common/models.py:917
+msgid "Allow changing the IPN value while editing a part"
+msgstr ""
+
+#: common/models.py:923
+msgid "Copy Part BOM Data"
+msgstr ""
+
+#: common/models.py:924
+msgid "Copy BOM data by default when duplicating a part"
+msgstr ""
+
+#: common/models.py:930
+msgid "Copy Part Parameter Data"
+msgstr ""
+
+#: common/models.py:931
+msgid "Copy parameter data by default when duplicating a part"
+msgstr ""
+
+#: common/models.py:937
+msgid "Copy Part Test Data"
+msgstr ""
+
+#: common/models.py:938
+msgid "Copy test data by default when duplicating a part"
+msgstr ""
+
+#: common/models.py:944
+msgid "Copy Category Parameter Templates"
+msgstr ""
+
+#: common/models.py:945
+msgid "Copy category parameter templates when creating a part"
+msgstr ""
+
+#: common/models.py:951 part/models.py:2473 report/models.py:158
+#: templates/js/translated/table_filters.js:38
+#: templates/js/translated/table_filters.js:484
+msgid "Template"
+msgstr ""
+
+#: common/models.py:952
+msgid "Parts are templates by default"
+msgstr ""
+
+#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1454
+#: templates/js/translated/table_filters.js:176
+#: templates/js/translated/table_filters.js:447
+msgid "Assembly"
+msgstr ""
+
+#: common/models.py:959
+msgid "Parts can be assembled from other components by default"
+msgstr ""
+
+#: common/models.py:965 part/models.py:900
+#: templates/js/translated/table_filters.js:455
+msgid "Component"
+msgstr ""
+
+#: common/models.py:966
+msgid "Parts can be used as sub-components by default"
+msgstr ""
+
+#: common/models.py:972 part/models.py:911
+msgid "Purchaseable"
+msgstr ""
+
+#: common/models.py:973
+msgid "Parts are purchaseable by default"
+msgstr ""
+
+#: common/models.py:979 part/models.py:916
+#: templates/js/translated/table_filters.js:476
+msgid "Salable"
+msgstr ""
+
+#: common/models.py:980
+msgid "Parts are salable by default"
+msgstr ""
+
+#: common/models.py:986 part/models.py:906
+#: templates/js/translated/table_filters.js:46
+#: templates/js/translated/table_filters.js:108
+#: templates/js/translated/table_filters.js:488
+msgid "Trackable"
+msgstr ""
+
+#: common/models.py:987
+msgid "Parts are trackable by default"
+msgstr ""
+
+#: common/models.py:993 part/models.py:926
+#: part/templates/part/part_base.html:151
+#: templates/js/translated/table_filters.js:42
+#: templates/js/translated/table_filters.js:492
+msgid "Virtual"
+msgstr ""
+
+#: common/models.py:994
+msgid "Parts are virtual by default"
+msgstr ""
+
+#: common/models.py:1000
+msgid "Show Import in Views"
+msgstr ""
+
+#: common/models.py:1001
+msgid "Display the import wizard in some part views"
+msgstr ""
+
+#: common/models.py:1007
+msgid "Show Price in Forms"
+msgstr ""
+
+#: common/models.py:1008
+msgid "Display part price in some forms"
+msgstr ""
+
+#: common/models.py:1019
+msgid "Show Price in BOM"
+msgstr ""
+
+#: common/models.py:1020
+msgid "Include pricing information in BOM tables"
+msgstr ""
+
+#: common/models.py:1031
+msgid "Show Price History"
+msgstr ""
+
+#: common/models.py:1032
+msgid "Display historical pricing for Part"
+msgstr ""
+
+#: common/models.py:1038
+msgid "Show related parts"
+msgstr ""
+
+#: common/models.py:1039
+msgid "Display related parts for a part"
+msgstr ""
+
+#: common/models.py:1045
+msgid "Create initial stock"
+msgstr ""
+
+#: common/models.py:1046
+msgid "Create initial stock on part creation"
+msgstr ""
+
+#: common/models.py:1052
+msgid "Internal Prices"
+msgstr ""
+
+#: common/models.py:1053
+msgid "Enable internal prices for parts"
+msgstr ""
+
+#: common/models.py:1059
+msgid "Internal Price as BOM-Price"
+msgstr ""
+
+#: common/models.py:1060
+msgid "Use the internal price (if set) in BOM-price calculations"
+msgstr ""
+
+#: common/models.py:1066
+msgid "Part Name Display Format"
+msgstr ""
+
+#: common/models.py:1067
+msgid "Format to display the part name"
+msgstr ""
+
+#: common/models.py:1074
+msgid "Part Category Default Icon"
+msgstr ""
+
+#: common/models.py:1075
+msgid "Part category default icon (empty means no icon)"
+msgstr ""
+
+#: common/models.py:1080
+msgid "Enable label printing"
+msgstr ""
+
+#: common/models.py:1081
+msgid "Enable label printing from the web interface"
+msgstr ""
+
+#: common/models.py:1087
+msgid "Label Image DPI"
+msgstr ""
+
+#: common/models.py:1088
+msgid ""
+"DPI resolution when generating image files to supply to label printing "
+"plugins"
+msgstr ""
+
+#: common/models.py:1097
+msgid "Enable Reports"
+msgstr ""
+
+#: common/models.py:1098
+msgid "Enable generation of reports"
+msgstr ""
+
+#: common/models.py:1104 templates/stats.html:25
+msgid "Debug Mode"
+msgstr ""
+
+#: common/models.py:1105
+msgid "Generate reports in debug mode (HTML output)"
+msgstr ""
+
+#: common/models.py:1111
+msgid "Page Size"
+msgstr ""
+
+#: common/models.py:1112
+msgid "Default page size for PDF reports"
+msgstr ""
+
+#: common/models.py:1122
+msgid "Enable Test Reports"
+msgstr ""
+
+#: common/models.py:1123
+msgid "Enable generation of test reports"
+msgstr ""
+
+#: common/models.py:1129
+msgid "Attach Test Reports"
+msgstr ""
+
+#: common/models.py:1130
+msgid ""
+"When printing a Test Report, attach a copy of the Test Report to the "
+"associated Stock Item"
+msgstr ""
+
+#: common/models.py:1136
+msgid "Batch Code Template"
+msgstr ""
+
+#: common/models.py:1137
+msgid "Template for generating default batch codes for stock items"
+msgstr ""
+
+#: common/models.py:1142
+msgid "Stock Expiry"
+msgstr ""
+
+#: common/models.py:1143
+msgid "Enable stock expiry functionality"
+msgstr ""
+
+#: common/models.py:1149
+msgid "Sell Expired Stock"
+msgstr ""
+
+#: common/models.py:1150
+msgid "Allow sale of expired stock"
+msgstr ""
+
+#: common/models.py:1156
+msgid "Stock Stale Time"
+msgstr ""
+
+#: common/models.py:1157
+msgid "Number of days stock items are considered stale before expiring"
+msgstr ""
+
+#: common/models.py:1159
+msgid "days"
+msgstr ""
+
+#: common/models.py:1164
+msgid "Build Expired Stock"
+msgstr ""
+
+#: common/models.py:1165
+msgid "Allow building with expired stock"
+msgstr ""
+
+#: common/models.py:1171
+msgid "Stock Ownership Control"
+msgstr ""
+
+#: common/models.py:1172
+msgid "Enable ownership control over stock locations and items"
+msgstr ""
+
+#: common/models.py:1178
+msgid "Stock Location Default Icon"
+msgstr ""
+
+#: common/models.py:1179
+msgid "Stock location default icon (empty means no icon)"
+msgstr ""
+
+#: common/models.py:1184
+msgid "Build Order Reference Pattern"
+msgstr ""
+
+#: common/models.py:1185
+msgid "Required pattern for generating Build Order reference field"
+msgstr ""
+
+#: common/models.py:1191
+msgid "Sales Order Reference Pattern"
+msgstr ""
+
+#: common/models.py:1192
+msgid "Required pattern for generating Sales Order reference field"
+msgstr ""
+
+#: common/models.py:1198
+msgid "Sales Order Default Shipment"
+msgstr ""
+
+#: common/models.py:1199
+msgid "Enable creation of default shipment with sales orders"
+msgstr ""
+
+#: common/models.py:1205
+msgid "Purchase Order Reference Pattern"
+msgstr ""
+
+#: common/models.py:1206
+msgid "Required pattern for generating Purchase Order reference field"
+msgstr ""
+
+#: common/models.py:1213
+msgid "Enable password forgot"
+msgstr ""
+
+#: common/models.py:1214
+msgid "Enable password forgot function on the login pages"
+msgstr ""
+
+#: common/models.py:1220
+msgid "Enable registration"
+msgstr ""
+
+#: common/models.py:1221
+msgid "Enable self-registration for users on the login pages"
+msgstr ""
+
+#: common/models.py:1227
+msgid "Enable SSO"
+msgstr ""
+
+#: common/models.py:1228
+msgid "Enable SSO on the login pages"
+msgstr ""
+
+#: common/models.py:1234
+msgid "Email required"
+msgstr ""
+
+#: common/models.py:1235
+msgid "Require user to supply mail on signup"
+msgstr ""
+
+#: common/models.py:1241
+msgid "Auto-fill SSO users"
+msgstr ""
+
+#: common/models.py:1242
+msgid "Automatically fill out user-details from SSO account-data"
+msgstr ""
+
+#: common/models.py:1248
+msgid "Mail twice"
+msgstr ""
+
+#: common/models.py:1249
+msgid "On signup ask users twice for their mail"
+msgstr ""
+
+#: common/models.py:1255
+msgid "Password twice"
+msgstr ""
+
+#: common/models.py:1256
+msgid "On signup ask users twice for their password"
+msgstr ""
+
+#: common/models.py:1262
+msgid "Group on signup"
+msgstr ""
+
+#: common/models.py:1263
+msgid "Group to which new users are assigned on registration"
+msgstr ""
+
+#: common/models.py:1269
+msgid "Enforce MFA"
+msgstr ""
+
+#: common/models.py:1270
+msgid "Users must use multifactor security."
+msgstr ""
+
+#: common/models.py:1276
+msgid "Check plugins on startup"
+msgstr ""
+
+#: common/models.py:1277
+msgid ""
+"Check that all plugins are installed on startup - enable in container "
+"enviroments"
+msgstr ""
+
+#: common/models.py:1284
+msgid "Check plugin signatures"
+msgstr ""
+
+#: common/models.py:1285
+msgid "Check and show signatures for plugins"
+msgstr ""
+
+#: common/models.py:1292
+msgid "Enable URL integration"
+msgstr ""
+
+#: common/models.py:1293
+msgid "Enable plugins to add URL routes"
+msgstr ""
+
+#: common/models.py:1300
+msgid "Enable navigation integration"
+msgstr ""
+
+#: common/models.py:1301
+msgid "Enable plugins to integrate into navigation"
+msgstr ""
+
+#: common/models.py:1308
+msgid "Enable app integration"
+msgstr ""
+
+#: common/models.py:1309
+msgid "Enable plugins to add apps"
+msgstr ""
+
+#: common/models.py:1316
+msgid "Enable schedule integration"
+msgstr ""
+
+#: common/models.py:1317
+msgid "Enable plugins to run scheduled tasks"
+msgstr ""
+
+#: common/models.py:1324
+msgid "Enable event integration"
+msgstr ""
+
+#: common/models.py:1325
+msgid "Enable plugins to respond to internal events"
+msgstr ""
+
+#: common/models.py:1344 common/models.py:1662
+msgid "Settings key (must be unique - case insensitive"
+msgstr ""
+
+#: common/models.py:1366
+msgid "Show subscribed parts"
+msgstr ""
+
+#: common/models.py:1367
+msgid "Show subscribed parts on the homepage"
+msgstr ""
+
+#: common/models.py:1373
+msgid "Show subscribed categories"
+msgstr ""
+
+#: common/models.py:1374
+msgid "Show subscribed part categories on the homepage"
+msgstr ""
+
+#: common/models.py:1380
+msgid "Show latest parts"
+msgstr ""
+
+#: common/models.py:1381
+msgid "Show latest parts on the homepage"
+msgstr ""
+
+#: common/models.py:1387
+msgid "Recent Part Count"
+msgstr ""
+
+#: common/models.py:1388
+msgid "Number of recent parts to display on index page"
+msgstr ""
+
+#: common/models.py:1394
+msgid "Show unvalidated BOMs"
+msgstr ""
+
+#: common/models.py:1395
+msgid "Show BOMs that await validation on the homepage"
+msgstr ""
+
+#: common/models.py:1401
+msgid "Show recent stock changes"
+msgstr ""
+
+#: common/models.py:1402
+msgid "Show recently changed stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1408
+msgid "Recent Stock Count"
+msgstr ""
+
+#: common/models.py:1409
+msgid "Number of recent stock items to display on index page"
+msgstr ""
+
+#: common/models.py:1415
+msgid "Show low stock"
+msgstr ""
+
+#: common/models.py:1416
+msgid "Show low stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1422
+msgid "Show depleted stock"
+msgstr ""
+
+#: common/models.py:1423
+msgid "Show depleted stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1429
+msgid "Show needed stock"
+msgstr ""
+
+#: common/models.py:1430
+msgid "Show stock items needed for builds on the homepage"
+msgstr ""
+
+#: common/models.py:1436
+msgid "Show expired stock"
+msgstr ""
+
+#: common/models.py:1437
+msgid "Show expired stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1443
+msgid "Show stale stock"
+msgstr ""
+
+#: common/models.py:1444
+msgid "Show stale stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1450
+msgid "Show pending builds"
+msgstr ""
+
+#: common/models.py:1451
+msgid "Show pending builds on the homepage"
+msgstr ""
+
+#: common/models.py:1457
+msgid "Show overdue builds"
+msgstr ""
+
+#: common/models.py:1458
+msgid "Show overdue builds on the homepage"
+msgstr ""
+
+#: common/models.py:1464
+msgid "Show outstanding POs"
+msgstr ""
+
+#: common/models.py:1465
+msgid "Show outstanding POs on the homepage"
+msgstr ""
+
+#: common/models.py:1471
+msgid "Show overdue POs"
+msgstr ""
+
+#: common/models.py:1472
+msgid "Show overdue POs on the homepage"
+msgstr ""
+
+#: common/models.py:1478
+msgid "Show outstanding SOs"
+msgstr ""
+
+#: common/models.py:1479
+msgid "Show outstanding SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1485
+msgid "Show overdue SOs"
+msgstr ""
+
+#: common/models.py:1486
+msgid "Show overdue SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1492
+msgid "Inline label display"
+msgstr ""
+
+#: common/models.py:1493
+msgid "Display PDF labels in the browser, instead of downloading as a file"
+msgstr ""
+
+#: common/models.py:1499
+msgid "Inline report display"
+msgstr ""
+
+#: common/models.py:1500
+msgid "Display PDF reports in the browser, instead of downloading as a file"
+msgstr ""
+
+#: common/models.py:1506
+msgid "Search Parts"
+msgstr ""
+
+#: common/models.py:1507
+msgid "Display parts in search preview window"
+msgstr ""
+
+#: common/models.py:1513
+msgid "Seach Supplier Parts"
+msgstr ""
+
+#: common/models.py:1514
+msgid "Display supplier parts in search preview window"
+msgstr ""
+
+#: common/models.py:1520
+msgid "Search Manufacturer Parts"
+msgstr ""
+
+#: common/models.py:1521
+msgid "Display manufacturer parts in search preview window"
+msgstr ""
+
+#: common/models.py:1527
+msgid "Hide Inactive Parts"
+msgstr ""
+
+#: common/models.py:1528
+msgid "Excluded inactive parts from search preview window"
+msgstr ""
+
+#: common/models.py:1534
+msgid "Search Categories"
+msgstr ""
+
+#: common/models.py:1535
+msgid "Display part categories in search preview window"
+msgstr ""
+
+#: common/models.py:1541
+msgid "Search Stock"
+msgstr ""
+
+#: common/models.py:1542
+msgid "Display stock items in search preview window"
+msgstr ""
+
+#: common/models.py:1548
+msgid "Hide Unavailable Stock Items"
+msgstr ""
+
+#: common/models.py:1549
+msgid ""
+"Exclude stock items which are not available from the search preview window"
+msgstr ""
+
+#: common/models.py:1555
+msgid "Search Locations"
+msgstr ""
+
+#: common/models.py:1556
+msgid "Display stock locations in search preview window"
+msgstr ""
+
+#: common/models.py:1562
+msgid "Search Companies"
+msgstr ""
+
+#: common/models.py:1563
+msgid "Display companies in search preview window"
+msgstr ""
+
+#: common/models.py:1569
+msgid "Search Purchase Orders"
+msgstr ""
+
+#: common/models.py:1570
+msgid "Display purchase orders in search preview window"
+msgstr ""
+
+#: common/models.py:1576
+msgid "Exclude Inactive Purchase Orders"
+msgstr ""
+
+#: common/models.py:1577
+msgid "Exclude inactive purchase orders from search preview window"
+msgstr ""
+
+#: common/models.py:1583
+msgid "Search Sales Orders"
+msgstr ""
+
+#: common/models.py:1584
+msgid "Display sales orders in search preview window"
+msgstr ""
+
+#: common/models.py:1590
+msgid "Exclude Inactive Sales Orders"
+msgstr ""
+
+#: common/models.py:1591
+msgid "Exclude inactive sales orders from search preview window"
+msgstr ""
+
+#: common/models.py:1597
+msgid "Search Preview Results"
+msgstr ""
+
+#: common/models.py:1598
+msgid "Number of results to show in each section of the search preview window"
+msgstr ""
+
+#: common/models.py:1604
+msgid "Show Quantity in Forms"
+msgstr ""
+
+#: common/models.py:1605
+msgid "Display available part quantity in some forms"
+msgstr ""
+
+#: common/models.py:1611
+msgid "Escape Key Closes Forms"
+msgstr ""
+
+#: common/models.py:1612
+msgid "Use the escape key to close modal forms"
+msgstr ""
+
+#: common/models.py:1618
+msgid "Fixed Navbar"
+msgstr ""
+
+#: common/models.py:1619
+msgid "The navbar position is fixed to the top of the screen"
+msgstr ""
+
+#: common/models.py:1625
+msgid "Date Format"
+msgstr ""
+
+#: common/models.py:1626
+msgid "Preferred format for displaying dates"
+msgstr ""
+
+#: common/models.py:1640 part/templates/part/detail.html:41
+msgid "Part Scheduling"
+msgstr ""
+
+#: common/models.py:1641
+msgid "Display part scheduling information"
+msgstr ""
+
+#: common/models.py:1702
+msgid "Price break quantity"
+msgstr ""
+
+#: common/models.py:1709 company/serializers.py:372
+#: company/templates/company/supplier_part.html:296 order/models.py:942
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:2210
+msgid "Price"
+msgstr ""
+
+#: common/models.py:1710
+msgid "Unit price at specified quantity"
+msgstr ""
+
+#: common/models.py:1870 common/models.py:2048
+msgid "Endpoint"
+msgstr ""
+
+#: common/models.py:1871
+msgid "Endpoint at which this webhook is received"
+msgstr ""
+
+#: common/models.py:1880
+msgid "Name for this webhook"
+msgstr ""
+
+#: common/models.py:1885 part/models.py:921 plugin/models.py:100
+#: templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:104
+#: templates/js/translated/table_filters.js:316
+#: templates/js/translated/table_filters.js:442
+msgid "Active"
+msgstr ""
+
+#: common/models.py:1886
+msgid "Is this webhook active"
+msgstr ""
+
+#: common/models.py:1900
+msgid "Token"
+msgstr ""
+
+#: common/models.py:1901
+msgid "Token for access"
+msgstr ""
+
+#: common/models.py:1908
+msgid "Secret"
+msgstr ""
+
+#: common/models.py:1909
+msgid "Shared secret for HMAC"
+msgstr ""
+
+#: common/models.py:2015
+msgid "Message ID"
+msgstr ""
+
+#: common/models.py:2016
+msgid "Unique identifier for this message"
+msgstr ""
+
+#: common/models.py:2024
+msgid "Host"
+msgstr ""
+
+#: common/models.py:2025
+msgid "Host from which this message was received"
+msgstr ""
+
+#: common/models.py:2032
+msgid "Header"
+msgstr ""
+
+#: common/models.py:2033
+msgid "Header of this message"
+msgstr ""
+
+#: common/models.py:2039
+msgid "Body"
+msgstr ""
+
+#: common/models.py:2040
+msgid "Body of this message"
+msgstr ""
+
+#: common/models.py:2049
+msgid "Endpoint on which this message was received"
+msgstr ""
+
+#: common/models.py:2054
+msgid "Worked on"
+msgstr ""
+
+#: common/models.py:2055
+msgid "Was the work on this message finished?"
+msgstr ""
+
+#: common/notifications.py:292
+#, python-brace-format
+msgid "New {verbose_name}"
+msgstr ""
+
+#: common/notifications.py:294
+msgid "A new order has been created and assigned to you"
+msgstr ""
+
+#: common/notifications.py:300
+msgid "Items Received"
+msgstr ""
+
+#: common/notifications.py:302
+msgid "Items have been received against a purchase order"
+msgstr ""
+
+#: common/views.py:85 order/templates/order/purchase_order_detail.html:23
+#: order/views.py:102 part/views.py:112
+#: templates/patterns/wizard/upload.html:37
+msgid "Upload File"
+msgstr ""
+
+#: common/views.py:86 order/views.py:103
+#: part/templates/part/import_wizard/ajax_match_fields.html:45
+#: part/views.py:113 templates/patterns/wizard/match_fields.html:51
+msgid "Match Fields"
+msgstr ""
+
+#: common/views.py:87
+msgid "Match Items"
+msgstr ""
+
+#: common/views.py:420
+msgid "Fields matching failed"
+msgstr ""
+
+#: common/views.py:481
+msgid "Parts imported"
+msgstr ""
+
+#: common/views.py:509 order/templates/order/order_wizard/match_parts.html:19
+#: part/templates/part/import_wizard/match_references.html:19
+#: templates/patterns/wizard/match_fields.html:26
+#: templates/patterns/wizard/upload.html:35
+msgid "Previous Step"
+msgstr ""
+
+#: company/models.py:98
+msgid "Company description"
+msgstr ""
+
+#: company/models.py:99
+msgid "Description of the company"
+msgstr ""
+
+#: company/models.py:105 company/templates/company/company_base.html:100
+#: templates/InvenTree/settings/plugin_settings.html:55
+#: templates/js/translated/company.js:448
+msgid "Website"
+msgstr ""
+
+#: company/models.py:106
+msgid "Company website URL"
+msgstr ""
+
+#: company/models.py:110 company/templates/company/company_base.html:118
+msgid "Address"
+msgstr ""
+
+#: company/models.py:111
+msgid "Company address"
+msgstr ""
+
+#: company/models.py:114
+msgid "Phone number"
+msgstr ""
+
+#: company/models.py:115
+msgid "Contact phone number"
+msgstr ""
+
+#: company/models.py:118 company/templates/company/company_base.html:132
+#: templates/InvenTree/settings/user.html:48
+msgid "Email"
+msgstr ""
+
+#: company/models.py:118
+msgid "Contact email address"
+msgstr ""
+
+#: company/models.py:121 company/templates/company/company_base.html:139
+msgid "Contact"
+msgstr ""
+
+#: company/models.py:122
+msgid "Point of contact"
+msgstr ""
+
+#: company/models.py:124
+msgid "Link to external company information"
+msgstr ""
+
+#: company/models.py:135 part/models.py:815
+msgid "Image"
+msgstr ""
+
+#: company/models.py:138 company/templates/company/detail.html:185
+msgid "Company Notes"
+msgstr ""
+
+#: company/models.py:140
+msgid "is customer"
+msgstr ""
+
+#: company/models.py:140
+msgid "Do you sell items to this company?"
+msgstr ""
+
+#: company/models.py:142
+msgid "is supplier"
+msgstr ""
+
+#: company/models.py:142
+msgid "Do you purchase items from this company?"
+msgstr ""
+
+#: company/models.py:144
+msgid "is manufacturer"
+msgstr ""
+
+#: company/models.py:144
+msgid "Does this company manufacture parts?"
+msgstr ""
+
+#: company/models.py:148 company/serializers.py:378
+#: company/templates/company/company_base.html:106 part/serializers.py:153
+#: part/serializers.py:184 stock/serializers.py:178
+msgid "Currency"
+msgstr ""
+
+#: company/models.py:151
+msgid "Default currency used for this company"
+msgstr ""
+
+#: company/models.py:248 company/models.py:482 stock/models.py:598
+#: stock/serializers.py:85 stock/templates/stock/item_base.html:143
+#: templates/js/translated/bom.js:542
+msgid "Base Part"
+msgstr ""
+
+#: company/models.py:252 company/models.py:486
+msgid "Select part"
+msgstr ""
+
+#: company/models.py:263 company/templates/company/company_base.html:76
+#: company/templates/company/manufacturer_part.html:90
+#: company/templates/company/supplier_part.html:129
+#: stock/templates/stock/item_base.html:210
+#: templates/js/translated/company.js:432
+#: templates/js/translated/company.js:533
+#: templates/js/translated/company.js:668
+#: templates/js/translated/company.js:956 templates/js/translated/part.js:236
+#: templates/js/translated/table_filters.js:419
+msgid "Manufacturer"
+msgstr ""
+
+#: company/models.py:264 templates/js/translated/part.js:237
+msgid "Select manufacturer"
+msgstr ""
+
+#: company/models.py:270 company/templates/company/manufacturer_part.html:101
+#: company/templates/company/supplier_part.html:137
+#: templates/js/translated/company.js:304
+#: templates/js/translated/company.js:532
+#: templates/js/translated/company.js:684
+#: templates/js/translated/company.js:975 templates/js/translated/order.js:2239
+#: templates/js/translated/part.js:247 templates/js/translated/part.js:1025
+msgid "MPN"
+msgstr ""
+
+#: company/models.py:271 templates/js/translated/part.js:248
+msgid "Manufacturer Part Number"
+msgstr ""
+
+#: company/models.py:277
+msgid "URL for external manufacturer part link"
+msgstr ""
+
+#: company/models.py:283
+msgid "Manufacturer part description"
+msgstr ""
+
+#: company/models.py:328 company/models.py:352 company/models.py:505
+#: company/templates/company/manufacturer_part.html:7
+#: company/templates/company/manufacturer_part.html:24
+#: stock/templates/stock/item_base.html:220
+msgid "Manufacturer Part"
+msgstr ""
+
+#: company/models.py:359
+msgid "Parameter name"
+msgstr ""
+
+#: company/models.py:365
+#: report/templates/report/inventree_test_report_base.html:95
+#: stock/models.py:2095 templates/js/translated/company.js:581
+#: templates/js/translated/company.js:799 templates/js/translated/part.js:847
+#: templates/js/translated/stock.js:1360
+msgid "Value"
+msgstr ""
+
+#: company/models.py:366
+msgid "Parameter value"
+msgstr ""
+
+#: company/models.py:372 part/models.py:888 part/models.py:2433
+#: part/templates/part/part_base.html:280
+#: templates/InvenTree/settings/settings.html:352
+#: templates/js/translated/company.js:805 templates/js/translated/part.js:853
+msgid "Units"
+msgstr ""
+
+#: company/models.py:373
+msgid "Parameter units"
+msgstr ""
+
+#: company/models.py:450
+msgid "Linked manufacturer part must reference the same base part"
+msgstr ""
+
+#: company/models.py:492 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:113 order/models.py:258
+#: order/templates/order/order_base.html:121 part/bom.py:237 part/bom.py:265
+#: stock/templates/stock/item_base.html:227
+#: templates/email/overdue_purchase_order.html:16
+#: templates/js/translated/company.js:303
+#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:929 templates/js/translated/order.js:1975
+#: templates/js/translated/part.js:217 templates/js/translated/part.js:993
+#: templates/js/translated/table_filters.js:423
+msgid "Supplier"
+msgstr ""
+
+#: company/models.py:493 templates/js/translated/part.js:218
+msgid "Select supplier"
+msgstr ""
+
+#: company/models.py:498 company/templates/company/supplier_part.html:123
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:302
+#: templates/js/translated/order.js:2226 templates/js/translated/part.js:228
+#: templates/js/translated/part.js:1011
+msgid "SKU"
+msgstr ""
+
+#: company/models.py:499 templates/js/translated/part.js:229
+msgid "Supplier stock keeping unit"
+msgstr ""
+
+#: company/models.py:506
+msgid "Select manufacturer part"
+msgstr ""
+
+#: company/models.py:512
+msgid "URL for external supplier part link"
+msgstr ""
+
+#: company/models.py:518
+msgid "Supplier part description"
+msgstr ""
+
+#: company/models.py:523 company/templates/company/supplier_part.html:158
+#: part/models.py:2674 part/templates/part/upload_bom.html:59
+#: report/templates/report/inventree_po_report.html:92
+#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399
+msgid "Note"
+msgstr ""
+
+#: company/models.py:527 part/models.py:1781
+msgid "base cost"
+msgstr ""
+
+#: company/models.py:527 part/models.py:1781
+msgid "Minimum charge (e.g. stocking fee)"
+msgstr ""
+
+#: company/models.py:529 company/templates/company/supplier_part.html:144
+#: stock/models.py:624 stock/templates/stock/item_base.html:243
+#: templates/js/translated/company.js:991 templates/js/translated/stock.js:1972
+msgid "Packaging"
+msgstr ""
+
+#: company/models.py:529
+msgid "Part packaging"
+msgstr ""
+
+#: company/models.py:532 company/serializers.py:242
+#: company/templates/company/supplier_part.html:151
+#: templates/js/translated/company.js:996 templates/js/translated/order.js:820
+#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:2270 templates/js/translated/order.js:2287
+#: templates/js/translated/part.js:1043 templates/js/translated/part.js:1095
+msgid "Pack Quantity"
+msgstr ""
+
+#: company/models.py:533
+msgid "Unit quantity supplied in a single pack"
+msgstr ""
+
+#: company/models.py:539 part/models.py:1783
+msgid "multiple"
+msgstr ""
+
+#: company/models.py:539
+msgid "Order multiple"
+msgstr ""
+
+#: company/models.py:547 company/templates/company/supplier_part.html:99
+#: templates/email/build_order_required_stock.html:19
+#: templates/email/low_stock_notification.html:18
+#: templates/js/translated/bom.js:915 templates/js/translated/build.js:1823
+#: templates/js/translated/build.js:2686 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:601
+#: templates/js/translated/table_filters.js:186
+msgid "Available"
+msgstr ""
+
+#: company/models.py:548
+msgid "Quantity available from supplier"
+msgstr ""
+
+#: company/models.py:552
+msgid "Availability Updated"
+msgstr ""
+
+#: company/models.py:553
+msgid "Date of last update of availability data"
+msgstr ""
+
+#: company/models.py:681
+msgid "last updated"
+msgstr ""
+
+#: company/serializers.py:72
+msgid "Default currency used for this supplier"
+msgstr ""
+
+#: company/serializers.py:73
+msgid "Currency Code"
+msgstr ""
+
+#: company/templates/company/company_base.html:8
+#: company/templates/company/company_base.html:12
+#: templates/InvenTree/search.html:179 templates/js/translated/company.js:421
+msgid "Company"
+msgstr ""
+
+#: company/templates/company/company_base.html:22
+#: templates/js/translated/order.js:689
+msgid "Create Purchase Order"
+msgstr ""
+
+#: company/templates/company/company_base.html:28
+msgid "Company actions"
+msgstr ""
+
+#: company/templates/company/company_base.html:33
+msgid "Edit company information"
+msgstr ""
+
+#: company/templates/company/company_base.html:34
+#: templates/js/translated/company.js:364
+msgid "Edit Company"
+msgstr ""
+
+#: company/templates/company/company_base.html:38
+msgid "Delete company"
+msgstr ""
+
+#: company/templates/company/company_base.html:39
+#: company/templates/company/company_base.html:162
+msgid "Delete Company"
+msgstr ""
+
+#: company/templates/company/company_base.html:56
+#: part/templates/part/part_thumb.html:12
+msgid "Upload new image"
+msgstr ""
+
+#: company/templates/company/company_base.html:59
+#: part/templates/part/part_thumb.html:14
+msgid "Download image from URL"
+msgstr ""
+
+#: company/templates/company/company_base.html:86 order/models.py:641
+#: order/templates/order/sales_order_base.html:116 stock/models.py:643
+#: stock/models.py:644 stock/serializers.py:809
+#: stock/templates/stock/item_base.html:399
+#: templates/email/overdue_sales_order.html:16
+#: templates/js/translated/company.js:428 templates/js/translated/order.js:2813
+#: templates/js/translated/stock.js:2555
+#: templates/js/translated/table_filters.js:427
+msgid "Customer"
+msgstr ""
+
+#: company/templates/company/company_base.html:111
+msgid "Uses default currency"
+msgstr ""
+
+#: company/templates/company/company_base.html:125
+msgid "Phone"
+msgstr ""
+
+#: company/templates/company/company_base.html:208
+#: part/templates/part/part_base.html:465
+msgid "Upload Image"
+msgstr ""
+
+#: company/templates/company/company_base.html:223
+#: part/templates/part/part_base.html:520
+msgid "Download Image"
+msgstr ""
+
+#: company/templates/company/detail.html:14
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:120 templates/js/translated/search.js:172
+msgid "Supplier Parts"
+msgstr ""
+
+#: company/templates/company/detail.html:18
+msgid "Create new supplier part"
+msgstr ""
+
+#: company/templates/company/detail.html:19
+#: company/templates/company/manufacturer_part.html:123
+#: part/templates/part/detail.html:359
+msgid "New Supplier Part"
+msgstr ""
+
+#: company/templates/company/detail.html:36
+#: company/templates/company/detail.html:84
+#: part/templates/part/category.html:182
+msgid "Order parts"
+msgstr ""
+
+#: company/templates/company/detail.html:41
+#: company/templates/company/detail.html:89
+msgid "Delete parts"
+msgstr ""
+
+#: company/templates/company/detail.html:42
+#: company/templates/company/detail.html:90
+msgid "Delete Parts"
+msgstr ""
+
+#: company/templates/company/detail.html:61 templates/InvenTree/search.html:105
+#: templates/js/translated/search.js:185
+msgid "Manufacturer Parts"
+msgstr ""
+
+#: company/templates/company/detail.html:65
+msgid "Create new manufacturer part"
+msgstr ""
+
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:389
+msgid "New Manufacturer Part"
+msgstr ""
+
+#: company/templates/company/detail.html:107
+msgid "Supplier Stock"
+msgstr ""
+
+#: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
+#: order/templates/order/order_base.html:13
+#: order/templates/order/purchase_orders.html:8
+#: order/templates/order/purchase_orders.html:12
+#: part/templates/part/detail.html:84 part/templates/part/part_sidebar.html:37
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200
+#: templates/InvenTree/settings/sidebar.html:49
+#: templates/js/translated/search.js:277 templates/navbar.html:50
+#: users/models.py:42
+msgid "Purchase Orders"
+msgstr ""
+
+#: company/templates/company/detail.html:121
+#: order/templates/order/purchase_orders.html:17
+msgid "Create new purchase order"
+msgstr ""
+
+#: company/templates/company/detail.html:122
+#: order/templates/order/purchase_orders.html:18
+msgid "New Purchase Order"
+msgstr ""
+
+#: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
+#: order/templates/order/sales_order_base.html:13
+#: order/templates/order/sales_orders.html:8
+#: order/templates/order/sales_orders.html:15
+#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:41
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220
+#: templates/InvenTree/settings/sidebar.html:51
+#: templates/js/translated/search.js:301 templates/navbar.html:61
+#: users/models.py:43
+msgid "Sales Orders"
+msgstr ""
+
+#: company/templates/company/detail.html:147
+#: order/templates/order/sales_orders.html:20
+msgid "Create new sales order"
+msgstr ""
+
+#: company/templates/company/detail.html:148
+#: order/templates/order/sales_orders.html:21
+msgid "New Sales Order"
+msgstr ""
+
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:1693
+msgid "Assigned Stock"
+msgstr ""
+
+#: company/templates/company/index.html:8
+msgid "Supplier List"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:15 company/views.py:38
+#: part/templates/part/prices.html:172 templates/InvenTree/search.html:181
+#: templates/navbar.html:49
+msgid "Manufacturers"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:35
+#: company/templates/company/supplier_part.html:198
+#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80
+msgid "Order part"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:39
+#: templates/js/translated/company.js:716
+msgid "Edit manufacturer part"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:43
+#: templates/js/translated/company.js:717
+msgid "Delete manufacturer part"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:65
+#: company/templates/company/supplier_part.html:82
+msgid "Internal Part"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:95
+msgid "No manufacturer information available"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:119
+#: company/templates/company/supplier_part.html:15 company/views.py:32
+#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:168
+#: templates/InvenTree/search.html:191 templates/navbar.html:48
+msgid "Suppliers"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:136
+#: part/templates/part/detail.html:370
+msgid "Delete supplier parts"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:136
+#: company/templates/company/manufacturer_part.html:183
+#: part/templates/part/detail.html:371 part/templates/part/detail.html:401
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:34
+#: users/models.py:222
+msgid "Delete"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:166
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:19
+#: part/templates/part/detail.html:186 part/templates/part/part_sidebar.html:8
+msgid "Parameters"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:170
+#: part/templates/part/detail.html:191
+#: templates/InvenTree/settings/category.html:12
+#: templates/InvenTree/settings/part.html:68
+msgid "New Parameter"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:183
+msgid "Delete parameters"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:245
+#: part/templates/part/detail.html:840
+msgid "Add Parameter"
+msgstr ""
+
+#: company/templates/company/sidebar.html:6
+msgid "Manufactured Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:10
+msgid "Supplied Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:7
+#: company/templates/company/supplier_part.html:24 stock/models.py:607
+#: stock/templates/stock/item_base.html:236
+#: templates/js/translated/company.js:945 templates/js/translated/order.js:1135
+#: templates/js/translated/stock.js:1929
+msgid "Supplier Part"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:35
+msgid "Supplier part actions"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:40
+#: company/templates/company/supplier_part.html:41
+#: company/templates/company/supplier_part.html:199
+#: part/templates/part/detail.html:88
+msgid "Order Part"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:45
+#: company/templates/company/supplier_part.html:46
+msgid "Update Availability"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:48
+#: company/templates/company/supplier_part.html:49
+#: templates/js/translated/company.js:247
+msgid "Edit Supplier Part"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:53
+#: company/templates/company/supplier_part.html:54
+#: templates/js/translated/company.js:222
+msgid "Duplicate Supplier Part"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:58
+msgid "Delete Supplier Part"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:59
+msgid "Delete Supplier Part"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:117
+msgid "No supplier information available"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:177
+#: company/templates/company/supplier_part_navbar.html:12
+msgid "Supplier Part Stock"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:180
+#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181
+msgid "Create new stock item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:181
+#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182
+#: templates/js/translated/stock.js:435
+msgid "New Stock Item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:194
+#: company/templates/company/supplier_part_navbar.html:19
+msgid "Supplier Part Orders"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:219
+#: part/templates/part/prices.html:10
+msgid "Pricing Information"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:224
+#: company/templates/company/supplier_part.html:338
+#: part/templates/part/prices.html:276 templates/js/translated/part.js:2282
+msgid "Add Price Break"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:250
+msgid "No price break information found"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:264
+#: templates/js/translated/part.js:2292
+msgid "Delete Price Break"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:278
+#: templates/js/translated/part.js:2306
+msgid "Edit Price Break"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:303
+msgid "Edit price break"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:304
+msgid "Delete price break"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:313
+msgid "Last updated"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:394
+msgid "Update Part Availability"
+msgstr ""
+
+#: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:14
+#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24
+#: stock/templates/stock/stock_app_base.html:10
+#: templates/InvenTree/search.html:153
+#: templates/InvenTree/settings/sidebar.html:45
+#: templates/js/translated/part.js:749 templates/js/translated/part.js:1334
+#: templates/js/translated/part.js:1495 templates/js/translated/stock.js:959
+#: templates/js/translated/stock.js:1754 templates/navbar.html:31
+msgid "Stock"
+msgstr ""
+
+#: company/templates/company/supplier_part_navbar.html:22
+msgid "Orders"
+msgstr ""
+
+#: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
+msgid "Supplier Part Pricing"
+msgstr ""
+
+#: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:31
+msgid "Pricing"
+msgstr ""
+
+#: company/templates/company/supplier_part_sidebar.html:5
+#: part/templates/part/category.html:203
+#: part/templates/part/category_sidebar.html:17
+#: stock/templates/stock/location.html:152
+#: stock/templates/stock/location.html:166
+#: stock/templates/stock/location.html:178
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
+#: templates/js/translated/stock.js:2432 users/models.py:40
+msgid "Stock Items"
+msgstr ""
+
+#: company/views.py:33
+msgid "New Supplier"
+msgstr ""
+
+#: company/views.py:39
+msgid "New Manufacturer"
+msgstr ""
+
+#: company/views.py:44 templates/InvenTree/search.html:211
+#: templates/navbar.html:60
+msgid "Customers"
+msgstr ""
+
+#: company/views.py:45
+msgid "New Customer"
+msgstr ""
+
+#: company/views.py:52 templates/js/translated/search.js:254
+msgid "Companies"
+msgstr ""
+
+#: company/views.py:53
+msgid "New Company"
+msgstr ""
+
+#: label/models.py:102
+msgid "Label name"
+msgstr ""
+
+#: label/models.py:109
+msgid "Label description"
+msgstr ""
+
+#: label/models.py:116
+msgid "Label"
+msgstr ""
+
+#: label/models.py:117
+msgid "Label template file"
+msgstr ""
+
+#: label/models.py:123 report/models.py:254
+msgid "Enabled"
+msgstr ""
+
+#: label/models.py:124
+msgid "Label template is enabled"
+msgstr ""
+
+#: label/models.py:129
+msgid "Width [mm]"
+msgstr ""
+
+#: label/models.py:130
+msgid "Label width, specified in mm"
+msgstr ""
+
+#: label/models.py:136
+msgid "Height [mm]"
+msgstr ""
+
+#: label/models.py:137
+msgid "Label height, specified in mm"
+msgstr ""
+
+#: label/models.py:143 report/models.py:247
+msgid "Filename Pattern"
+msgstr ""
+
+#: label/models.py:144
+msgid "Pattern for generating label filenames"
+msgstr ""
+
+#: label/models.py:233
+msgid "Query filters (comma-separated list of key=value pairs),"
+msgstr ""
+
+#: label/models.py:234 label/models.py:274 label/models.py:302
+#: report/models.py:280 report/models.py:411 report/models.py:449
+msgid "Filters"
+msgstr ""
+
+#: label/models.py:273
+msgid "Query filters (comma-separated list of key=value pairs"
+msgstr ""
+
+#: label/models.py:301
+msgid "Part query filters (comma-separated value of key=value pairs)"
+msgstr ""
+
+#: order/api.py:134
+msgid "No matching purchase order found"
+msgstr ""
+
+#: order/models.py:82
+msgid "Order description"
+msgstr ""
+
+#: order/models.py:84 order/models.py:1250
+msgid "Link to external page"
+msgstr ""
+
+#: order/models.py:92
+msgid "Created By"
+msgstr ""
+
+#: order/models.py:99
+msgid "User or group responsible for this order"
+msgstr ""
+
+#: order/models.py:104
+msgid "Order notes"
+msgstr ""
+
+#: order/models.py:241 order/models.py:628
+msgid "Order reference"
+msgstr ""
+
+#: order/models.py:249 order/models.py:646
+msgid "Purchase order status"
+msgstr ""
+
+#: order/models.py:259
+msgid "Company from which the items are being ordered"
+msgstr ""
+
+#: order/models.py:262 order/templates/order/order_base.html:133
+#: templates/js/translated/order.js:1984
+msgid "Supplier Reference"
+msgstr ""
+
+#: order/models.py:262
+msgid "Supplier order reference code"
+msgstr ""
+
+#: order/models.py:269
+msgid "received by"
+msgstr ""
+
+#: order/models.py:274
+msgid "Issue Date"
+msgstr ""
+
+#: order/models.py:275
+msgid "Date order was issued"
+msgstr ""
+
+#: order/models.py:280
+msgid "Target Delivery Date"
+msgstr ""
+
+#: order/models.py:281
+msgid ""
+"Expected date for order delivery. Order will be overdue after this date."
+msgstr ""
+
+#: order/models.py:287
+msgid "Date order was completed"
+msgstr ""
+
+#: order/models.py:323
+msgid "Part supplier must match PO supplier"
+msgstr ""
+
+#: order/models.py:467
+msgid "Quantity must be a positive number"
+msgstr ""
+
+#: order/models.py:642
+msgid "Company to which the items are being sold"
+msgstr ""
+
+#: order/models.py:648
+msgid "Customer Reference "
+msgstr ""
+
+#: order/models.py:648
+msgid "Customer order reference code"
+msgstr ""
+
+#: order/models.py:653
+msgid ""
+"Target date for order completion. Order will be overdue after this date."
+msgstr ""
+
+#: order/models.py:656 order/models.py:1208
+#: templates/js/translated/order.js:2860 templates/js/translated/order.js:3022
+msgid "Shipment Date"
+msgstr ""
+
+#: order/models.py:663
+msgid "shipped by"
+msgstr ""
+
+#: order/models.py:718
+msgid "Order cannot be completed as no parts have been assigned"
+msgstr ""
+
+#: order/models.py:722
+msgid "Only a pending order can be marked as complete"
+msgstr ""
+
+#: order/models.py:725 templates/js/translated/order.js:419
+msgid "Order cannot be completed as there are incomplete shipments"
+msgstr ""
+
+#: order/models.py:728
+msgid "Order cannot be completed as there are incomplete line items"
+msgstr ""
+
+#: order/models.py:902
+msgid "Item quantity"
+msgstr ""
+
+#: order/models.py:908
+msgid "Line item reference"
+msgstr ""
+
+#: order/models.py:910
+msgid "Line item notes"
+msgstr ""
+
+#: order/models.py:915
+msgid "Target shipping date for this line item"
+msgstr ""
+
+#: order/models.py:933
+msgid "Context"
+msgstr ""
+
+#: order/models.py:934
+msgid "Additional context for this line"
+msgstr ""
+
+#: order/models.py:943
+msgid "Unit price"
+msgstr ""
+
+#: order/models.py:973
+msgid "Supplier part must match supplier"
+msgstr ""
+
+#: order/models.py:981
+msgid "deleted"
+msgstr ""
+
+#: order/models.py:987 order/models.py:1067 order/models.py:1108
+#: order/models.py:1202 order/models.py:1334
+#: templates/js/translated/order.js:3478
+msgid "Order"
+msgstr ""
+
+#: order/models.py:988 order/models.py:1067
+#: order/templates/order/order_base.html:9
+#: order/templates/order/order_base.html:18
+#: report/templates/report/inventree_po_report.html:76
+#: stock/templates/stock/item_base.html:182
+#: templates/email/overdue_purchase_order.html:15
+#: templates/js/translated/order.js:619 templates/js/translated/order.js:1136
+#: templates/js/translated/order.js:1959 templates/js/translated/part.js:970
+#: templates/js/translated/stock.js:1909 templates/js/translated/stock.js:2536
+msgid "Purchase Order"
+msgstr ""
+
+#: order/models.py:1006
+msgid "Supplier part"
+msgstr ""
+
+#: order/models.py:1013 order/templates/order/order_base.html:178
+#: templates/js/translated/order.js:1641 templates/js/translated/order.js:2373
+#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1125
+#: templates/js/translated/table_filters.js:338
+msgid "Received"
+msgstr ""
+
+#: order/models.py:1014
+msgid "Number of items received"
+msgstr ""
+
+#: order/models.py:1021 part/templates/part/prices.html:181 stock/models.py:734
+#: stock/serializers.py:169 stock/templates/stock/item_base.html:189
+#: templates/js/translated/stock.js:1960
+msgid "Purchase Price"
+msgstr ""
+
+#: order/models.py:1022
+msgid "Unit purchase price"
+msgstr ""
+
+#: order/models.py:1030
+msgid "Where does the Purchaser want this item to be stored?"
+msgstr ""
+
+#: order/models.py:1096
+msgid "Virtual part cannot be assigned to a sales order"
+msgstr ""
+
+#: order/models.py:1101
+msgid "Only salable parts can be assigned to a sales order"
+msgstr ""
+
+#: order/models.py:1127 part/templates/part/part_pricing.html:115
+#: part/templates/part/prices.html:121 part/templates/part/prices.html:290
+msgid "Sale Price"
+msgstr ""
+
+#: order/models.py:1128
+msgid "Unit sale price"
+msgstr ""
+
+#: order/models.py:1133
+msgid "Shipped quantity"
+msgstr ""
+
+#: order/models.py:1209
+msgid "Date of shipment"
+msgstr ""
+
+#: order/models.py:1216
+msgid "Checked By"
+msgstr ""
+
+#: order/models.py:1217
+msgid "User who checked this shipment"
+msgstr ""
+
+#: order/models.py:1224 order/models.py:1409 order/serializers.py:1224
+#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314
+msgid "Shipment"
+msgstr ""
+
+#: order/models.py:1225
+msgid "Shipment number"
+msgstr ""
+
+#: order/models.py:1229
+msgid "Shipment notes"
+msgstr ""
+
+#: order/models.py:1235
+msgid "Tracking Number"
+msgstr ""
+
+#: order/models.py:1236
+msgid "Shipment tracking information"
+msgstr ""
+
+#: order/models.py:1243
+msgid "Invoice Number"
+msgstr ""
+
+#: order/models.py:1244
+msgid "Reference number for associated invoice"
+msgstr ""
+
+#: order/models.py:1262
+msgid "Shipment has already been sent"
+msgstr ""
+
+#: order/models.py:1265
+msgid "Shipment has no allocated stock items"
+msgstr ""
+
+#: order/models.py:1368 order/models.py:1370
+msgid "Stock item has not been assigned"
+msgstr ""
+
+#: order/models.py:1374
+msgid "Cannot allocate stock item to a line with a different part"
+msgstr ""
+
+#: order/models.py:1376
+msgid "Cannot allocate stock to a line without a part"
+msgstr ""
+
+#: order/models.py:1379
+msgid "Allocation quantity cannot exceed stock quantity"
+msgstr ""
+
+#: order/models.py:1389 order/serializers.py:1086
+msgid "Quantity must be 1 for serialized stock item"
+msgstr ""
+
+#: order/models.py:1392
+msgid "Sales order does not match shipment"
+msgstr ""
+
+#: order/models.py:1393
+msgid "Shipment does not match sales order"
+msgstr ""
+
+#: order/models.py:1401
+msgid "Line"
+msgstr ""
+
+#: order/models.py:1410
+msgid "Sales order shipment reference"
+msgstr ""
+
+#: order/models.py:1423 templates/js/translated/notification.js:55
+msgid "Item"
+msgstr ""
+
+#: order/models.py:1424
+msgid "Select stock item to allocate"
+msgstr ""
+
+#: order/models.py:1427
+msgid "Enter stock allocation quantity"
+msgstr ""
+
+#: order/serializers.py:67
+msgid "Price currency"
+msgstr ""
+
+#: order/serializers.py:199
+msgid "Order cannot be cancelled"
+msgstr ""
+
+#: order/serializers.py:209 order/serializers.py:1104
+msgid "Allow order to be closed with incomplete line items"
+msgstr ""
+
+#: order/serializers.py:220 order/serializers.py:1115
+msgid "Order has incomplete line items"
+msgstr ""
+
+#: order/serializers.py:311
+msgid "Order is not open"
+msgstr ""
+
+#: order/serializers.py:335
+msgid "Purchase price currency"
+msgstr ""
+
+#: order/serializers.py:354
+msgid "Supplier part must be specified"
+msgstr ""
+
+#: order/serializers.py:359
+msgid "Purchase order must be specified"
+msgstr ""
+
+#: order/serializers.py:365
+msgid "Supplier must match purchase order"
+msgstr ""
+
+#: order/serializers.py:366
+msgid "Purchase order must match supplier"
+msgstr ""
+
+#: order/serializers.py:430 order/serializers.py:1192
+msgid "Line Item"
+msgstr ""
+
+#: order/serializers.py:436
+msgid "Line item does not match purchase order"
+msgstr ""
+
+#: order/serializers.py:446 order/serializers.py:553
+msgid "Select destination location for received items"
+msgstr ""
+
+#: order/serializers.py:465 templates/js/translated/order.js:1497
+msgid "Enter batch code for incoming stock items"
+msgstr ""
+
+#: order/serializers.py:473 templates/js/translated/order.js:1508
+msgid "Enter serial numbers for incoming stock items"
+msgstr ""
+
+#: order/serializers.py:486
+msgid "Barcode Hash"
+msgstr ""
+
+#: order/serializers.py:487
+msgid "Unique identifier field"
+msgstr ""
+
+#: order/serializers.py:501
+msgid "Barcode is already in use"
+msgstr ""
+
+#: order/serializers.py:527
+msgid "An integer quantity must be provided for trackable parts"
+msgstr ""
+
+#: order/serializers.py:569
+msgid "Line items must be provided"
+msgstr ""
+
+#: order/serializers.py:586
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:597
+msgid "Supplied barcode values must be unique"
+msgstr ""
+
+#: order/serializers.py:903
+msgid "Sale price currency"
+msgstr ""
+
+#: order/serializers.py:984
+msgid "No shipment details provided"
+msgstr ""
+
+#: order/serializers.py:1047 order/serializers.py:1201
+msgid "Line item is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:1069
+msgid "Quantity must be positive"
+msgstr ""
+
+#: order/serializers.py:1214
+msgid "Enter serial numbers to allocate"
+msgstr ""
+
+#: order/serializers.py:1236 order/serializers.py:1356
+msgid "Shipment has already been shipped"
+msgstr ""
+
+#: order/serializers.py:1239 order/serializers.py:1359
+msgid "Shipment is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:1289
+msgid "No match found for the following serial numbers"
+msgstr ""
+
+#: order/serializers.py:1299
+msgid "The following serial numbers are already allocated"
+msgstr ""
+
+#: order/tasks.py:26
+msgid "Overdue Purchase Order"
+msgstr ""
+
+#: order/tasks.py:31
+#, python-brace-format
+msgid "Purchase order {po} is now overdue"
+msgstr ""
+
+#: order/tasks.py:88
+msgid "Overdue Sales Order"
+msgstr ""
+
+#: order/tasks.py:93
+#, python-brace-format
+msgid "Sales order {so} is now overdue"
+msgstr ""
+
+#: order/templates/order/order_base.html:33
+msgid "Print purchase order report"
+msgstr ""
+
+#: order/templates/order/order_base.html:35
+#: order/templates/order/sales_order_base.html:45
+msgid "Export order to file"
+msgstr ""
+
+#: order/templates/order/order_base.html:41
+#: order/templates/order/sales_order_base.html:54
+msgid "Order actions"
+msgstr ""
+
+#: order/templates/order/order_base.html:46
+#: order/templates/order/sales_order_base.html:58
+msgid "Edit order"
+msgstr ""
+
+#: order/templates/order/order_base.html:50
+#: order/templates/order/sales_order_base.html:61
+msgid "Cancel order"
+msgstr ""
+
+#: order/templates/order/order_base.html:55
+msgid "Duplicate order"
+msgstr ""
+
+#: order/templates/order/order_base.html:61
+msgid "Place order"
+msgstr ""
+
+#: order/templates/order/order_base.html:65
+msgid "Receive items"
+msgstr ""
+
+#: order/templates/order/order_base.html:67
+#: order/templates/order/purchase_order_detail.html:30
+msgid "Receive Items"
+msgstr ""
+
+#: order/templates/order/order_base.html:69
+msgid "Mark order as complete"
+msgstr ""
+
+#: order/templates/order/order_base.html:71
+#: order/templates/order/sales_order_base.html:68
+msgid "Complete Order"
+msgstr ""
+
+#: order/templates/order/order_base.html:93
+#: order/templates/order/sales_order_base.html:80
+msgid "Order Reference"
+msgstr ""
+
+#: order/templates/order/order_base.html:98
+#: order/templates/order/sales_order_base.html:85
+msgid "Order Description"
+msgstr ""
+
+#: order/templates/order/order_base.html:103
+#: order/templates/order/sales_order_base.html:90
+msgid "Order Status"
+msgstr ""
+
+#: order/templates/order/order_base.html:126
+msgid "No suppplier information available"
+msgstr ""
+
+#: order/templates/order/order_base.html:139
+#: order/templates/order/sales_order_base.html:129
+msgid "Completed Line Items"
+msgstr ""
+
+#: order/templates/order/order_base.html:145
+#: order/templates/order/sales_order_base.html:135
+#: order/templates/order/sales_order_base.html:145
+msgid "Incomplete"
+msgstr ""
+
+#: order/templates/order/order_base.html:164
+#: report/templates/report/inventree_build_order_base.html:121
+msgid "Issued"
+msgstr ""
+
+#: order/templates/order/order_base.html:192
+#: order/templates/order/sales_order_base.html:190
+msgid "Total cost"
+msgstr ""
+
+#: order/templates/order/order_base.html:196
+#: order/templates/order/sales_order_base.html:194
+msgid "Total cost could not be calculated"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:12
+#: part/templates/part/import_wizard/ajax_match_references.html:12
+#: part/templates/part/import_wizard/match_references.html:12
+msgid "Errors exist in the submitted data"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:21
+#: part/templates/part/import_wizard/match_references.html:21
+#: templates/patterns/wizard/match_fields.html:28
+msgid "Submit Selections"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:28
+#: part/templates/part/import_wizard/ajax_match_references.html:21
+#: part/templates/part/import_wizard/match_references.html:28
+msgid "Row"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:29
+msgid "Select Supplier Part"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:52
+#: part/templates/part/import_wizard/ajax_match_fields.html:64
+#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463
+#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015
+#: templates/js/translated/order.js:1084 templates/js/translated/order.js:1586
+#: templates/js/translated/order.js:3097 templates/js/translated/stock.js:625
+#: templates/js/translated/stock.js:793
+#: templates/patterns/wizard/match_fields.html:70
+msgid "Remove row"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:8
+msgid "Return to Orders"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:13
+msgid "Upload File for Purchase Order"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:14
+msgid "Order is already processed. Files cannot be uploaded."
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:84
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:17
+msgid "Purchase Order Items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:26
+#: order/templates/order/sales_order_detail.html:22
+#: order/templates/order/sales_order_detail.html:255
+#: templates/js/translated/order.js:728
+msgid "Add Line Item"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:29
+msgid "Receive selected items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:48
+#: order/templates/order/sales_order_detail.html:42
+msgid "Extra Lines"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:53
+#: order/templates/order/sales_order_detail.html:47
+#: order/templates/order/sales_order_detail.html:280
+msgid "Add Extra Line"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:72
+msgid "Received Items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:97
+#: order/templates/order/sales_order_detail.html:150
+msgid "Order Notes"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:232
+msgid "Add Order Line"
+msgstr ""
+
+#: order/templates/order/purchase_orders.html:30
+#: order/templates/order/sales_orders.html:33
+msgid "Print Order Reports"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:43
+msgid "Print sales order report"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:47
+msgid "Print packing list"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:60
+#: templates/js/translated/order.js:232
+msgid "Complete Shipments"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:67
+#: templates/js/translated/order.js:397
+msgid "Complete Sales Order"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:103
+msgid "This Sales Order has not been fully allocated"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:123
+#: templates/js/translated/order.js:2826
+msgid "Customer Reference"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:141
+#: order/templates/order/sales_order_detail.html:104
+#: order/templates/order/so_sidebar.html:11
+msgid "Completed Shipments"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:230
+msgid "Edit Sales Order"
+msgstr ""
+
+#: order/templates/order/sales_order_detail.html:17
+msgid "Sales Order Items"
+msgstr ""
+
+#: order/templates/order/sales_order_detail.html:68
+#: order/templates/order/so_sidebar.html:8
+msgid "Pending Shipments"
+msgstr ""
+
+#: order/templates/order/sales_order_detail.html:72
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1116
+#: templates/js/translated/build.js:1923
+msgid "Actions"
+msgstr ""
+
+#: order/templates/order/sales_order_detail.html:81
+msgid "New Shipment"
+msgstr ""
+
+#: order/views.py:104
+msgid "Match Supplier Parts"
+msgstr ""
+
+#: order/views.py:377
+msgid "Sales order not found"
+msgstr ""
+
+#: order/views.py:383
+msgid "Price not found"
+msgstr ""
+
+#: order/views.py:386
+#, python-brace-format
+msgid "Updated {part} unit-price to {price}"
+msgstr ""
+
+#: order/views.py:391
+#, python-brace-format
+msgid "Updated {part} unit-price to {price} and quantity to {qty}"
+msgstr ""
+
+#: part/api.py:514
+msgid "Incoming Purchase Order"
+msgstr ""
+
+#: part/api.py:534
+msgid "Outgoing Sales Order"
+msgstr ""
+
+#: part/api.py:552
+msgid "Stock produced by Build Order"
+msgstr ""
+
+#: part/api.py:638
+msgid "Stock required for Build Order"
+msgstr ""
+
+#: part/api.py:775
+msgid "Valid"
+msgstr ""
+
+#: part/api.py:776
+msgid "Validate entire Bill of Materials"
+msgstr ""
+
+#: part/api.py:782
+msgid "This option must be selected"
+msgstr ""
+
+#: part/api.py:1205
+msgid "Must be greater than zero"
+msgstr ""
+
+#: part/api.py:1209
+msgid "Must be a valid quantity"
+msgstr ""
+
+#: part/api.py:1224
+msgid "Specify location for initial part stock"
+msgstr ""
+
+#: part/api.py:1255 part/api.py:1259 part/api.py:1274 part/api.py:1278
+msgid "This field is required"
+msgstr ""
+
+#: part/bom.py:127 part/models.py:98 part/models.py:824
+#: part/templates/part/category.html:114 part/templates/part/part_base.html:330
+msgid "Default Location"
+msgstr ""
+
+#: part/bom.py:128 templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: part/bom.py:129 part/templates/part/part_base.html:189
+#: templates/js/translated/order.js:3918
+msgid "Available Stock"
+msgstr ""
+
+#: part/bom.py:130 part/templates/part/part_base.html:207
+#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1853
+#: templates/js/translated/part.js:588 templates/js/translated/part.js:608
+#: templates/js/translated/part.js:1337 templates/js/translated/part.js:1520
+#: templates/js/translated/table_filters.js:68
+msgid "On Order"
+msgstr ""
+
+#: part/forms.py:41
+msgid "Input quantity for price calculation"
+msgstr ""
+
+#: part/models.py:99
+msgid "Default location for parts in this category"
+msgstr ""
+
+#: part/models.py:102
+msgid "Default keywords"
+msgstr ""
+
+#: part/models.py:102
+msgid "Default keywords for parts in this category"
+msgstr ""
+
+#: part/models.py:107 stock/models.py:84
+msgid "Icon"
+msgstr ""
+
+#: part/models.py:108 stock/models.py:85
+msgid "Icon (optional)"
+msgstr ""
+
+#: part/models.py:122 part/models.py:2516 part/templates/part/category.html:16
+#: part/templates/part/part_app_base.html:10
+msgid "Part Category"
+msgstr ""
+
+#: part/models.py:123 part/templates/part/category.html:134
+#: templates/InvenTree/search.html:97 templates/js/translated/search.js:200
+#: users/models.py:37
+msgid "Part Categories"
+msgstr ""
+
+#: part/models.py:344 part/templates/part/cat_link.html:3
+#: part/templates/part/category.html:23 part/templates/part/category.html:139
+#: part/templates/part/category.html:159
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
+#: templates/InvenTree/settings/sidebar.html:41
+#: templates/js/translated/part.js:2004 templates/js/translated/search.js:146
+#: templates/navbar.html:24 users/models.py:38
+msgid "Parts"
+msgstr ""
+
+#: part/models.py:429
+msgid "Invalid choice for parent part"
+msgstr ""
+
+#: part/models.py:499 part/models.py:511
+#, python-brace-format
+msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
+msgstr ""
+
+#: part/models.py:628
+msgid "Next available serial numbers are"
+msgstr ""
+
+#: part/models.py:632
+msgid "Next available serial number is"
+msgstr ""
+
+#: part/models.py:637
+msgid "Most recent serial number is"
+msgstr ""
+
+#: part/models.py:718
+msgid "Duplicate IPN not allowed in part settings"
+msgstr ""
+
+#: part/models.py:745 part/models.py:2570
+msgid "Part name"
+msgstr ""
+
+#: part/models.py:752
+msgid "Is Template"
+msgstr ""
+
+#: part/models.py:753
+msgid "Is this part a template part?"
+msgstr ""
+
+#: part/models.py:763
+msgid "Is this part a variant of another part?"
+msgstr ""
+
+#: part/models.py:764
+msgid "Variant Of"
+msgstr ""
+
+#: part/models.py:770
+msgid "Part description"
+msgstr ""
+
+#: part/models.py:775 part/templates/part/category.html:92
+#: part/templates/part/part_base.html:294
+msgid "Keywords"
+msgstr ""
+
+#: part/models.py:776
+msgid "Part keywords to improve visibility in search results"
+msgstr ""
+
+#: part/models.py:783 part/models.py:2265 part/models.py:2515
+#: part/templates/part/part_base.html:257
+#: templates/InvenTree/settings/settings.html:232
+#: templates/js/translated/notification.js:50
+#: templates/js/translated/part.js:1477 templates/js/translated/part.js:1717
+msgid "Category"
+msgstr ""
+
+#: part/models.py:784
+msgid "Part category"
+msgstr ""
+
+#: part/models.py:789 part/templates/part/part_base.html:266
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:1430
+#: templates/js/translated/stock.js:1726
+msgid "IPN"
+msgstr ""
+
+#: part/models.py:790
+msgid "Internal Part Number"
+msgstr ""
+
+#: part/models.py:796
+msgid "Part revision or version number"
+msgstr ""
+
+#: part/models.py:797 part/templates/part/part_base.html:273
+#: report/models.py:171 templates/js/translated/part.js:741
+msgid "Revision"
+msgstr ""
+
+#: part/models.py:822
+msgid "Where is this item normally stored?"
+msgstr ""
+
+#: part/models.py:867 part/templates/part/part_base.html:339
+msgid "Default Supplier"
+msgstr ""
+
+#: part/models.py:868
+msgid "Default supplier part"
+msgstr ""
+
+#: part/models.py:875
+msgid "Default Expiry"
+msgstr ""
+
+#: part/models.py:876
+msgid "Expiry time (in days) for stock items of this part"
+msgstr ""
+
+#: part/models.py:881 part/templates/part/part_base.html:200
+msgid "Minimum Stock"
+msgstr ""
+
+#: part/models.py:882
+msgid "Minimum allowed stock level"
+msgstr ""
+
+#: part/models.py:889
+msgid "Stock keeping units for this part"
+msgstr ""
+
+#: part/models.py:895
+msgid "Can this part be built from other parts?"
+msgstr ""
+
+#: part/models.py:901
+msgid "Can this part be used to build other parts?"
+msgstr ""
+
+#: part/models.py:907
+msgid "Does this part have tracking for unique items?"
+msgstr ""
+
+#: part/models.py:912
+msgid "Can this part be purchased from external suppliers?"
+msgstr ""
+
+#: part/models.py:917
+msgid "Can this part be sold to customers?"
+msgstr ""
+
+#: part/models.py:922
+msgid "Is this part active?"
+msgstr ""
+
+#: part/models.py:927
+msgid "Is this a virtual part, such as a software product or license?"
+msgstr ""
+
+#: part/models.py:929
+msgid "Part notes"
+msgstr ""
+
+#: part/models.py:931
+msgid "BOM checksum"
+msgstr ""
+
+#: part/models.py:931
+msgid "Stored BOM checksum"
+msgstr ""
+
+#: part/models.py:934
+msgid "BOM checked by"
+msgstr ""
+
+#: part/models.py:936
+msgid "BOM checked date"
+msgstr ""
+
+#: part/models.py:940
+msgid "Creation User"
+msgstr ""
+
+#: part/models.py:1783
+msgid "Sell multiple"
+msgstr ""
+
+#: part/models.py:2312
+msgid "Test templates can only be created for trackable parts"
+msgstr ""
+
+#: part/models.py:2329
+msgid "Test with this name already exists for this part"
+msgstr ""
+
+#: part/models.py:2349 templates/js/translated/part.js:2055
+#: templates/js/translated/stock.js:1340
+msgid "Test Name"
+msgstr ""
+
+#: part/models.py:2350
+msgid "Enter a name for the test"
+msgstr ""
+
+#: part/models.py:2355
+msgid "Test Description"
+msgstr ""
+
+#: part/models.py:2356
+msgid "Enter description for this test"
+msgstr ""
+
+#: part/models.py:2361 templates/js/translated/part.js:2064
+#: templates/js/translated/table_filters.js:302
+msgid "Required"
+msgstr ""
+
+#: part/models.py:2362
+msgid "Is this test required to pass?"
+msgstr ""
+
+#: part/models.py:2367 templates/js/translated/part.js:2072
+msgid "Requires Value"
+msgstr ""
+
+#: part/models.py:2368
+msgid "Does this test require a value when adding a test result?"
+msgstr ""
+
+#: part/models.py:2373 templates/js/translated/part.js:2079
+msgid "Requires Attachment"
+msgstr ""
+
+#: part/models.py:2374
+msgid "Does this test require a file attachment when adding a test result?"
+msgstr ""
+
+#: part/models.py:2382
+#, python-brace-format
+msgid "Illegal character in template name ({c})"
+msgstr ""
+
+#: part/models.py:2418
+msgid "Parameter template name must be unique"
+msgstr ""
+
+#: part/models.py:2426
+msgid "Parameter Name"
+msgstr ""
+
+#: part/models.py:2433
+msgid "Parameter Units"
+msgstr ""
+
+#: part/models.py:2438
+msgid "Parameter description"
+msgstr ""
+
+#: part/models.py:2471
+msgid "Parent Part"
+msgstr ""
+
+#: part/models.py:2473 part/models.py:2521 part/models.py:2522
+#: templates/InvenTree/settings/settings.html:227
+msgid "Parameter Template"
+msgstr ""
+
+#: part/models.py:2475
+msgid "Data"
+msgstr ""
+
+#: part/models.py:2475
+msgid "Parameter Value"
+msgstr ""
+
+#: part/models.py:2526 templates/InvenTree/settings/settings.html:236
+msgid "Default Value"
+msgstr ""
+
+#: part/models.py:2527
+msgid "Default Parameter Value"
+msgstr ""
+
+#: part/models.py:2562
+msgid "Part ID or part name"
+msgstr ""
+
+#: part/models.py:2565 templates/js/translated/model_renderers.js:212
+msgid "Part ID"
+msgstr ""
+
+#: part/models.py:2566
+msgid "Unique part ID value"
+msgstr ""
+
+#: part/models.py:2569
+msgid "Part Name"
+msgstr ""
+
+#: part/models.py:2573
+msgid "Part IPN"
+msgstr ""
+
+#: part/models.py:2574
+msgid "Part IPN value"
+msgstr ""
+
+#: part/models.py:2577
+msgid "Level"
+msgstr ""
+
+#: part/models.py:2578
+msgid "BOM level"
+msgstr ""
+
+#: part/models.py:2647
+msgid "Select parent part"
+msgstr ""
+
+#: part/models.py:2655
+msgid "Sub part"
+msgstr ""
+
+#: part/models.py:2656
+msgid "Select part to be used in BOM"
+msgstr ""
+
+#: part/models.py:2662
+msgid "BOM quantity for this BOM item"
+msgstr ""
+
+#: part/models.py:2664 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:876 templates/js/translated/bom.js:1005
+#: templates/js/translated/table_filters.js:100
+msgid "Optional"
+msgstr ""
+
+#: part/models.py:2664
+msgid "This BOM item is optional"
+msgstr ""
+
+#: part/models.py:2667 part/templates/part/upload_bom.html:55
+msgid "Overage"
+msgstr ""
+
+#: part/models.py:2668
+msgid "Estimated build wastage quantity (absolute or percentage)"
+msgstr ""
+
+#: part/models.py:2671
+msgid "BOM item reference"
+msgstr ""
+
+#: part/models.py:2674
+msgid "BOM item notes"
+msgstr ""
+
+#: part/models.py:2676
+msgid "Checksum"
+msgstr ""
+
+#: part/models.py:2676
+msgid "BOM line checksum"
+msgstr ""
+
+#: part/models.py:2680 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:1022
+#: templates/js/translated/table_filters.js:76
+#: templates/js/translated/table_filters.js:96
+msgid "Inherited"
+msgstr ""
+
+#: part/models.py:2681
+msgid "This BOM item is inherited by BOMs for variant parts"
+msgstr ""
+
+#: part/models.py:2686 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:1014
+msgid "Allow Variants"
+msgstr ""
+
+#: part/models.py:2687
+msgid "Stock items for variant parts can be used for this BOM item"
+msgstr ""
+
+#: part/models.py:2765 stock/models.py:468
+msgid "Quantity must be integer value for trackable parts"
+msgstr ""
+
+#: part/models.py:2774 part/models.py:2776
+msgid "Sub part must be specified"
+msgstr ""
+
+#: part/models.py:2881
+msgid "BOM Item Substitute"
+msgstr ""
+
+#: part/models.py:2902
+msgid "Substitute part cannot be the same as the master part"
+msgstr ""
+
+#: part/models.py:2915
+msgid "Parent BOM item"
+msgstr ""
+
+#: part/models.py:2923
+msgid "Substitute part"
+msgstr ""
+
+#: part/models.py:2938
+msgid "Part 1"
+msgstr ""
+
+#: part/models.py:2942
+msgid "Part 2"
+msgstr ""
+
+#: part/models.py:2942
+msgid "Select Related Part"
+msgstr ""
+
+#: part/models.py:2960
+msgid "Part relationship cannot be created between a part and itself"
+msgstr ""
+
+#: part/models.py:2964
+msgid "Duplicate relationship already exists"
+msgstr ""
+
+#: part/serializers.py:154 part/serializers.py:185 stock/serializers.py:179
+msgid "Purchase currency of this stock item"
+msgstr ""
+
+#: part/serializers.py:815
+msgid "Select part to copy BOM from"
+msgstr ""
+
+#: part/serializers.py:823
+msgid "Remove Existing Data"
+msgstr ""
+
+#: part/serializers.py:824
+msgid "Remove existing BOM items before copying"
+msgstr ""
+
+#: part/serializers.py:829
+msgid "Include Inherited"
+msgstr ""
+
+#: part/serializers.py:830
+msgid "Include BOM items which are inherited from templated parts"
+msgstr ""
+
+#: part/serializers.py:835
+msgid "Skip Invalid Rows"
+msgstr ""
+
+#: part/serializers.py:836
+msgid "Enable this option to skip invalid rows"
+msgstr ""
+
+#: part/serializers.py:841
+msgid "Copy Substitute Parts"
+msgstr ""
+
+#: part/serializers.py:842
+msgid "Copy substitute parts when duplicate BOM items"
+msgstr ""
+
+#: part/serializers.py:882
+msgid "Clear Existing BOM"
+msgstr ""
+
+#: part/serializers.py:883
+msgid "Delete existing BOM items before uploading"
+msgstr ""
+
+#: part/serializers.py:913
+msgid "No part column specified"
+msgstr ""
+
+#: part/serializers.py:956
+msgid "Multiple matching parts found"
+msgstr ""
+
+#: part/serializers.py:959
+msgid "No matching part found"
+msgstr ""
+
+#: part/serializers.py:962
+msgid "Part is not designated as a component"
+msgstr ""
+
+#: part/serializers.py:971
+msgid "Quantity not provided"
+msgstr ""
+
+#: part/serializers.py:979
+msgid "Invalid quantity"
+msgstr ""
+
+#: part/serializers.py:1000
+msgid "At least one BOM item is required"
+msgstr ""
+
+#: part/tasks.py:21
+msgid "Low stock notification"
+msgstr ""
+
+#: part/tasks.py:22
+#, python-brace-format
+msgid ""
+"The available stock for {part.name} has fallen below the configured minimum "
+"level"
+msgstr ""
+
+#: part/templates/part/bom.html:6
+msgid "You do not have permission to edit the BOM."
+msgstr ""
+
+#: part/templates/part/bom.html:15
+#, python-format
+msgid "The BOM for %(part)s has changed, and must be validated. "
+msgstr ""
+
+#: part/templates/part/bom.html:17
+#, python-format
+msgid ""
+"The BOM for %(part)s was last checked by %(checker)s on "
+"%(check_date)s"
+msgstr ""
+
+#: part/templates/part/bom.html:21
+#, python-format
+msgid "The BOM for %(part)s has not been validated."
+msgstr ""
+
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:269
+msgid "BOM actions"
+msgstr ""
+
+#: part/templates/part/bom.html:34
+msgid "Delete Items"
+msgstr ""
+
+#: part/templates/part/category.html:34 part/templates/part/category.html:38
+msgid "You are subscribed to notifications for this category"
+msgstr ""
+
+#: part/templates/part/category.html:42
+msgid "Subscribe to notifications for this category"
+msgstr ""
+
+#: part/templates/part/category.html:48
+msgid "Category Actions"
+msgstr ""
+
+#: part/templates/part/category.html:53
+msgid "Edit category"
+msgstr ""
+
+#: part/templates/part/category.html:54
+msgid "Edit Category"
+msgstr ""
+
+#: part/templates/part/category.html:58
+msgid "Delete category"
+msgstr ""
+
+#: part/templates/part/category.html:59
+msgid "Delete Category"
+msgstr ""
+
+#: part/templates/part/category.html:67
+msgid "Create new part category"
+msgstr ""
+
+#: part/templates/part/category.html:68
+msgid "New Category"
+msgstr ""
+
+#: part/templates/part/category.html:86 part/templates/part/category.html:99
+msgid "Category Path"
+msgstr ""
+
+#: part/templates/part/category.html:100
+msgid "Top level part category"
+msgstr ""
+
+#: part/templates/part/category.html:120 part/templates/part/category.html:228
+#: part/templates/part/category_sidebar.html:7
+msgid "Subcategories"
+msgstr ""
+
+#: part/templates/part/category.html:125
+msgid "Parts (Including subcategories)"
+msgstr ""
+
+#: part/templates/part/category.html:163
+msgid "Create new part"
+msgstr ""
+
+#: part/templates/part/category.html:164 templates/js/translated/bom.js:367
+msgid "New Part"
+msgstr ""
+
+#: part/templates/part/category.html:174 part/templates/part/detail.html:368
+#: part/templates/part/detail.html:399
+msgid "Options"
+msgstr ""
+
+#: part/templates/part/category.html:178
+msgid "Set category"
+msgstr ""
+
+#: part/templates/part/category.html:179
+msgid "Set Category"
+msgstr ""
+
+#: part/templates/part/category.html:186 part/templates/part/category.html:187
+msgid "Print Labels"
+msgstr ""
+
+#: part/templates/part/category.html:212
+msgid "Part Parameters"
+msgstr ""
+
+#: part/templates/part/category.html:327
+msgid "Create Part Category"
+msgstr ""
+
+#: part/templates/part/category.html:347
+msgid "Create Part"
+msgstr ""
+
+#: part/templates/part/category.html:350
+msgid "Create another part after this one"
+msgstr ""
+
+#: part/templates/part/category.html:351
+msgid "Part created successfully"
+msgstr ""
+
+#: part/templates/part/category_sidebar.html:13
+msgid "Import Parts"
+msgstr ""
+
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:379
+msgid "Duplicate Part"
+msgstr ""
+
+#: part/templates/part/copy_part.html:10
+#, python-format
+msgid "Make a copy of part '%(full_name)s'."
+msgstr ""
+
+#: part/templates/part/copy_part.html:14
+#: part/templates/part/create_part.html:11
+msgid "Possible Matching Parts"
+msgstr ""
+
+#: part/templates/part/copy_part.html:15
+#: part/templates/part/create_part.html:12
+msgid "The new part may be a duplicate of these existing parts"
+msgstr ""
+
+#: part/templates/part/create_part.html:17
+#, python-format
+msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)"
+msgstr ""
+
+#: part/templates/part/detail.html:20
+msgid "Part Stock"
+msgstr ""
+
+#: part/templates/part/detail.html:44
+msgid "Refresh scheduling data"
+msgstr ""
+
+#: part/templates/part/detail.html:45 templates/js/translated/tables.js:560
+msgid "Refresh"
+msgstr ""
+
+#: part/templates/part/detail.html:59
+msgid "Part Test Templates"
+msgstr ""
+
+#: part/templates/part/detail.html:64
+msgid "Add Test Template"
+msgstr ""
+
+#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53
+msgid "Sales Order Allocations"
+msgstr ""
+
+#: part/templates/part/detail.html:143
+msgid "Part Notes"
+msgstr ""
+
+#: part/templates/part/detail.html:158
+msgid "Part Variants"
+msgstr ""
+
+#: part/templates/part/detail.html:162
+msgid "Create new variant"
+msgstr ""
+
+#: part/templates/part/detail.html:163
+msgid "New Variant"
+msgstr ""
+
+#: part/templates/part/detail.html:190
+msgid "Add new parameter"
+msgstr ""
+
+#: part/templates/part/detail.html:227 part/templates/part/part_sidebar.html:54
+msgid "Related Parts"
+msgstr ""
+
+#: part/templates/part/detail.html:231 part/templates/part/detail.html:232
+msgid "Add Related"
+msgstr ""
+
+#: part/templates/part/detail.html:252 part/templates/part/part_sidebar.html:17
+msgid "Bill of Materials"
+msgstr ""
+
+#: part/templates/part/detail.html:257
+msgid "Export actions"
+msgstr ""
+
+#: part/templates/part/detail.html:261 templates/js/translated/bom.js:284
+msgid "Export BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:263
+msgid "Print BOM Report"
+msgstr ""
+
+#: part/templates/part/detail.html:273
+msgid "Upload BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:274 templates/js/translated/part.js:274
+msgid "Copy BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:275
+msgid "Validate BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:280
+msgid "New BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:281
+msgid "Add BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:294
+msgid "Assemblies"
+msgstr ""
+
+#: part/templates/part/detail.html:312
+msgid "Part Builds"
+msgstr ""
+
+#: part/templates/part/detail.html:339 stock/templates/stock/item.html:38
+msgid "Build Order Allocations"
+msgstr ""
+
+#: part/templates/part/detail.html:355
+msgid "Part Suppliers"
+msgstr ""
+
+#: part/templates/part/detail.html:385
+msgid "Part Manufacturers"
+msgstr ""
+
+#: part/templates/part/detail.html:401
+msgid "Delete manufacturer parts"
+msgstr ""
+
+#: part/templates/part/detail.html:626
+msgid "Create BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:670
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:678
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Test Result Template"
+msgstr ""
+
+#: part/templates/part/detail.html:914
+#, python-format
+msgid "Purchase Unit Price - %(currency)s"
+msgstr ""
+
+#: part/templates/part/detail.html:926
+#, python-format
+msgid "Unit Price-Cost Difference - %(currency)s"
+msgstr ""
+
+#: part/templates/part/detail.html:938
+#, python-format
+msgid "Supplier Unit Cost - %(currency)s"
+msgstr ""
+
+#: part/templates/part/detail.html:1027
+#, python-format
+msgid "Unit Price - %(currency)s"
+msgstr ""
+
+#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: templates/patterns/wizard/match_fields.html:8
+msgid "Missing selections for the following required columns"
+msgstr ""
+
+#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: templates/patterns/wizard/match_fields.html:19
+msgid "Duplicate selections found, see below. Fix them then retry submitting."
+msgstr ""
+
+#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: templates/patterns/wizard/match_fields.html:34
+msgid "File Fields"
+msgstr ""
+
+#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: templates/patterns/wizard/match_fields.html:41
+msgid "Remove column"
+msgstr ""
+
+#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: templates/patterns/wizard/match_fields.html:59
+msgid "Duplicate selection"
+msgstr ""
+
+#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: templates/patterns/wizard/upload.html:13
+#, python-format
+msgid "Step %(step)s of %(count)s"
+msgstr ""
+
+#: part/templates/part/import_wizard/ajax_part_upload.html:29
+#: part/templates/part/import_wizard/part_upload.html:14
+msgid "Unsuffitient privileges."
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:8
+msgid "Return to Parts"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:13
+msgid "Import Parts from File"
+msgstr ""
+
+#: part/templates/part/part_app_base.html:12
+msgid "Part List"
+msgstr ""
+
+#: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31
+msgid "You are subscribed to notifications for this part"
+msgstr ""
+
+#: part/templates/part/part_base.html:35
+msgid "Subscribe to notifications for this part"
+msgstr ""
+
+#: part/templates/part/part_base.html:43
+#: stock/templates/stock/item_base.html:41
+#: stock/templates/stock/location.html:48
+msgid "Barcode actions"
+msgstr ""
+
+#: part/templates/part/part_base.html:46
+#: stock/templates/stock/item_base.html:45
+#: stock/templates/stock/location.html:50 templates/qr_button.html:1
+msgid "Show QR Code"
+msgstr ""
+
+#: part/templates/part/part_base.html:49
+#: stock/templates/stock/item_base.html:63
+#: stock/templates/stock/location.html:52
+msgid "Print Label"
+msgstr ""
+
+#: part/templates/part/part_base.html:55
+msgid "Show pricing information"
+msgstr ""
+
+#: part/templates/part/part_base.html:60
+#: stock/templates/stock/item_base.html:111
+#: stock/templates/stock/location.html:61
+msgid "Stock actions"
+msgstr ""
+
+#: part/templates/part/part_base.html:67
+msgid "Count part stock"
+msgstr ""
+
+#: part/templates/part/part_base.html:73
+msgid "Transfer part stock"
+msgstr ""
+
+#: part/templates/part/part_base.html:88
+msgid "Part actions"
+msgstr ""
+
+#: part/templates/part/part_base.html:91
+msgid "Duplicate part"
+msgstr ""
+
+#: part/templates/part/part_base.html:94
+msgid "Edit part"
+msgstr ""
+
+#: part/templates/part/part_base.html:97
+msgid "Delete part"
+msgstr ""
+
+#: part/templates/part/part_base.html:116
+msgid "Part is a template part (variants can be made from this part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:120
+msgid "Part can be assembled from other parts"
+msgstr ""
+
+#: part/templates/part/part_base.html:124
+msgid "Part can be used in assemblies"
+msgstr ""
+
+#: part/templates/part/part_base.html:128
+msgid "Part stock is tracked by serial number"
+msgstr ""
+
+#: part/templates/part/part_base.html:132
+msgid "Part can be purchased from external suppliers"
+msgstr ""
+
+#: part/templates/part/part_base.html:136
+msgid "Part can be sold to customers"
+msgstr ""
+
+#: part/templates/part/part_base.html:142
+#: part/templates/part/part_base.html:150
+msgid "Part is virtual (not a physical part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:143
+#: templates/js/translated/company.js:659
+#: templates/js/translated/company.js:920
+#: templates/js/translated/model_renderers.js:204
+#: templates/js/translated/part.js:652 templates/js/translated/part.js:729
+msgid "Inactive"
+msgstr ""
+
+#: part/templates/part/part_base.html:160
+#: part/templates/part/part_base.html:586
+msgid "Show Part Details"
+msgstr ""
+
+#: part/templates/part/part_base.html:177
+#, python-format
+msgid "This part is a variant of %(link)s"
+msgstr ""
+
+#: part/templates/part/part_base.html:194
+#: templates/js/translated/company.js:1027
+#: templates/js/translated/table_filters.js:201
+msgid "In Stock"
+msgstr ""
+
+#: part/templates/part/part_base.html:215
+#: stock/templates/stock/item_base.html:382
+msgid "Allocated to Build Orders"
+msgstr ""
+
+#: part/templates/part/part_base.html:224
+#: stock/templates/stock/item_base.html:375
+msgid "Allocated to Sales Orders"
+msgstr ""
+
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1043
+msgid "Can Build"
+msgstr ""
+
+#: part/templates/part/part_base.html:238 templates/js/translated/part.js:591
+#: templates/js/translated/part.js:611 templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1527
+msgid "Building"
+msgstr ""
+
+#: part/templates/part/part_base.html:287
+msgid "Minimum stock level"
+msgstr ""
+
+#: part/templates/part/part_base.html:316
+msgid "Latest Serial Number"
+msgstr ""
+
+#: part/templates/part/part_base.html:320
+#: stock/templates/stock/item_base.html:331
+msgid "Search for serial number"
+msgstr ""
+
+#: part/templates/part/part_base.html:443 part/templates/part/prices.html:149
+msgid "Calculate"
+msgstr ""
+
+#: part/templates/part/part_base.html:486
+msgid "No matching images found"
+msgstr ""
+
+#: part/templates/part/part_base.html:580
+msgid "Hide Part Details"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:24
+msgid "Supplier Pricing"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:26
+#: part/templates/part/part_pricing.html:52
+#: part/templates/part/part_pricing.html:103
+#: part/templates/part/part_pricing.html:118 part/templates/part/prices.html:28
+#: part/templates/part/prices.html:55 part/templates/part/prices.html:108
+#: part/templates/part/prices.html:125
+msgid "Unit Cost"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:32
+#: part/templates/part/part_pricing.html:58
+#: part/templates/part/part_pricing.html:107
+#: part/templates/part/part_pricing.html:122 part/templates/part/prices.html:35
+#: part/templates/part/prices.html:62 part/templates/part/prices.html:113
+#: part/templates/part/prices.html:130
+msgid "Total Cost"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
+#: templates/js/translated/bom.js:997
+msgid "No supplier pricing available"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:52
+#: part/templates/part/prices.html:248
+msgid "BOM Pricing"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:66 part/templates/part/prices.html:72
+msgid "Unit Purchase Price"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:72 part/templates/part/prices.html:79
+msgid "Total Purchase Price"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:82 part/templates/part/prices.html:89
+msgid "Note: BOM pricing is incomplete for this part"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:91 part/templates/part/prices.html:98
+msgid "No BOM pricing available"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:100
+#: part/templates/part/prices.html:107
+msgid "Internal Price"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:131
+#: part/templates/part/prices.html:139
+msgid "No pricing information is available for this part."
+msgstr ""
+
+#: part/templates/part/part_scheduling.html:13
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/InvenTree/settings/plugin.html:53
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:2001 templates/js/translated/stock.js:2464
+msgid "Date"
+msgstr ""
+
+#: part/templates/part/part_scheduling.html:14
+msgid "Scheduled Quantity"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:11
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:46
+msgid "Scheduling"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:50
+msgid "Test Templates"
+msgstr ""
+
+#: part/templates/part/part_thumb.html:11
+msgid "Select from existing images"
+msgstr ""
+
+#: part/templates/part/prices.html:19
+msgid "Pricing ranges"
+msgstr ""
+
+#: part/templates/part/prices.html:25
+msgid "Show supplier cost"
+msgstr ""
+
+#: part/templates/part/prices.html:26
+msgid "Show purchase price"
+msgstr ""
+
+#: part/templates/part/prices.html:53
+msgid "Show BOM cost"
+msgstr ""
+
+#: part/templates/part/prices.html:122
+msgid "Show sale cost"
+msgstr ""
+
+#: part/templates/part/prices.html:123
+msgid "Show sale price"
+msgstr ""
+
+#: part/templates/part/prices.html:145
+msgid "Calculation parameters"
+msgstr ""
+
+#: part/templates/part/prices.html:160 templates/js/translated/bom.js:991
+msgid "Supplier Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:161 part/templates/part/prices.html:182
+#: part/templates/part/prices.html:206 part/templates/part/prices.html:236
+#: part/templates/part/prices.html:262 part/templates/part/prices.html:291
+msgid "Jump to overview"
+msgstr ""
+
+#: part/templates/part/prices.html:186
+msgid "Stock Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:195
+msgid "No stock pricing history is available for this part."
+msgstr ""
+
+#: part/templates/part/prices.html:205
+msgid "Internal Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:220
+msgid "Add Internal Price Break"
+msgstr ""
+
+#: part/templates/part/prices.html:235
+msgid "BOM Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:261
+msgid "Sale Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:302
+msgid "No sale pice history available for this part."
+msgstr ""
+
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:614
+#: templates/js/translated/part.js:1329 templates/js/translated/part.js:1331
+msgid "No Stock"
+msgstr ""
+
+#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:158
+msgid "Low Stock"
+msgstr ""
+
+#: part/templates/part/upload_bom.html:8
+msgid "Return to BOM"
+msgstr ""
+
+#: part/templates/part/upload_bom.html:13
+msgid "Upload Bill of Materials"
+msgstr ""
+
+#: part/templates/part/upload_bom.html:19
+msgid "BOM upload requirements"
+msgstr ""
+
+#: part/templates/part/upload_bom.html:23
+#: part/templates/part/upload_bom.html:90
+msgid "Upload BOM File"
+msgstr ""
+
+#: part/templates/part/upload_bom.html:29
+msgid "Submit BOM Data"
+msgstr ""
+
+#: part/templates/part/upload_bom.html:37
+msgid "Requirements for BOM upload"
+msgstr ""
+
+#: part/templates/part/upload_bom.html:39
+msgid ""
+"The BOM file must contain the required named columns as provided in the "
+msgstr ""
+
+#: part/templates/part/upload_bom.html:39
+msgid "BOM Upload Template"
+msgstr ""
+
+#: part/templates/part/upload_bom.html:40
+msgid "Each part must already exist in the database"
+msgstr ""
+
+#: part/templates/part/variant_part.html:9
+msgid "Create new part variant"
+msgstr ""
+
+#: part/templates/part/variant_part.html:10
+#, python-format
+msgid "Create a new variant of template '%(full_name)s' ."
+msgstr ""
+
+#: part/templatetags/inventree_extras.py:177
+msgid "Unknown database"
+msgstr ""
+
+#: part/templatetags/inventree_extras.py:229
+#, python-brace-format
+msgid "{title} v{version}"
+msgstr ""
+
+#: part/views.py:114
+msgid "Match References"
+msgstr ""
+
+#: part/views.py:415
+msgid "None"
+msgstr ""
+
+#: part/views.py:477
+msgid "Part QR Code"
+msgstr ""
+
+#: part/views.py:495
+msgid "Select Part Image"
+msgstr ""
+
+#: part/views.py:521
+msgid "Updated part image"
+msgstr ""
+
+#: part/views.py:524
+msgid "Part image not found"
+msgstr ""
+
+#: part/views.py:613
+msgid "Part Pricing"
+msgstr ""
+
+#: plugin/apps.py:56
+msgid ""
+"Your enviroment has an outdated git version. This prevents InvenTree from "
+"loading plugin details."
+msgstr ""
+
+#: plugin/base/action/api.py:27
+msgid "No action specified"
+msgstr ""
+
+#: plugin/base/action/api.py:38
+msgid "No matching action found"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:154
+msgid "Must provide barcode_data parameter"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:128
+msgid "No match found for barcode data"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:130
+msgid "Match found for barcode data"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:157
+msgid "Must provide stockitem parameter"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:164
+msgid "No matching stock item found"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:194
+msgid "Barcode already matches Stock Item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:198
+msgid "Barcode already matches Stock Location"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:202
+msgid "Barcode already matches Part"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:208 plugin/base/barcodes/api.py:220
+msgid "Barcode hash already matches Stock Item"
+msgstr ""
+
+#: plugin/base/barcodes/api.py:226
+msgid "Barcode associated with Stock Item"
+msgstr ""
+
+#: plugin/base/label/label.py:60
+msgid "Label printing failed"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:29
+msgid "InvenTree contributors"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:30
+msgid "Integrated outgoing notificaton methods"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:34
+#: plugin/builtin/integration/core_notifications.py:53
+msgid "Enable email notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:35
+#: plugin/builtin/integration/core_notifications.py:54
+msgid "Allow sending of emails for event notifications"
+msgstr ""
+
+#: plugin/models.py:33
+msgid "Plugin Metadata"
+msgstr ""
+
+#: plugin/models.py:34
+msgid "JSON metadata field, for use by external plugins"
+msgstr ""
+
+#: plugin/models.py:80
+msgid "Plugin Configuration"
+msgstr ""
+
+#: plugin/models.py:81
+msgid "Plugin Configurations"
+msgstr ""
+
+#: plugin/models.py:86
+msgid "Key"
+msgstr ""
+
+#: plugin/models.py:87
+msgid "Key of plugin"
+msgstr ""
+
+#: plugin/models.py:95
+msgid "PluginName of the plugin"
+msgstr ""
+
+#: plugin/models.py:101
+msgid "Is the plugin active"
+msgstr ""
+
+#: plugin/models.py:158
+msgid "Sample plugin"
+msgstr ""
+
+#: plugin/models.py:188
+msgid "Plugin"
+msgstr ""
+
+#: plugin/models.py:253
+msgid "Method"
+msgstr ""
+
+#: plugin/plugin.py:252
+msgid "No author found"
+msgstr ""
+
+#: plugin/plugin.py:264
+msgid "No date found"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:39
+msgid "Enable PO"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:40
+msgid "Enable PO functionality in InvenTree interface"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:45
+msgid "API Key"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:46
+msgid "Key required for accessing external API"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:49
+msgid "Numerical"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:50
+msgid "A numerical setting"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:55
+msgid "Choice Setting"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:56
+msgid "A setting with multiple choices"
+msgstr ""
+
+#: plugin/serializers.py:72
+msgid "Source URL"
+msgstr ""
+
+#: plugin/serializers.py:73
+msgid "Source for the package - this can be a custom registry or a VCS path"
+msgstr ""
+
+#: plugin/serializers.py:78
+msgid "Package Name"
+msgstr ""
+
+#: plugin/serializers.py:79
+msgid "Name for the Plugin Package - can also contain a version indicator"
+msgstr ""
+
+#: plugin/serializers.py:82
+msgid "Confirm plugin installation"
+msgstr ""
+
+#: plugin/serializers.py:83
+msgid ""
+"This will install this plugin now into the current instance. The instance "
+"will go into maintenance."
+msgstr ""
+
+#: plugin/serializers.py:103
+msgid "Installation not confirmed"
+msgstr ""
+
+#: plugin/serializers.py:105
+msgid "Either packagename of URL must be provided"
+msgstr ""
+
+#: report/api.py:180
+msgid "No valid objects provided to template"
+msgstr ""
+
+#: report/api.py:216 report/api.py:252
+#, python-brace-format
+msgid "Template file '{template}' is missing or does not exist"
+msgstr ""
+
+#: report/api.py:355
+msgid "Test report"
+msgstr ""
+
+#: report/models.py:153
+msgid "Template name"
+msgstr ""
+
+#: report/models.py:159
+msgid "Report template file"
+msgstr ""
+
+#: report/models.py:166
+msgid "Report template description"
+msgstr ""
+
+#: report/models.py:172
+msgid "Report revision number (auto-increments)"
+msgstr ""
+
+#: report/models.py:248
+msgid "Pattern for generating report filenames"
+msgstr ""
+
+#: report/models.py:255
+msgid "Report template is enabled"
+msgstr ""
+
+#: report/models.py:281
+msgid "StockItem query filters (comma-separated list of key=value pairs)"
+msgstr ""
+
+#: report/models.py:289
+msgid "Include Installed Tests"
+msgstr ""
+
+#: report/models.py:290
+msgid "Include test results for stock items installed inside assembled item"
+msgstr ""
+
+#: report/models.py:337
+msgid "Build Filters"
+msgstr ""
+
+#: report/models.py:338
+msgid "Build query filters (comma-separated list of key=value pairs"
+msgstr ""
+
+#: report/models.py:377
+msgid "Part Filters"
+msgstr ""
+
+#: report/models.py:378
+msgid "Part query filters (comma-separated list of key=value pairs"
+msgstr ""
+
+#: report/models.py:412
+msgid "Purchase order query filters"
+msgstr ""
+
+#: report/models.py:450
+msgid "Sales order query filters"
+msgstr ""
+
+#: report/models.py:502
+msgid "Snippet"
+msgstr ""
+
+#: report/models.py:503
+msgid "Report snippet file"
+msgstr ""
+
+#: report/models.py:507
+msgid "Snippet file description"
+msgstr ""
+
+#: report/models.py:544
+msgid "Asset"
+msgstr ""
+
+#: report/models.py:545
+msgid "Report asset file"
+msgstr ""
+
+#: report/models.py:552
+msgid "Asset file description"
+msgstr ""
+
+#: report/templates/report/inventree_build_order_base.html:146
+msgid "Required For"
+msgstr ""
+
+#: report/templates/report/inventree_po_report.html:77
+msgid "Supplier was deleted"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:21
+msgid "Stock Item Test Report"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:79
+#: stock/models.py:648 stock/templates/stock/item_base.html:320
+#: templates/js/translated/build.js:456 templates/js/translated/build.js:608
+#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706
+#: templates/js/translated/model_renderers.js:118
+#: templates/js/translated/order.js:121 templates/js/translated/order.js:3597
+#: templates/js/translated/order.js:3684 templates/js/translated/stock.js:490
+msgid "Serial Number"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:88
+msgid "Test Results"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:93
+#: stock/models.py:2083
+msgid "Test"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:94
+#: stock/models.py:2089
+msgid "Result"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:108
+msgid "Pass"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:110
+msgid "Fail"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:123
+#: stock/templates/stock/stock_sidebar.html:16
+msgid "Installed Items"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:137
+#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780
+#: templates/js/translated/stock.js:2713
+msgid "Serial"
+msgstr ""
+
+#: stock/api.py:529
+msgid "Quantity is required"
+msgstr ""
+
+#: stock/api.py:536
+msgid "Valid part must be supplied"
+msgstr ""
+
+#: stock/api.py:561
+msgid "Serial numbers cannot be supplied for a non-trackable part"
+msgstr ""
+
+#: stock/models.py:89 stock/models.py:739
+#: stock/templates/stock/item_base.html:250
+msgid "Owner"
+msgstr ""
+
+#: stock/models.py:90 stock/models.py:740
+msgid "Select Owner"
+msgstr ""
+
+#: stock/models.py:442
+msgid "StockItem with this serial number already exists"
+msgstr ""
+
+#: stock/models.py:474 stock/serializers.py:93
+msgid "Stock item cannot be created for virtual parts"
+msgstr ""
+
+#: stock/models.py:491
+#, python-brace-format
+msgid "Part type ('{pf}') must be {pe}"
+msgstr ""
+
+#: stock/models.py:501 stock/models.py:510
+msgid "Quantity must be 1 for item with a serial number"
+msgstr ""
+
+#: stock/models.py:502
+msgid "Serial number cannot be set if quantity greater than 1"
+msgstr ""
+
+#: stock/models.py:524
+msgid "Item cannot belong to itself"
+msgstr ""
+
+#: stock/models.py:530
+msgid "Item must have a build reference if is_building=True"
+msgstr ""
+
+#: stock/models.py:544
+msgid "Build reference does not point to the same part object"
+msgstr ""
+
+#: stock/models.py:590
+msgid "Parent Stock Item"
+msgstr ""
+
+#: stock/models.py:600
+msgid "Base part"
+msgstr ""
+
+#: stock/models.py:608
+msgid "Select a matching supplier part for this stock item"
+msgstr ""
+
+#: stock/models.py:615 stock/templates/stock/location.html:17
+#: stock/templates/stock/stock_app_base.html:8
+msgid "Stock Location"
+msgstr ""
+
+#: stock/models.py:618
+msgid "Where is this stock item located?"
+msgstr ""
+
+#: stock/models.py:625
+msgid "Packaging this stock item is stored in"
+msgstr ""
+
+#: stock/models.py:631 stock/templates/stock/item_base.html:359
+msgid "Installed In"
+msgstr ""
+
+#: stock/models.py:634
+msgid "Is this item installed in another item?"
+msgstr ""
+
+#: stock/models.py:650
+msgid "Serial number for this item"
+msgstr ""
+
+#: stock/models.py:664
+msgid "Batch code for this stock item"
+msgstr ""
+
+#: stock/models.py:669
+msgid "Stock Quantity"
+msgstr ""
+
+#: stock/models.py:678
+msgid "Source Build"
+msgstr ""
+
+#: stock/models.py:680
+msgid "Build for this stock item"
+msgstr ""
+
+#: stock/models.py:691
+msgid "Source Purchase Order"
+msgstr ""
+
+#: stock/models.py:694
+msgid "Purchase order for this stock item"
+msgstr ""
+
+#: stock/models.py:700
+msgid "Destination Sales Order"
+msgstr ""
+
+#: stock/models.py:706 stock/templates/stock/item_base.html:427
+#: templates/js/translated/stock.js:1879
+msgid "Expiry Date"
+msgstr ""
+
+#: stock/models.py:707
+msgid ""
+"Expiry date for stock item. Stock will be considered expired after this date"
+msgstr ""
+
+#: stock/models.py:720
+msgid "Delete on deplete"
+msgstr ""
+
+#: stock/models.py:720
+msgid "Delete this Stock Item when stock is depleted"
+msgstr ""
+
+#: stock/models.py:727 stock/templates/stock/item.html:132
+msgid "Stock Item Notes"
+msgstr ""
+
+#: stock/models.py:735
+msgid "Single unit purchase price at time of purchase"
+msgstr ""
+
+#: stock/models.py:763
+msgid "Converted to part"
+msgstr ""
+
+#: stock/models.py:1242
+msgid "Part is not set as trackable"
+msgstr ""
+
+#: stock/models.py:1248
+msgid "Quantity must be integer"
+msgstr ""
+
+#: stock/models.py:1254
+#, python-brace-format
+msgid "Quantity must not exceed available stock quantity ({n})"
+msgstr ""
+
+#: stock/models.py:1257
+msgid "Serial numbers must be a list of integers"
+msgstr ""
+
+#: stock/models.py:1260
+msgid "Quantity does not match serial numbers"
+msgstr ""
+
+#: stock/models.py:1267
+#, python-brace-format
+msgid "Serial numbers already exist: {exists}"
+msgstr ""
+
+#: stock/models.py:1337
+msgid "Stock item has been assigned to a sales order"
+msgstr ""
+
+#: stock/models.py:1340
+msgid "Stock item is installed in another item"
+msgstr ""
+
+#: stock/models.py:1343
+msgid "Stock item contains other items"
+msgstr ""
+
+#: stock/models.py:1346
+msgid "Stock item has been assigned to a customer"
+msgstr ""
+
+#: stock/models.py:1349
+msgid "Stock item is currently in production"
+msgstr ""
+
+#: stock/models.py:1352
+msgid "Serialized stock cannot be merged"
+msgstr ""
+
+#: stock/models.py:1359 stock/serializers.py:959
+msgid "Duplicate stock items"
+msgstr ""
+
+#: stock/models.py:1363
+msgid "Stock items must refer to the same part"
+msgstr ""
+
+#: stock/models.py:1367
+msgid "Stock items must refer to the same supplier part"
+msgstr ""
+
+#: stock/models.py:1371
+msgid "Stock status codes must match"
+msgstr ""
+
+#: stock/models.py:1540
+msgid "StockItem cannot be moved as it is not in stock"
+msgstr ""
+
+#: stock/models.py:2001
+msgid "Entry notes"
+msgstr ""
+
+#: stock/models.py:2059
+msgid "Value must be provided for this test"
+msgstr ""
+
+#: stock/models.py:2065
+msgid "Attachment must be uploaded for this test"
+msgstr ""
+
+#: stock/models.py:2084
+msgid "Test name"
+msgstr ""
+
+#: stock/models.py:2090
+msgid "Test result"
+msgstr ""
+
+#: stock/models.py:2096
+msgid "Test output value"
+msgstr ""
+
+#: stock/models.py:2103
+msgid "Test result attachment"
+msgstr ""
+
+#: stock/models.py:2109
+msgid "Test notes"
+msgstr ""
+
+#: stock/serializers.py:71
+msgid "Serial number is too large"
+msgstr ""
+
+#: stock/serializers.py:172
+msgid "Purchase price of this stock item"
+msgstr ""
+
+#: stock/serializers.py:292
+msgid "Enter number of stock items to serialize"
+msgstr ""
+
+#: stock/serializers.py:304
+#, python-brace-format
+msgid "Quantity must not exceed available stock quantity ({q})"
+msgstr ""
+
+#: stock/serializers.py:310
+msgid "Enter serial numbers for new items"
+msgstr ""
+
+#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149
+msgid "Destination stock location"
+msgstr ""
+
+#: stock/serializers.py:328
+msgid "Optional note field"
+msgstr ""
+
+#: stock/serializers.py:338
+msgid "Serial numbers cannot be assigned to this part"
+msgstr ""
+
+#: stock/serializers.py:355
+msgid "Serial numbers already exist"
+msgstr ""
+
+#: stock/serializers.py:395
+msgid "Select stock item to install"
+msgstr ""
+
+#: stock/serializers.py:408
+msgid "Stock item is unavailable"
+msgstr ""
+
+#: stock/serializers.py:415
+msgid "Selected part is not in the Bill of Materials"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Destination location for uninstalled item"
+msgstr ""
+
+#: stock/serializers.py:457 stock/serializers.py:538
+msgid "Add transaction note (optional)"
+msgstr ""
+
+#: stock/serializers.py:491
+msgid "Select part to convert stock item into"
+msgstr ""
+
+#: stock/serializers.py:502
+msgid "Selected part is not a valid option for conversion"
+msgstr ""
+
+#: stock/serializers.py:533
+msgid "Destination location for returned item"
+msgstr ""
+
+#: stock/serializers.py:771
+msgid "Part must be salable"
+msgstr ""
+
+#: stock/serializers.py:775
+msgid "Item is allocated to a sales order"
+msgstr ""
+
+#: stock/serializers.py:779
+msgid "Item is allocated to a build order"
+msgstr ""
+
+#: stock/serializers.py:810
+msgid "Customer to assign stock items"
+msgstr ""
+
+#: stock/serializers.py:816
+msgid "Selected company is not a customer"
+msgstr ""
+
+#: stock/serializers.py:824
+msgid "Stock assignment notes"
+msgstr ""
+
+#: stock/serializers.py:834 stock/serializers.py:1065
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:923
+msgid "Stock merging notes"
+msgstr ""
+
+#: stock/serializers.py:928
+msgid "Allow mismatched suppliers"
+msgstr ""
+
+#: stock/serializers.py:929
+msgid "Allow stock items with different supplier parts to be merged"
+msgstr ""
+
+#: stock/serializers.py:934
+msgid "Allow mismatched status"
+msgstr ""
+
+#: stock/serializers.py:935
+msgid "Allow stock items with different status codes to be merged"
+msgstr ""
+
+#: stock/serializers.py:945
+msgid "At least two stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:1027
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:1055
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/templates/stock/item.html:17
+msgid "Stock Tracking Information"
+msgstr ""
+
+#: stock/templates/stock/item.html:69
+msgid "Child Stock Items"
+msgstr ""
+
+#: stock/templates/stock/item.html:77
+msgid "This stock item does not have any child items"
+msgstr ""
+
+#: stock/templates/stock/item.html:86
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:90 stock/templates/stock/item_base.html:66
+msgid "Test Report"
+msgstr ""
+
+#: stock/templates/stock/item.html:94 stock/templates/stock/item.html:302
+msgid "Delete Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:98
+msgid "Add Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:147
+msgid "Installed Stock Items"
+msgstr ""
+
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2857
+msgid "Install Stock Item"
+msgstr ""
+
+#: stock/templates/stock/item.html:290
+msgid "Delete all test results for this stock item"
+msgstr ""
+
+#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1522
+msgid "Add Test Result"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:34
+msgid "Locate stock item"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:48
+#: templates/js/translated/barcode.js:383
+#: templates/js/translated/barcode.js:388
+msgid "Unlink Barcode"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:50
+msgid "Link Barcode"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:52 templates/stock_table.html:21
+msgid "Scan to Location"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:60
+msgid "Printing actions"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:76
+msgid "Stock adjustment actions"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:80
+#: stock/templates/stock/location.html:68 templates/stock_table.html:47
+msgid "Count stock"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:82 templates/stock_table.html:45
+msgid "Add stock"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:83 templates/stock_table.html:46
+msgid "Remove stock"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:86
+msgid "Serialize stock"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:89
+#: stock/templates/stock/location.html:74 templates/stock_table.html:48
+msgid "Transfer stock"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:92 templates/stock_table.html:51
+msgid "Assign to customer"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:95
+msgid "Return to stock"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:98
+msgid "Uninstall stock item"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:98
+msgid "Uninstall"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:102
+msgid "Install stock item"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:102
+msgid "Install"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:116
+msgid "Convert to variant"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:119
+msgid "Duplicate stock item"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:121
+msgid "Edit stock item"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:124
+msgid "Delete stock item"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:161
+msgid "Barcode Identifier"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:196
+msgid "Parent Item"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:214
+msgid "No manufacturer set"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:254
+msgid ""
+"You are not in the list of owners of this item. This stock item cannot be "
+"edited."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:255
+#: stock/templates/stock/location.html:132
+msgid "Read only"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:268
+msgid "This stock item is in production and cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:269
+msgid "Edit the stock item from the build view."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:282
+msgid "This stock item has not passed all required tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:290
+msgid "This stock item is allocated to Sales Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:298
+msgid "This stock item is allocated to Build Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:304
+msgid ""
+"This stock item is serialized - it has a unique serial number and the "
+"quantity cannot be adjusted."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:326
+msgid "previous page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:326
+msgid "Navigate to previous serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:335
+msgid "next page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:335
+msgid "Navigate to next serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:348
+msgid "Available Quantity"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:392
+#: templates/js/translated/build.js:1729
+msgid "No location set"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:407
+msgid "Tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:431
+#, python-format
+msgid "This StockItem expired on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:431
+#: templates/js/translated/table_filters.js:269
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#, python-format
+msgid "This StockItem expires on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:433
+#: templates/js/translated/table_filters.js:275
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:440
+#: templates/js/translated/company.js:1038
+#: templates/js/translated/stock.js:1895
+msgid "Last Updated"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:445
+msgid "Last Stocktake"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:449
+msgid "No stocktake performed"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:519
+msgid "Edit Stock Status"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:592
+msgid "Select one of the part variants listed below."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:595
+msgid "Warning"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:596
+msgid "This action cannot be easily undone"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:604
+msgid "Convert Stock Item"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:632
+msgid "Return to Stock"
+msgstr ""
+
+#: stock/templates/stock/item_serialize.html:5
+msgid "Create serialized items from this stock item."
+msgstr ""
+
+#: stock/templates/stock/item_serialize.html:7
+msgid "Select quantity to serialize, and unique serial numbers."
+msgstr ""
+
+#: stock/templates/stock/location.html:38
+msgid "Locate stock location"
+msgstr ""
+
+#: stock/templates/stock/location.html:54
+msgid "Check-in Items"
+msgstr ""
+
+#: stock/templates/stock/location.html:82
+msgid "Location actions"
+msgstr ""
+
+#: stock/templates/stock/location.html:84
+msgid "Edit location"
+msgstr ""
+
+#: stock/templates/stock/location.html:86
+msgid "Delete location"
+msgstr ""
+
+#: stock/templates/stock/location.html:95
+msgid "Create new stock location"
+msgstr ""
+
+#: stock/templates/stock/location.html:96
+msgid "New Location"
+msgstr ""
+
+#: stock/templates/stock/location.html:114
+#: stock/templates/stock/location.html:120
+msgid "Location Path"
+msgstr ""
+
+#: stock/templates/stock/location.html:121
+msgid "Top level stock location"
+msgstr ""
+
+#: stock/templates/stock/location.html:127
+msgid "Location Owner"
+msgstr ""
+
+#: stock/templates/stock/location.html:131
+msgid ""
+"You are not in the list of owners of this location. This stock location "
+"cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/location.html:147
+#: stock/templates/stock/location.html:194
+#: stock/templates/stock/location_sidebar.html:5
+msgid "Sublocations"
+msgstr ""
+
+#: stock/templates/stock/location.html:161 templates/InvenTree/search.html:167
+#: templates/js/translated/search.js:240 users/models.py:39
+msgid "Stock Locations"
+msgstr ""
+
+#: stock/templates/stock/stock_app_base.html:16
+msgid "Loading..."
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:8
+msgid "Allocations"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:20
+msgid "Child Items"
+msgstr ""
+
+#: stock/views.py:109
+msgid "Stock Location QR code"
+msgstr ""
+
+#: stock/views.py:125
+msgid "Stock Item QR Code"
+msgstr ""
+
+#: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7
+msgid "Permission Denied"
+msgstr ""
+
+#: templates/403.html:15
+msgid "You do not have permission to view this page."
+msgstr ""
+
+#: templates/403_csrf.html:11
+msgid "Authentication Failure"
+msgstr ""
+
+#: templates/403_csrf.html:14
+msgid "You have been logged out from InvenTree."
+msgstr ""
+
+#: templates/403_csrf.html:19 templates/navbar.html:142
+msgid "Login"
+msgstr ""
+
+#: templates/404.html:6 templates/404.html:12
+msgid "Page Not Found"
+msgstr ""
+
+#: templates/404.html:15
+msgid "The requested page does not exist"
+msgstr ""
+
+#: templates/500.html:6 templates/500.html:12
+msgid "Internal Server Error"
+msgstr ""
+
+#: templates/500.html:15
+#, python-format
+msgid "The %(inventree_title)s server raised an internal error"
+msgstr ""
+
+#: templates/500.html:16
+msgid "Refer to the error log in the admin interface for further details"
+msgstr ""
+
+#: templates/503.html:11 templates/503.html:34
+msgid "Site is in Maintenance"
+msgstr ""
+
+#: templates/503.html:40
+msgid "The site is currently in maintenance and should be up again soon!"
+msgstr ""
+
+#: templates/InvenTree/index.html:7
+msgid "Index"
+msgstr ""
+
+#: templates/InvenTree/index.html:88
+msgid "Subscribed Parts"
+msgstr ""
+
+#: templates/InvenTree/index.html:98
+msgid "Subscribed Categories"
+msgstr ""
+
+#: templates/InvenTree/index.html:108
+msgid "Latest Parts"
+msgstr ""
+
+#: templates/InvenTree/index.html:119
+msgid "BOM Waiting Validation"
+msgstr ""
+
+#: templates/InvenTree/index.html:145
+msgid "Recently Updated"
+msgstr ""
+
+#: templates/InvenTree/index.html:168
+msgid "Depleted Stock"
+msgstr ""
+
+#: templates/InvenTree/index.html:178
+msgid "Required for Build Orders"
+msgstr ""
+
+#: templates/InvenTree/index.html:191
+msgid "Expired Stock"
+msgstr ""
+
+#: templates/InvenTree/index.html:202
+msgid "Stale Stock"
+msgstr ""
+
+#: templates/InvenTree/index.html:224
+msgid "Build Orders In Progress"
+msgstr ""
+
+#: templates/InvenTree/index.html:235
+msgid "Overdue Build Orders"
+msgstr ""
+
+#: templates/InvenTree/index.html:255
+msgid "Outstanding Purchase Orders"
+msgstr ""
+
+#: templates/InvenTree/index.html:266
+msgid "Overdue Purchase Orders"
+msgstr ""
+
+#: templates/InvenTree/index.html:286
+msgid "Outstanding Sales Orders"
+msgstr ""
+
+#: templates/InvenTree/index.html:297
+msgid "Overdue Sales Orders"
+msgstr ""
+
+#: templates/InvenTree/notifications/history.html:9
+msgid "Notification History"
+msgstr ""
+
+#: templates/InvenTree/notifications/history.html:13
+#: templates/InvenTree/notifications/history.html:14
+#: templates/InvenTree/notifications/notifications.html:77
+msgid "Delete Notifications"
+msgstr ""
+
+#: templates/InvenTree/notifications/inbox.html:9
+msgid "Pending Notifications"
+msgstr ""
+
+#: templates/InvenTree/notifications/inbox.html:13
+#: templates/InvenTree/notifications/inbox.html:14
+msgid "Mark all as read"
+msgstr ""
+
+#: templates/InvenTree/notifications/notifications.html:10
+#: templates/InvenTree/notifications/sidebar.html:5
+#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5
+msgid "Notifications"
+msgstr ""
+
+#: templates/InvenTree/notifications/notifications.html:39
+msgid "No unread notifications found"
+msgstr ""
+
+#: templates/InvenTree/notifications/notifications.html:59
+msgid "No notification history found"
+msgstr ""
+
+#: templates/InvenTree/notifications/notifications.html:67
+msgid "Delete all read notifications"
+msgstr ""
+
+#: templates/InvenTree/notifications/notifications.html:93
+#: templates/js/translated/notification.js:82
+msgid "Delete Notification"
+msgstr ""
+
+#: templates/InvenTree/notifications/sidebar.html:8
+msgid "Inbox"
+msgstr ""
+
+#: templates/InvenTree/notifications/sidebar.html:10
+msgid "History"
+msgstr ""
+
+#: templates/InvenTree/search.html:8
+msgid "Search Results"
+msgstr ""
+
+#: templates/InvenTree/settings/barcode.html:8
+msgid "Barcode Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/build.html:8
+msgid "Build Order Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/category.html:7
+msgid "Category Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/currencies.html:8
+msgid "Currency Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/currencies.html:19
+msgid "Base Currency"
+msgstr ""
+
+#: templates/InvenTree/settings/currencies.html:24
+msgid "Exchange Rates"
+msgstr ""
+
+#: templates/InvenTree/settings/currencies.html:38
+msgid "Last Update"
+msgstr ""
+
+#: templates/InvenTree/settings/currencies.html:44
+msgid "Never"
+msgstr ""
+
+#: templates/InvenTree/settings/currencies.html:49
+msgid "Update Now"
+msgstr ""
+
+#: templates/InvenTree/settings/global.html:9
+msgid "Server Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/label.html:8
+#: templates/InvenTree/settings/user_labels.html:9
+msgid "Label Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:31
+msgid "Login Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/login.html:21 templates/account/signup.html:5
+msgid "Signup"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/settings.html:5
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:139
+msgid "Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:5
+msgid "URLs"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:8
+#, python-format
+msgid ""
+"The Base-URL for this plugin is %(base)s ."
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:23
+msgid "Open in new tab"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:7
+msgid "Part Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:46
+msgid "Part Import"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:50
+msgid "Import Part"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:64
+msgid "Part Parameter Templates"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:10
+msgid "Plugin Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:16
+msgid ""
+"Changing the settings below require you to immediately restart the server. "
+"Do not change this while under active usage."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:36
+msgid "Plugins"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:41
+#: templates/js/translated/plugin.js:16
+msgid "Install Plugin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:50 templates/navbar.html:137
+#: users/models.py:36
+msgid "Admin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:52
+#: templates/InvenTree/settings/plugin_settings.html:28
+msgid "Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:54
+#: templates/InvenTree/settings/plugin_settings.html:43
+msgid "Version"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:76
+msgid "Sample"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:101
+msgid "Inactive plugins"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:124
+msgid "Plugin Error Stack"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:133
+msgid "Stage"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:135
+#: templates/js/translated/notification.js:75
+msgid "Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:10
+#, python-format
+msgid "Plugin details for %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:17
+msgid "Plugin information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:48
+msgid "no version information supplied"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:62
+msgid "License"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:71
+msgid ""
+"The code information is pulled from the latest git commit for this plugin. "
+"It might not reflect official version numbers or information but the actual "
+"code running."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:77
+msgid "Package information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:83
+msgid "Installation method"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:86
+msgid "This plugin was installed as a package"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:88
+msgid "This plugin was found in a local server path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:94
+msgid "Installation path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:100
+msgid "Commit Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:104
+#: templates/about.html:36
+msgid "Commit Date"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:108
+#: templates/about.html:29
+msgid "Commit Hash"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:112
+msgid "Commit Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:120
+msgid "Sign Status"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:125
+msgid "Sign Key"
+msgstr ""
+
+#: templates/InvenTree/settings/po.html:7
+msgid "Purchase Order Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/report.html:8
+#: templates/InvenTree/settings/user_reports.html:9
+msgid "Report Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/setting.html:39
+msgid "No value set"
+msgstr ""
+
+#: templates/InvenTree/settings/setting.html:44
+msgid "Edit setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:120
+msgid "Edit Plugin Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:122
+msgid "Edit Notification Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:125
+msgid "Edit Global Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:127
+msgid "Edit User Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:217
+msgid "No category parameter templates found"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:239
+#: templates/InvenTree/settings/settings.html:364
+msgid "Edit Template"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:240
+#: templates/InvenTree/settings/settings.html:365
+msgid "Delete Template"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:280
+msgid "Create Category Parameter Template"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:325
+msgid "Delete Category Parameter Template"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:337
+msgid "No part parameter templates found"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:341
+#: templates/js/translated/notification.js:36
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:383
+msgid "Create Part Parameter Template"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:402
+msgid "Edit Part Parameter Template"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:416
+msgid "Any parameters which reference this template will also be deleted"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:424
+msgid "Delete Part Parameter Template"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:6
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:9
+#: templates/InvenTree/settings/user.html:12
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:11
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:13
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:15
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:19
+#: templates/InvenTree/settings/sidebar.html:37
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:21
+#: templates/InvenTree/settings/sidebar.html:39
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:29
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:35
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:43
+msgid "Categories"
+msgstr ""
+
+#: templates/InvenTree/settings/so.html:7
+msgid "Sales Order Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/stock.html:7
+msgid "Stock Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:18
+#: templates/account/password_reset_from_key.html:4
+#: templates/account/password_reset_from_key.html:7
+msgid "Change Password"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:23
+#: templates/js/translated/helpers.js:29 templates/notes_buttons.html:3
+#: templates/notes_buttons.html:4
+msgid "Edit"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:32
+msgid "Username"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:36
+msgid "First Name"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:40
+msgid "Last Name"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:54
+msgid "The following email addresses are associated with your account:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:75
+msgid "Verified"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:77
+msgid "Unverified"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:79
+msgid "Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:85
+msgid "Make Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:86
+msgid "Re-send Verification"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:87
+#: templates/InvenTree/settings/user.html:149
+msgid "Remove"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:95
+msgid "Warning:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:96
+msgid ""
+"You currently do not have any email address set up. You should really add an "
+"email address so you can receive notifications, reset your password, etc."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:104
+msgid "Add Email Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:109
+msgid "Add Email"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:117
+msgid "Social Accounts"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:122
+msgid ""
+"You can sign in to your account using any of the following third party "
+"accounts:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:158
+msgid "There are no social network accounts connected to this account."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:164
+msgid "Add a 3rd Party Account"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:174
+msgid "Multifactor"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:179
+msgid "You have these factors available:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:189
+msgid "TOTP"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:195
+msgid "Static"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:204
+msgid "Multifactor authentication is not configured for your account"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:211
+msgid "Change factors"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:212
+msgid "Setup multifactor"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:214
+msgid "Remove multifactor"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:222
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:228
+msgid "Log out active sessions (except this one)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:229
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:238
+msgid "unknown on unknown "
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:239
+msgid "unknown "
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:243
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:244
+msgid "Device"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:245
+msgid "Last Activity"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:258
+#, python-format
+msgid "%(time)s ago (this session)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:260
+#, python-format
+msgid "%(time)s ago"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:272
+msgid "Do you really want to remove the selected email address?"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:27
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:37
+msgid "Select theme"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:48
+msgid "Set Theme"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:56
+msgid "Language Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:65
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:81
+#, python-format
+msgid "%(lang_translated)s%% translated"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:83
+msgid "No translations available"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:90
+msgid "Set Language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:93
+msgid "Some languages are not complete"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:97
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:97
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:104
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:105
+msgid ""
+"Native language translation of the web application is community contributed "
+"via crowdin. Contributions are welcomed and encouraged."
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:106
+msgid "InvenTree Translation Project"
+msgstr ""
+
+#: templates/InvenTree/settings/user_homepage.html:9
+msgid "Home Page Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_notifications.html:9
+msgid "Notification Settings"
+msgstr ""
+
+#: templates/about.html:9
+msgid "InvenTree Version"
+msgstr ""
+
+#: templates/about.html:14
+msgid "Development Version"
+msgstr ""
+
+#: templates/about.html:17
+msgid "Up to Date"
+msgstr ""
+
+#: templates/about.html:19
+msgid "Update Available"
+msgstr ""
+
+#: templates/about.html:42
+msgid "InvenTree Documentation"
+msgstr ""
+
+#: templates/about.html:47
+msgid "API Version"
+msgstr ""
+
+#: templates/about.html:52
+msgid "Python Version"
+msgstr ""
+
+#: templates/about.html:57
+msgid "Django Version"
+msgstr ""
+
+#: templates/about.html:62
+msgid "View Code on GitHub"
+msgstr ""
+
+#: templates/about.html:67
+msgid "Credits"
+msgstr ""
+
+#: templates/about.html:72
+msgid "Mobile App"
+msgstr ""
+
+#: templates/about.html:77
+msgid "Submit Bug Report"
+msgstr ""
+
+#: templates/about.html:84 templates/clip.html:4
+msgid "copy to clipboard"
+msgstr ""
+
+#: templates/about.html:84
+msgid "copy version information"
+msgstr ""
+
+#: templates/account/email_confirm.html:6
+#: templates/account/email_confirm.html:10
+msgid "Confirm Email Address"
+msgstr ""
+
+#: templates/account/email_confirm.html:16
+#, python-format
+msgid ""
+"Please confirm that %(email)s is an email "
+"address for user %(user_display)s."
+msgstr ""
+
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
+msgid "Confirm"
+msgstr ""
+
+#: templates/account/email_confirm.html:30
+#, python-format
+msgid ""
+"This email confirmation link expired or is invalid. Please issue a new email confirmation request ."
+msgstr ""
+
+#: templates/account/login.html:6 templates/account/login.html:16
+#: templates/account/login.html:43
+msgid "Sign In"
+msgstr ""
+
+#: templates/account/login.html:21
+#, python-format
+msgid ""
+"Please sign in with one\n"
+"of your existing third party accounts or sign up \n"
+"for a account and sign in below:"
+msgstr ""
+
+#: templates/account/login.html:25
+#, python-format
+msgid ""
+"If you have not created an account yet, then please\n"
+"sign up first."
+msgstr ""
+
+#: templates/account/login.html:47
+msgid "Forgot Password?"
+msgstr ""
+
+#: templates/account/login.html:53
+msgid "or use SSO"
+msgstr ""
+
+#: templates/account/logout.html:5 templates/account/logout.html:8
+#: templates/account/logout.html:20
+msgid "Sign Out"
+msgstr ""
+
+#: templates/account/logout.html:10
+msgid "Are you sure you want to sign out?"
+msgstr ""
+
+#: templates/account/logout.html:27 templates/allauth_2fa/backup_tokens.html:35
+#: templates/allauth_2fa/remove.html:24 templates/allauth_2fa/setup.html:44
+msgid "Return to Site"
+msgstr ""
+
+#: templates/account/password_reset.html:5
+#: templates/account/password_reset.html:12
+msgid "Password Reset"
+msgstr ""
+
+#: templates/account/password_reset.html:18
+msgid ""
+"Forgotten your password? Enter your email address below, and we'll send you "
+"an email allowing you to reset it."
+msgstr ""
+
+#: templates/account/password_reset.html:23
+msgid "Reset My Password"
+msgstr ""
+
+#: templates/account/password_reset.html:27 templates/account/signup.html:36
+msgid "This function is currently disabled. Please contact an administrator."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:7
+msgid "Bad Token"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:11
+#, python-format
+msgid ""
+"The password reset link was invalid, possibly because it has already been "
+"used. Please request a new password reset"
+"a>."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:18
+msgid "Change password"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:22
+msgid "Your password is now changed."
+msgstr ""
+
+#: templates/account/signup.html:11 templates/account/signup.html:22
+msgid "Sign Up"
+msgstr ""
+
+#: templates/account/signup.html:13
+#, python-format
+msgid ""
+"Already have an account? Then please sign in ."
+msgstr ""
+
+#: templates/account/signup.html:27
+msgid "Or use a SSO-provider for signup"
+msgstr ""
+
+#: templates/admin_button.html:2
+msgid "View in administration panel"
+msgstr ""
+
+#: templates/allauth_2fa/authenticate.html:5
+msgid "Two-Factor Authentication"
+msgstr ""
+
+#: templates/allauth_2fa/authenticate.html:13
+msgid "Authenticate"
+msgstr ""
+
+#: templates/allauth_2fa/backup_tokens.html:6
+msgid "Two-Factor Authentication Backup Tokens"
+msgstr ""
+
+#: templates/allauth_2fa/backup_tokens.html:17
+msgid ""
+"Backup tokens have been generated, but are not revealed here for security "
+"reasons. Press the button below to generate new ones."
+msgstr ""
+
+#: templates/allauth_2fa/backup_tokens.html:20
+msgid ""
+"No backup tokens are available. Press the button below to generate some."
+msgstr ""
+
+#: templates/allauth_2fa/backup_tokens.html:28
+msgid "Generate Tokens"
+msgstr ""
+
+#: templates/allauth_2fa/remove.html:6
+msgid "Disable Two-Factor Authentication"
+msgstr ""
+
+#: templates/allauth_2fa/remove.html:9
+msgid "Are you sure?"
+msgstr ""
+
+#: templates/allauth_2fa/remove.html:17
+msgid "Disable 2FA"
+msgstr ""
+
+#: templates/allauth_2fa/setup.html:6
+msgid "Setup Two-Factor Authentication"
+msgstr ""
+
+#: templates/allauth_2fa/setup.html:10
+msgid "Step 1"
+msgstr ""
+
+#: templates/allauth_2fa/setup.html:14
+msgid ""
+"Scan the QR code below with a token generator of your choice (for instance "
+"Google Authenticator)."
+msgstr ""
+
+#: templates/allauth_2fa/setup.html:23
+msgid "Step 2"
+msgstr ""
+
+#: templates/allauth_2fa/setup.html:27
+msgid "Input a token generated by the app:"
+msgstr ""
+
+#: templates/allauth_2fa/setup.html:37
+msgid "Verify"
+msgstr ""
+
+#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54
+msgid "Add Link"
+msgstr ""
+
+#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36
+msgid "Add Attachment"
+msgstr ""
+
+#: templates/attachment_table.html:11
+msgid "Delete selected attachments"
+msgstr ""
+
+#: templates/attachment_table.html:12 templates/js/translated/attachment.js:113
+msgid "Delete Attachments"
+msgstr ""
+
+#: templates/base.html:101
+msgid "Server Restart Required"
+msgstr ""
+
+#: templates/base.html:104
+msgid "A configuration option has been changed which requires a server restart"
+msgstr ""
+
+#: templates/base.html:104
+msgid "Contact your system administrator for further information"
+msgstr ""
+
+#: templates/collapse_rows.html:3
+msgid "Collapse all rows"
+msgstr ""
+
+#: templates/email/build_order_completed.html:9
+#: templates/email/new_order_assigned.html:9
+#: templates/email/overdue_build_order.html:9
+#: templates/email/overdue_purchase_order.html:9
+#: templates/email/overdue_sales_order.html:9
+#: templates/email/purchase_order_received.html:9
+msgid "Click on the following link to view this order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:7
+msgid "Stock is required for the following build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:8
+#, python-format
+msgid "Build order %(build)s - building %(quantity)s x %(part)s"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:10
+msgid "Click on the following link to view this build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:14
+msgid "The following parts are low on required stock"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:18
+#: templates/js/translated/bom.js:1489
+msgid "Required Quantity"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:38
+#: templates/email/low_stock_notification.html:31
+msgid ""
+"You are receiving this email because you are subscribed to notifications for "
+"this part "
+msgstr ""
+
+#: templates/email/low_stock_notification.html:9
+msgid "Click on the following link to view this part"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:19
+#: templates/js/translated/part.js:2551
+msgid "Minimum Quantity"
+msgstr ""
+
+#: templates/expand_rows.html:3
+msgid "Expand all rows"
+msgstr ""
+
+#: templates/js/translated/api.js:195 templates/js/translated/modals.js:1073
+msgid "No Response"
+msgstr ""
+
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1074
+msgid "No response from the InvenTree server"
+msgstr ""
+
+#: templates/js/translated/api.js:202
+msgid "Error 400: Bad request"
+msgstr ""
+
+#: templates/js/translated/api.js:203
+msgid "API request returned error code 400"
+msgstr ""
+
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1083
+msgid "Error 401: Not Authenticated"
+msgstr ""
+
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1084
+msgid "Authentication credentials not supplied"
+msgstr ""
+
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1088
+msgid "Error 403: Permission Denied"
+msgstr ""
+
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1089
+msgid "You do not have the required permissions to access this function"
+msgstr ""
+
+#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1093
+msgid "Error 404: Resource Not Found"
+msgstr ""
+
+#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1094
+msgid "The requested resource could not be located on the server"
+msgstr ""
+
+#: templates/js/translated/api.js:222
+msgid "Error 405: Method Not Allowed"
+msgstr ""
+
+#: templates/js/translated/api.js:223
+msgid "HTTP method not allowed at URL"
+msgstr ""
+
+#: templates/js/translated/api.js:227 templates/js/translated/modals.js:1098
+msgid "Error 408: Timeout"
+msgstr ""
+
+#: templates/js/translated/api.js:228 templates/js/translated/modals.js:1099
+msgid "Connection timeout while requesting data from server"
+msgstr ""
+
+#: templates/js/translated/api.js:231
+msgid "Unhandled Error Code"
+msgstr ""
+
+#: templates/js/translated/api.js:232
+msgid "Error code"
+msgstr ""
+
+#: templates/js/translated/attachment.js:98
+msgid "All selected attachments will be deleted"
+msgstr ""
+
+#: templates/js/translated/attachment.js:194
+msgid "No attachments found"
+msgstr ""
+
+#: templates/js/translated/attachment.js:220
+msgid "Edit Attachment"
+msgstr ""
+
+#: templates/js/translated/attachment.js:290
+msgid "Upload Date"
+msgstr ""
+
+#: templates/js/translated/attachment.js:313
+msgid "Edit attachment"
+msgstr ""
+
+#: templates/js/translated/attachment.js:322
+msgid "Delete attachment"
+msgstr ""
+
+#: templates/js/translated/barcode.js:30
+msgid "Scan barcode data here using wedge scanner"
+msgstr ""
+
+#: templates/js/translated/barcode.js:32
+msgid "Enter barcode data"
+msgstr ""
+
+#: templates/js/translated/barcode.js:39
+msgid "Barcode"
+msgstr ""
+
+#: templates/js/translated/barcode.js:95
+msgid "Enter optional notes for stock transfer"
+msgstr ""
+
+#: templates/js/translated/barcode.js:96
+msgid "Enter notes"
+msgstr ""
+
+#: templates/js/translated/barcode.js:134
+msgid "Server error"
+msgstr ""
+
+#: templates/js/translated/barcode.js:155
+msgid "Unknown response from server"
+msgstr ""
+
+#: templates/js/translated/barcode.js:182
+#: templates/js/translated/modals.js:1063
+msgid "Invalid server response"
+msgstr ""
+
+#: templates/js/translated/barcode.js:286
+msgid "Scan barcode data below"
+msgstr ""
+
+#: templates/js/translated/barcode.js:333 templates/navbar.html:109
+msgid "Scan Barcode"
+msgstr ""
+
+#: templates/js/translated/barcode.js:344
+msgid "No URL in response"
+msgstr ""
+
+#: templates/js/translated/barcode.js:362
+msgid "Link Barcode to Stock Item"
+msgstr ""
+
+#: templates/js/translated/barcode.js:385
+msgid ""
+"This will remove the association between this stock item and the barcode"
+msgstr ""
+
+#: templates/js/translated/barcode.js:391
+msgid "Unlink"
+msgstr ""
+
+#: templates/js/translated/barcode.js:456 templates/js/translated/stock.js:1054
+msgid "Remove stock item"
+msgstr ""
+
+#: templates/js/translated/barcode.js:498
+msgid "Check Stock Items into Location"
+msgstr ""
+
+#: templates/js/translated/barcode.js:502
+#: templates/js/translated/barcode.js:634
+msgid "Check In"
+msgstr ""
+
+#: templates/js/translated/barcode.js:533
+msgid "No barcode provided"
+msgstr ""
+
+#: templates/js/translated/barcode.js:568
+msgid "Stock Item already scanned"
+msgstr ""
+
+#: templates/js/translated/barcode.js:572
+msgid "Stock Item already in this location"
+msgstr ""
+
+#: templates/js/translated/barcode.js:579
+msgid "Added stock item"
+msgstr ""
+
+#: templates/js/translated/barcode.js:586
+msgid "Barcode does not match Stock Item"
+msgstr ""
+
+#: templates/js/translated/barcode.js:629
+msgid "Check Into Location"
+msgstr ""
+
+#: templates/js/translated/barcode.js:692
+msgid "Barcode does not match a valid location"
+msgstr ""
+
+#: templates/js/translated/bom.js:76
+msgid "Display row data"
+msgstr ""
+
+#: templates/js/translated/bom.js:132
+msgid "Row Data"
+msgstr ""
+
+#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620
+#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601
+#: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003
+#: templates/js/translated/order.js:1179 templates/modals.html:15
+#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
+msgid "Close"
+msgstr ""
+
+#: templates/js/translated/bom.js:250
+msgid "Download BOM Template"
+msgstr ""
+
+#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
+#: templates/js/translated/order.js:960 templates/js/translated/tables.js:145
+msgid "Format"
+msgstr ""
+
+#: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
+#: templates/js/translated/order.js:961
+msgid "Select file format"
+msgstr ""
+
+#: templates/js/translated/bom.js:295
+msgid "Multi Level BOM"
+msgstr ""
+
+#: templates/js/translated/bom.js:296
+msgid "Include BOM data for subassemblies"
+msgstr ""
+
+#: templates/js/translated/bom.js:301
+msgid "Levels"
+msgstr ""
+
+#: templates/js/translated/bom.js:302
+msgid "Select maximum number of BOM levels to export (0 = all levels)"
+msgstr ""
+
+#: templates/js/translated/bom.js:309
+msgid "Include Parameter Data"
+msgstr ""
+
+#: templates/js/translated/bom.js:310
+msgid "Include part parameter data in exported BOM"
+msgstr ""
+
+#: templates/js/translated/bom.js:315
+msgid "Include Stock Data"
+msgstr ""
+
+#: templates/js/translated/bom.js:316
+msgid "Include part stock data in exported BOM"
+msgstr ""
+
+#: templates/js/translated/bom.js:321
+msgid "Include Manufacturer Data"
+msgstr ""
+
+#: templates/js/translated/bom.js:322
+msgid "Include part manufacturer data in exported BOM"
+msgstr ""
+
+#: templates/js/translated/bom.js:327
+msgid "Include Supplier Data"
+msgstr ""
+
+#: templates/js/translated/bom.js:328
+msgid "Include part supplier data in exported BOM"
+msgstr ""
+
+#: templates/js/translated/bom.js:511
+msgid "Remove substitute part"
+msgstr ""
+
+#: templates/js/translated/bom.js:565
+msgid "Select and add a new substitute part using the input below"
+msgstr ""
+
+#: templates/js/translated/bom.js:576
+msgid "Are you sure you wish to remove this substitute part link?"
+msgstr ""
+
+#: templates/js/translated/bom.js:582
+msgid "Remove Substitute Part"
+msgstr ""
+
+#: templates/js/translated/bom.js:621
+msgid "Add Substitute"
+msgstr ""
+
+#: templates/js/translated/bom.js:622
+msgid "Edit BOM Item Substitutes"
+msgstr ""
+
+#: templates/js/translated/bom.js:684
+msgid "All selected BOM items will be deleted"
+msgstr ""
+
+#: templates/js/translated/bom.js:700
+msgid "Delete selected BOM items?"
+msgstr ""
+
+#: templates/js/translated/bom.js:819
+msgid "Load BOM for subassembly"
+msgstr ""
+
+#: templates/js/translated/bom.js:829
+msgid "Substitutes Available"
+msgstr ""
+
+#: templates/js/translated/bom.js:833 templates/js/translated/build.js:1805
+msgid "Variant stock allowed"
+msgstr ""
+
+#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1857
+#: templates/js/translated/order.js:3932
+msgid "No Stock Available"
+msgstr ""
+
+#: templates/js/translated/bom.js:940 templates/js/translated/build.js:1861
+msgid "Includes variant and substitute stock"
+msgstr ""
+
+#: templates/js/translated/bom.js:942 templates/js/translated/build.js:1863
+#: templates/js/translated/part.js:761 templates/js/translated/part.js:1533
+msgid "Includes variant stock"
+msgstr ""
+
+#: templates/js/translated/bom.js:944 templates/js/translated/build.js:1865
+msgid "Includes substitute stock"
+msgstr ""
+
+#: templates/js/translated/bom.js:962
+msgid "Substitutes"
+msgstr ""
+
+#: templates/js/translated/bom.js:977
+msgid "Purchase Price Range"
+msgstr ""
+
+#: templates/js/translated/bom.js:984
+msgid "Purchase Price Average"
+msgstr ""
+
+#: templates/js/translated/bom.js:1033 templates/js/translated/bom.js:1153
+msgid "View BOM"
+msgstr ""
+
+#: templates/js/translated/bom.js:1060
+msgid "Including On Order"
+msgstr ""
+
+#: templates/js/translated/bom.js:1124
+msgid "Validate BOM Item"
+msgstr ""
+
+#: templates/js/translated/bom.js:1126
+msgid "This line has been validated"
+msgstr ""
+
+#: templates/js/translated/bom.js:1128
+msgid "Edit substitute parts"
+msgstr ""
+
+#: templates/js/translated/bom.js:1130 templates/js/translated/bom.js:1292
+msgid "Edit BOM Item"
+msgstr ""
+
+#: templates/js/translated/bom.js:1132
+msgid "Delete BOM Item"
+msgstr ""
+
+#: templates/js/translated/bom.js:1228 templates/js/translated/build.js:1650
+msgid "No BOM items found"
+msgstr ""
+
+#: templates/js/translated/bom.js:1472 templates/js/translated/build.js:1789
+msgid "Required Part"
+msgstr ""
+
+#: templates/js/translated/bom.js:1498
+msgid "Inherited from parent BOM"
+msgstr ""
+
+#: templates/js/translated/build.js:89
+msgid "Edit Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:132
+msgid "Create Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:165
+msgid "Cancel Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:174
+msgid "Are you sure you wish to cancel this build?"
+msgstr ""
+
+#: templates/js/translated/build.js:180
+msgid "Stock items have been allocated to this build order"
+msgstr ""
+
+#: templates/js/translated/build.js:187
+msgid "There are incomplete outputs remaining for this build order"
+msgstr ""
+
+#: templates/js/translated/build.js:217
+msgid "Build order is ready to be completed"
+msgstr ""
+
+#: templates/js/translated/build.js:222
+msgid "Build Order is incomplete"
+msgstr ""
+
+#: templates/js/translated/build.js:254
+msgid "Complete Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:295 templates/js/translated/stock.js:92
+#: templates/js/translated/stock.js:214
+msgid "Next available serial number"
+msgstr ""
+
+#: templates/js/translated/build.js:297 templates/js/translated/stock.js:94
+#: templates/js/translated/stock.js:216
+msgid "Latest serial number"
+msgstr ""
+
+#: templates/js/translated/build.js:306
+msgid "The Bill of Materials contains trackable parts"
+msgstr ""
+
+#: templates/js/translated/build.js:307
+msgid "Build outputs must be generated individually"
+msgstr ""
+
+#: templates/js/translated/build.js:315
+msgid "Trackable parts can have serial numbers specified"
+msgstr ""
+
+#: templates/js/translated/build.js:316
+msgid "Enter serial numbers to generate multiple single build outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:323
+msgid "Create Build Output"
+msgstr ""
+
+#: templates/js/translated/build.js:354
+msgid "Allocate stock items to this build output"
+msgstr ""
+
+#: templates/js/translated/build.js:365
+msgid "Unallocate stock from build output"
+msgstr ""
+
+#: templates/js/translated/build.js:374
+msgid "Complete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:382
+msgid "Delete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:405
+msgid "Are you sure you wish to unallocate stock items from this build?"
+msgstr ""
+
+#: templates/js/translated/build.js:423
+msgid "Unallocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:443 templates/js/translated/build.js:595
+msgid "Select Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:444 templates/js/translated/build.js:596
+msgid "At least one build output must be selected"
+msgstr ""
+
+#: templates/js/translated/build.js:498 templates/js/translated/build.js:650
+msgid "Output"
+msgstr ""
+
+#: templates/js/translated/build.js:516
+msgid "Complete Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:663
+msgid "Delete Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:753
+msgid "No build order allocations found"
+msgstr ""
+
+#: templates/js/translated/build.js:790
+msgid "Location not specified"
+msgstr ""
+
+#: templates/js/translated/build.js:1169
+msgid "No active build outputs found"
+msgstr ""
+
+#: templates/js/translated/build.js:1238
+msgid "Allocated Stock"
+msgstr ""
+
+#: templates/js/translated/build.js:1245
+msgid "No tracked BOM items for this build"
+msgstr ""
+
+#: templates/js/translated/build.js:1267
+msgid "Completed Tests"
+msgstr ""
+
+#: templates/js/translated/build.js:1272
+msgid "No required tests for this build"
+msgstr ""
+
+#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697
+#: templates/js/translated/order.js:3632
+msgid "Edit stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698
+#: templates/js/translated/order.js:3633
+msgid "Delete stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1766
+msgid "Edit Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1776
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1801
+msgid "Substitute parts available"
+msgstr ""
+
+#: templates/js/translated/build.js:1818
+msgid "Quantity Per"
+msgstr ""
+
+#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3939
+msgid "Insufficient stock available"
+msgstr ""
+
+#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3937
+msgid "Sufficient stock available"
+msgstr ""
+
+#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127
+#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3951
+msgid "Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1930 templates/js/translated/order.js:4031
+msgid "Build stock"
+msgstr ""
+
+#: templates/js/translated/build.js:1934 templates/stock_table.html:50
+msgid "Order stock"
+msgstr ""
+
+#: templates/js/translated/build.js:1937 templates/js/translated/order.js:4024
+msgid "Allocate stock"
+msgstr ""
+
+#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172
+#: templates/js/translated/order.js:1007 templates/js/translated/order.js:3159
+#: templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
+#: templates/js/translated/build.js:1977 templates/js/translated/order.js:3160
+msgid "You must select at least one part to allocate"
+msgstr ""
+
+#: templates/js/translated/build.js:2026 templates/js/translated/order.js:3108
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:2100
+msgid "All Parts Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:2101
+msgid "All selected parts have been fully allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:2115 templates/js/translated/order.js:3174
+msgid "Select source location (leave blank to take from all locations)"
+msgstr ""
+
+#: templates/js/translated/build.js:2143
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3271
+msgid "No matching stock locations"
+msgstr ""
+
+#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3348
+msgid "No matching stock items"
+msgstr ""
+
+#: templates/js/translated/build.js:2323
+msgid "Automatic Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:2324
+msgid ""
+"Stock items will be automatically allocated to this build order, according "
+"to the provided guidelines"
+msgstr ""
+
+#: templates/js/translated/build.js:2326
+msgid ""
+"If a location is specifed, stock will only be allocated from that location"
+msgstr ""
+
+#: templates/js/translated/build.js:2327
+msgid ""
+"If stock is considered interchangeable, it will be allocated from the first "
+"location it is found"
+msgstr ""
+
+#: templates/js/translated/build.js:2328
+msgid ""
+"If substitute stock is allowed, it will be used where stock of the primary "
+"part cannot be found"
+msgstr ""
+
+#: templates/js/translated/build.js:2349
+msgid "Allocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:2455
+msgid "No builds matching query"
+msgstr ""
+
+#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1422
+#: templates/js/translated/part.js:1948 templates/js/translated/stock.js:1686
+#: templates/js/translated/stock.js:2382
+msgid "Select"
+msgstr ""
+
+#: templates/js/translated/build.js:2504
+msgid "Build order is overdue"
+msgstr ""
+
+#: templates/js/translated/build.js:2532
+msgid "Progress"
+msgstr ""
+
+#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2643
+msgid "No user information"
+msgstr ""
+
+#: templates/js/translated/build.js:2674
+msgid "No parts allocated for"
+msgstr ""
+
+#: templates/js/translated/company.js:66
+msgid "Add Manufacturer"
+msgstr ""
+
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:181
+msgid "Add Manufacturer Part"
+msgstr ""
+
+#: templates/js/translated/company.js:100
+msgid "Edit Manufacturer Part"
+msgstr ""
+
+#: templates/js/translated/company.js:169 templates/js/translated/order.js:576
+msgid "Add Supplier"
+msgstr ""
+
+#: templates/js/translated/company.js:197 templates/js/translated/order.js:828
+msgid "Add Supplier Part"
+msgstr ""
+
+#: templates/js/translated/company.js:297
+msgid "All selected supplier parts will be deleted"
+msgstr ""
+
+#: templates/js/translated/company.js:313
+msgid "Delete Supplier Parts"
+msgstr ""
+
+#: templates/js/translated/company.js:385
+msgid "Add new Company"
+msgstr ""
+
+#: templates/js/translated/company.js:462
+msgid "Parts Supplied"
+msgstr ""
+
+#: templates/js/translated/company.js:471
+msgid "Parts Manufactured"
+msgstr ""
+
+#: templates/js/translated/company.js:486
+msgid "No company information found"
+msgstr ""
+
+#: templates/js/translated/company.js:527
+msgid "All selected manufacturer parts will be deleted"
+msgstr ""
+
+#: templates/js/translated/company.js:542
+msgid "Delete Manufacturer Parts"
+msgstr ""
+
+#: templates/js/translated/company.js:576
+msgid "All selected parameters will be deleted"
+msgstr ""
+
+#: templates/js/translated/company.js:590
+msgid "Delete Parameters"
+msgstr ""
+
+#: templates/js/translated/company.js:631
+msgid "No manufacturer parts found"
+msgstr ""
+
+#: templates/js/translated/company.js:651
+#: templates/js/translated/company.js:912 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:721
+msgid "Template part"
+msgstr ""
+
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:916 templates/js/translated/part.js:640
+#: templates/js/translated/part.js:725
+msgid "Assembled part"
+msgstr ""
+
+#: templates/js/translated/company.js:783 templates/js/translated/part.js:828
+msgid "No parameters found"
+msgstr ""
+
+#: templates/js/translated/company.js:820 templates/js/translated/part.js:870
+msgid "Edit parameter"
+msgstr ""
+
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:871
+msgid "Delete parameter"
+msgstr ""
+
+#: templates/js/translated/company.js:840 templates/js/translated/part.js:888
+msgid "Edit Parameter"
+msgstr ""
+
+#: templates/js/translated/company.js:851 templates/js/translated/part.js:900
+msgid "Delete Parameter"
+msgstr ""
+
+#: templates/js/translated/company.js:891
+msgid "No supplier parts found"
+msgstr ""
+
+#: templates/js/translated/company.js:1032
+msgid "Availability"
+msgstr ""
+
+#: templates/js/translated/company.js:1055
+msgid "Edit supplier part"
+msgstr ""
+
+#: templates/js/translated/company.js:1056
+msgid "Delete supplier part"
+msgstr ""
+
+#: templates/js/translated/filters.js:178
+#: templates/js/translated/filters.js:441
+msgid "true"
+msgstr ""
+
+#: templates/js/translated/filters.js:182
+#: templates/js/translated/filters.js:442
+msgid "false"
+msgstr ""
+
+#: templates/js/translated/filters.js:204
+msgid "Select filter"
+msgstr ""
+
+#: templates/js/translated/filters.js:288
+msgid "Download data"
+msgstr ""
+
+#: templates/js/translated/filters.js:291
+msgid "Reload data"
+msgstr ""
+
+#: templates/js/translated/filters.js:295
+msgid "Add new filter"
+msgstr ""
+
+#: templates/js/translated/filters.js:298
+msgid "Clear all filters"
+msgstr ""
+
+#: templates/js/translated/filters.js:350
+msgid "Create filter"
+msgstr ""
+
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
+msgid "Action Prohibited"
+msgstr ""
+
+#: templates/js/translated/forms.js:374
+msgid "Create operation not allowed"
+msgstr ""
+
+#: templates/js/translated/forms.js:389
+msgid "Update operation not allowed"
+msgstr ""
+
+#: templates/js/translated/forms.js:403
+msgid "Delete operation not allowed"
+msgstr ""
+
+#: templates/js/translated/forms.js:417
+msgid "View operation not allowed"
+msgstr ""
+
+#: templates/js/translated/forms.js:675
+msgid "Keep this form open"
+msgstr ""
+
+#: templates/js/translated/forms.js:776
+msgid "Enter a valid number"
+msgstr ""
+
+#: templates/js/translated/forms.js:1274 templates/modals.html:19
+#: templates/modals.html:43
+msgid "Form errors exist"
+msgstr ""
+
+#: templates/js/translated/forms.js:1707
+msgid "No results found"
+msgstr ""
+
+#: templates/js/translated/forms.js:1922 templates/search.html:29
+msgid "Searching"
+msgstr ""
+
+#: templates/js/translated/forms.js:2175
+msgid "Clear input"
+msgstr ""
+
+#: templates/js/translated/forms.js:2641
+msgid "File Column"
+msgstr ""
+
+#: templates/js/translated/forms.js:2641
+msgid "Field Name"
+msgstr ""
+
+#: templates/js/translated/forms.js:2653
+msgid "Select Columns"
+msgstr ""
+
+#: templates/js/translated/helpers.js:22
+msgid "YES"
+msgstr ""
+
+#: templates/js/translated/helpers.js:24
+msgid "NO"
+msgstr ""
+
+#: templates/js/translated/helpers.js:321
+msgid "Notes updated"
+msgstr ""
+
+#: templates/js/translated/label.js:39
+msgid "Labels sent to printer"
+msgstr ""
+
+#: templates/js/translated/label.js:60 templates/js/translated/report.js:118
+#: templates/js/translated/stock.js:1078
+msgid "Select Stock Items"
+msgstr ""
+
+#: templates/js/translated/label.js:61
+msgid "Stock item(s) must be selected before printing labels"
+msgstr ""
+
+#: templates/js/translated/label.js:79 templates/js/translated/label.js:133
+#: templates/js/translated/label.js:191
+msgid "No Labels Found"
+msgstr ""
+
+#: templates/js/translated/label.js:80
+msgid "No labels found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/translated/label.js:115
+msgid "Select Stock Locations"
+msgstr ""
+
+#: templates/js/translated/label.js:116
+msgid "Stock location(s) must be selected before printing labels"
+msgstr ""
+
+#: templates/js/translated/label.js:134
+msgid "No labels found which match selected stock location(s)"
+msgstr ""
+
+#: templates/js/translated/label.js:173
+msgid "Part(s) must be selected before printing labels"
+msgstr ""
+
+#: templates/js/translated/label.js:192
+msgid "No labels found which match the selected part(s)"
+msgstr ""
+
+#: templates/js/translated/label.js:257
+msgid "Select Printer"
+msgstr ""
+
+#: templates/js/translated/label.js:261
+msgid "Export to PDF"
+msgstr ""
+
+#: templates/js/translated/label.js:300
+msgid "stock items selected"
+msgstr ""
+
+#: templates/js/translated/label.js:308 templates/js/translated/label.js:324
+msgid "Select Label Template"
+msgstr ""
+
+#: templates/js/translated/modals.js:82 templates/js/translated/modals.js:142
+#: templates/js/translated/modals.js:627
+msgid "Cancel"
+msgstr ""
+
+#: templates/js/translated/modals.js:83 templates/js/translated/modals.js:141
+#: templates/js/translated/modals.js:694 templates/js/translated/modals.js:1002
+#: templates/modals.html:28 templates/modals.html:51
+msgid "Submit"
+msgstr ""
+
+#: templates/js/translated/modals.js:140
+msgid "Form Title"
+msgstr ""
+
+#: templates/js/translated/modals.js:421
+msgid "Waiting for server..."
+msgstr ""
+
+#: templates/js/translated/modals.js:568
+msgid "Show Error Information"
+msgstr ""
+
+#: templates/js/translated/modals.js:626
+msgid "Accept"
+msgstr ""
+
+#: templates/js/translated/modals.js:683
+msgid "Loading Data"
+msgstr ""
+
+#: templates/js/translated/modals.js:954
+msgid "Invalid response from server"
+msgstr ""
+
+#: templates/js/translated/modals.js:954
+msgid "Form data missing from server response"
+msgstr ""
+
+#: templates/js/translated/modals.js:966
+msgid "Error posting form data"
+msgstr ""
+
+#: templates/js/translated/modals.js:1063
+msgid "JSON response missing form data"
+msgstr ""
+
+#: templates/js/translated/modals.js:1078
+msgid "Error 400: Bad Request"
+msgstr ""
+
+#: templates/js/translated/modals.js:1079
+msgid "Server returned error code 400"
+msgstr ""
+
+#: templates/js/translated/modals.js:1102
+msgid "Error requesting form data"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:72
+msgid "Company ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:133
+msgid "Stock ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:159
+msgid "Location ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:177
+msgid "Build ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:278
+#: templates/js/translated/model_renderers.js:303
+msgid "Order ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:316
+#: templates/js/translated/model_renderers.js:320
+msgid "Shipment ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:338
+msgid "Category ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:381
+msgid "Manufacturer Part ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:418
+msgid "Supplier Part ID"
+msgstr ""
+
+#: templates/js/translated/notification.js:42
+msgid "Age"
+msgstr ""
+
+#: templates/js/translated/notification.js:204
+msgid "Mark as unread"
+msgstr ""
+
+#: templates/js/translated/notification.js:208
+msgid "Mark as read"
+msgstr ""
+
+#: templates/js/translated/notification.js:233
+msgid "No unread notifications"
+msgstr ""
+
+#: templates/js/translated/notification.js:275 templates/notifications.html:10
+msgid "Notifications will load here"
+msgstr ""
+
+#: templates/js/translated/order.js:97
+msgid "No stock items have been allocated to this shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:102
+msgid "The following stock items will be shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:142
+msgid "Complete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:162
+msgid "Confirm Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:218
+msgid "No pending shipments found"
+msgstr ""
+
+#: templates/js/translated/order.js:222
+msgid "No stock items have been allocated to pending shipments"
+msgstr ""
+
+#: templates/js/translated/order.js:254
+msgid "Skip"
+msgstr ""
+
+#: templates/js/translated/order.js:284
+msgid "Complete Purchase Order"
+msgstr ""
+
+#: templates/js/translated/order.js:301 templates/js/translated/order.js:413
+msgid "Mark this order as complete?"
+msgstr ""
+
+#: templates/js/translated/order.js:307
+msgid "All line items have been received"
+msgstr ""
+
+#: templates/js/translated/order.js:312
+msgid "This order has line items which have not been marked as received."
+msgstr ""
+
+#: templates/js/translated/order.js:313 templates/js/translated/order.js:427
+msgid ""
+"Completing this order means that the order and line items will no longer be "
+"editable."
+msgstr ""
+
+#: templates/js/translated/order.js:336
+msgid "Cancel Purchase Order"
+msgstr ""
+
+#: templates/js/translated/order.js:341
+msgid "Are you sure you wish to cancel this purchase order?"
+msgstr ""
+
+#: templates/js/translated/order.js:347
+msgid "This purchase order can not be cancelled"
+msgstr ""
+
+#: templates/js/translated/order.js:370
+msgid "Issue Purchase Order"
+msgstr ""
+
+#: templates/js/translated/order.js:375
+msgid ""
+"After placing this purchase order, line items will no longer be editable."
+msgstr ""
+
+#: templates/js/translated/order.js:426
+msgid "This order has line items which have not been completed."
+msgstr ""
+
+#: templates/js/translated/order.js:450
+msgid "Cancel Sales Order"
+msgstr ""
+
+#: templates/js/translated/order.js:455
+msgid "Cancelling this order means that the order will no longer be editable."
+msgstr ""
+
+#: templates/js/translated/order.js:509
+msgid "Create New Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:534
+msgid "Add Customer"
+msgstr ""
+
+#: templates/js/translated/order.js:559
+msgid "Create Sales Order"
+msgstr ""
+
+#: templates/js/translated/order.js:620
+msgid "Select purchase order to duplicate"
+msgstr ""
+
+#: templates/js/translated/order.js:627
+msgid "Duplicate Line Items"
+msgstr ""
+
+#: templates/js/translated/order.js:628
+msgid "Duplicate all line items from the selected order"
+msgstr ""
+
+#: templates/js/translated/order.js:635
+msgid "Duplicate Extra Lines"
+msgstr ""
+
+#: templates/js/translated/order.js:636
+msgid "Duplicate extra line items from the selected order"
+msgstr ""
+
+#: templates/js/translated/order.js:653
+msgid "Edit Purchase Order"
+msgstr ""
+
+#: templates/js/translated/order.js:670
+msgid "Duplication Options"
+msgstr ""
+
+#: templates/js/translated/order.js:957
+msgid "Export Order"
+msgstr ""
+
+#: templates/js/translated/order.js:1008
+msgid "At least one purchaseable part must be selected"
+msgstr ""
+
+#: templates/js/translated/order.js:1033
+msgid "Quantity to order"
+msgstr ""
+
+#: templates/js/translated/order.js:1042
+msgid "New supplier part"
+msgstr ""
+
+#: templates/js/translated/order.js:1060
+msgid "New purchase order"
+msgstr ""
+
+#: templates/js/translated/order.js:1093
+msgid "Add to purchase order"
+msgstr ""
+
+#: templates/js/translated/order.js:1233
+msgid "No matching supplier parts"
+msgstr ""
+
+#: templates/js/translated/order.js:1252
+msgid "No matching purchase orders"
+msgstr ""
+
+#: templates/js/translated/order.js:1429
+msgid "Select Line Items"
+msgstr ""
+
+#: templates/js/translated/order.js:1430
+msgid "At least one line item must be selected"
+msgstr ""
+
+#: templates/js/translated/order.js:1450 templates/js/translated/order.js:1563
+msgid "Add batch code"
+msgstr ""
+
+#: templates/js/translated/order.js:1456 templates/js/translated/order.js:1574
+msgid "Add serial numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:1471
+msgid "Received Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:1482
+msgid "Quantity to receive"
+msgstr ""
+
+#: templates/js/translated/order.js:1546 templates/js/translated/stock.js:2140
+msgid "Stock Status"
+msgstr ""
+
+#: templates/js/translated/order.js:1639
+msgid "Order Code"
+msgstr ""
+
+#: templates/js/translated/order.js:1640
+msgid "Ordered"
+msgstr ""
+
+#: templates/js/translated/order.js:1642
+msgid "Quantity to Receive"
+msgstr ""
+
+#: templates/js/translated/order.js:1661
+msgid "Confirm receipt of items"
+msgstr ""
+
+#: templates/js/translated/order.js:1662
+msgid "Receive Purchase Order Items"
+msgstr ""
+
+#: templates/js/translated/order.js:1940 templates/js/translated/part.js:941
+msgid "No purchase orders found"
+msgstr ""
+
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2803
+msgid "Order is overdue"
+msgstr ""
+
+#: templates/js/translated/order.js:2017 templates/js/translated/order.js:2868
+#: templates/js/translated/order.js:3009
+msgid "Items"
+msgstr ""
+
+#: templates/js/translated/order.js:2115 templates/js/translated/order.js:4083
+msgid "Duplicate Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:2132 templates/js/translated/order.js:4105
+msgid "Edit Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:4116
+msgid "Delete Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:2188
+msgid "No line items found"
+msgstr ""
+
+#: templates/js/translated/order.js:2215 templates/js/translated/order.js:3817
+msgid "Total"
+msgstr ""
+
+#: templates/js/translated/order.js:2270 templates/js/translated/part.js:1043
+#: templates/js/translated/part.js:1095
+msgid "Total Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:2301 templates/js/translated/order.js:2503
+#: templates/js/translated/order.js:3842 templates/js/translated/order.js:4350
+#: templates/js/translated/part.js:2184 templates/js/translated/part.js:2782
+msgid "Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:2316 templates/js/translated/order.js:2519
+#: templates/js/translated/order.js:3858 templates/js/translated/order.js:4366
+msgid "Total Price"
+msgstr ""
+
+#: templates/js/translated/order.js:2357 templates/js/translated/order.js:3900
+#: templates/js/translated/part.js:1079
+msgid "This line item is overdue"
+msgstr ""
+
+#: templates/js/translated/order.js:2416 templates/js/translated/part.js:1130
+msgid "Receive line item"
+msgstr ""
+
+#: templates/js/translated/order.js:2420 templates/js/translated/order.js:4037
+msgid "Duplicate line item"
+msgstr ""
+
+#: templates/js/translated/order.js:2421 templates/js/translated/order.js:4038
+msgid "Edit line item"
+msgstr ""
+
+#: templates/js/translated/order.js:2422 templates/js/translated/order.js:4042
+msgid "Delete line item"
+msgstr ""
+
+#: templates/js/translated/order.js:2568 templates/js/translated/order.js:4415
+msgid "Duplicate line"
+msgstr ""
+
+#: templates/js/translated/order.js:2569 templates/js/translated/order.js:4416
+msgid "Edit line"
+msgstr ""
+
+#: templates/js/translated/order.js:2570 templates/js/translated/order.js:4417
+msgid "Delete line"
+msgstr ""
+
+#: templates/js/translated/order.js:2600 templates/js/translated/order.js:4447
+msgid "Duplicate Line"
+msgstr ""
+
+#: templates/js/translated/order.js:2621 templates/js/translated/order.js:4468
+msgid "Edit Line"
+msgstr ""
+
+#: templates/js/translated/order.js:2632 templates/js/translated/order.js:4479
+msgid "Delete Line"
+msgstr ""
+
+#: templates/js/translated/order.js:2643
+msgid "No matching line"
+msgstr ""
+
+#: templates/js/translated/order.js:2754
+msgid "No sales orders found"
+msgstr ""
+
+#: templates/js/translated/order.js:2817
+msgid "Invalid Customer"
+msgstr ""
+
+#: templates/js/translated/order.js:2915
+msgid "Edit shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:2918
+msgid "Complete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:2923
+msgid "Delete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:2943
+msgid "Edit Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:2960
+msgid "Delete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:2994
+msgid "No matching shipments found"
+msgstr ""
+
+#: templates/js/translated/order.js:3004
+msgid "Shipment Reference"
+msgstr ""
+
+#: templates/js/translated/order.js:3028
+msgid "Not shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:3034
+msgid "Tracking"
+msgstr ""
+
+#: templates/js/translated/order.js:3038
+msgid "Invoice"
+msgstr ""
+
+#: templates/js/translated/order.js:3207
+msgid "Add Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:3258
+msgid "Confirm stock allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:3259
+msgid "Allocate Stock Items to Sales Order"
+msgstr ""
+
+#: templates/js/translated/order.js:3467
+msgid "No sales order allocations found"
+msgstr ""
+
+#: templates/js/translated/order.js:3546
+msgid "Edit Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:3563
+msgid "Confirm Delete Operation"
+msgstr ""
+
+#: templates/js/translated/order.js:3564
+msgid "Delete Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:3609 templates/js/translated/order.js:3698
+#: templates/js/translated/stock.js:1602
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/order.js:3617 templates/js/translated/order.js:3707
+msgid "Stock location not specified"
+msgstr ""
+
+#: templates/js/translated/order.js:4021
+msgid "Allocate serial numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:4027
+msgid "Purchase stock"
+msgstr ""
+
+#: templates/js/translated/order.js:4034 templates/js/translated/order.js:4232
+msgid "Calculate price"
+msgstr ""
+
+#: templates/js/translated/order.js:4046
+msgid "Cannot be deleted as items have been shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:4049
+msgid "Cannot be deleted as items have been allocated"
+msgstr ""
+
+#: templates/js/translated/order.js:4131
+msgid "Allocate Serial Numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:4240
+msgid "Update Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:4254
+msgid "No matching line items"
+msgstr ""
+
+#: templates/js/translated/order.js:4490
+msgid "No matching lines"
+msgstr ""
+
+#: templates/js/translated/part.js:56
+msgid "Part Attributes"
+msgstr ""
+
+#: templates/js/translated/part.js:60
+msgid "Part Creation Options"
+msgstr ""
+
+#: templates/js/translated/part.js:64
+msgid "Part Duplication Options"
+msgstr ""
+
+#: templates/js/translated/part.js:68
+msgid "Supplier Options"
+msgstr ""
+
+#: templates/js/translated/part.js:82
+msgid "Add Part Category"
+msgstr ""
+
+#: templates/js/translated/part.js:166
+msgid "Create Initial Stock"
+msgstr ""
+
+#: templates/js/translated/part.js:167
+msgid "Create an initial stock item for this part"
+msgstr ""
+
+#: templates/js/translated/part.js:174
+msgid "Initial Stock Quantity"
+msgstr ""
+
+#: templates/js/translated/part.js:175
+msgid "Specify initial stock quantity for this part"
+msgstr ""
+
+#: templates/js/translated/part.js:182
+msgid "Select destination stock location"
+msgstr ""
+
+#: templates/js/translated/part.js:200
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:201
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:209
+msgid "Add Supplier Data"
+msgstr ""
+
+#: templates/js/translated/part.js:210
+msgid "Create initial supplier data for this part"
+msgstr ""
+
+#: templates/js/translated/part.js:266
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:267
+msgid "Copy image from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:275
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:282
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:283
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:296
+msgid "Parent part category"
+msgstr ""
+
+#: templates/js/translated/part.js:306 templates/js/translated/stock.js:118
+msgid "Icon (optional) - Explore all available icons on"
+msgstr ""
+
+#: templates/js/translated/part.js:322
+msgid "Edit Part Category"
+msgstr ""
+
+#: templates/js/translated/part.js:335
+msgid "Are you sure you want to delete this part category?"
+msgstr ""
+
+#: templates/js/translated/part.js:337
+msgid "Any child categories will be moved to the parent of this category"
+msgstr ""
+
+#: templates/js/translated/part.js:338
+msgid "Any parts in this category will be moved to the parent of this category"
+msgstr ""
+
+#: templates/js/translated/part.js:343
+msgid "Delete Part Category"
+msgstr ""
+
+#: templates/js/translated/part.js:369
+msgid "Edit Part"
+msgstr ""
+
+#: templates/js/translated/part.js:371
+msgid "Part edited"
+msgstr ""
+
+#: templates/js/translated/part.js:382
+msgid "Create Part Variant"
+msgstr ""
+
+#: templates/js/translated/part.js:434
+msgid "Active Part"
+msgstr ""
+
+#: templates/js/translated/part.js:435
+msgid "Part cannot be deleted as it is currently active"
+msgstr ""
+
+#: templates/js/translated/part.js:449
+msgid "Deleting this part cannot be reversed"
+msgstr ""
+
+#: templates/js/translated/part.js:451
+msgid "Any stock items for this part will be deleted"
+msgstr ""
+
+#: templates/js/translated/part.js:452
+msgid "This part will be removed from any Bills of Material"
+msgstr ""
+
+#: templates/js/translated/part.js:453
+msgid "All manufacturer and supplier information for this part will be deleted"
+msgstr ""
+
+#: templates/js/translated/part.js:460
+msgid "Delete Part"
+msgstr ""
+
+#: templates/js/translated/part.js:496
+msgid "You are subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:498
+msgid "You have subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:503
+msgid "Subscribe to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:505
+msgid "You have unsubscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:522
+msgid "Validating the BOM will mark each line item as valid"
+msgstr ""
+
+#: templates/js/translated/part.js:532
+msgid "Validate Bill of Materials"
+msgstr ""
+
+#: templates/js/translated/part.js:535
+msgid "Validated Bill of Materials"
+msgstr ""
+
+#: templates/js/translated/part.js:560
+msgid "Copy Bill of Materials"
+msgstr ""
+
+#: templates/js/translated/part.js:584 templates/js/translated/part.js:1515
+#: templates/js/translated/table_filters.js:468
+msgid "Low stock"
+msgstr ""
+
+#: templates/js/translated/part.js:594
+msgid "No stock available"
+msgstr ""
+
+#: templates/js/translated/part.js:628 templates/js/translated/part.js:713
+msgid "Trackable part"
+msgstr ""
+
+#: templates/js/translated/part.js:632 templates/js/translated/part.js:717
+msgid "Virtual part"
+msgstr ""
+
+#: templates/js/translated/part.js:644
+msgid "Subscribed part"
+msgstr ""
+
+#: templates/js/translated/part.js:648
+msgid "Salable part"
+msgstr ""
+
+#: templates/js/translated/part.js:776
+msgid "No variants found"
+msgstr ""
+
+#: templates/js/translated/part.js:1200
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:1224
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:1291 templates/js/translated/part.js:1602
+msgid "No parts found"
+msgstr ""
+
+#: templates/js/translated/part.js:1482
+msgid "No category"
+msgstr ""
+
+#: templates/js/translated/part.js:1513
+msgid "No stock"
+msgstr ""
+
+#: templates/js/translated/part.js:1537
+msgid "Allocated to build orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1541
+msgid "Allocated to sales orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1626 templates/js/translated/part.js:1869
+#: templates/js/translated/stock.js:2343
+msgid "Display as list"
+msgstr ""
+
+#: templates/js/translated/part.js:1642
+msgid "Display as grid"
+msgstr ""
+
+#: templates/js/translated/part.js:1708
+msgid "Set the part category for the selected parts"
+msgstr ""
+
+#: templates/js/translated/part.js:1713
+msgid "Set Part Category"
+msgstr ""
+
+#: templates/js/translated/part.js:1718
+msgid "Select Part Category"
+msgstr ""
+
+#: templates/js/translated/part.js:1731
+msgid "Category is required"
+msgstr ""
+
+#: templates/js/translated/part.js:1888 templates/js/translated/stock.js:2362
+msgid "Display as tree"
+msgstr ""
+
+#: templates/js/translated/part.js:1967
+msgid "Load Subcategories"
+msgstr ""
+
+#: templates/js/translated/part.js:1983
+msgid "Subscribed category"
+msgstr ""
+
+#: templates/js/translated/part.js:2041
+msgid "No test templates matching query"
+msgstr ""
+
+#: templates/js/translated/part.js:2092 templates/js/translated/stock.js:1299
+msgid "Edit test result"
+msgstr ""
+
+#: templates/js/translated/part.js:2093 templates/js/translated/stock.js:1300
+#: templates/js/translated/stock.js:1560
+msgid "Delete test result"
+msgstr ""
+
+#: templates/js/translated/part.js:2099
+msgid "This test is defined for a parent part"
+msgstr ""
+
+#: templates/js/translated/part.js:2121
+msgid "Edit Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:2135
+msgid "Delete Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:2160
+#, python-brace-format
+msgid "No ${human_name} information found"
+msgstr ""
+
+#: templates/js/translated/part.js:2217
+#, python-brace-format
+msgid "Edit ${human_name}"
+msgstr ""
+
+#: templates/js/translated/part.js:2218
+#, python-brace-format
+msgid "Delete ${human_name}"
+msgstr ""
+
+#: templates/js/translated/part.js:2383 templates/js/translated/part.js:2384
+msgid "No date specified"
+msgstr ""
+
+#: templates/js/translated/part.js:2386
+msgid "Specified date is in the past"
+msgstr ""
+
+#: templates/js/translated/part.js:2392
+msgid "Speculative"
+msgstr ""
+
+#: templates/js/translated/part.js:2442
+msgid "No scheduling information available for this part"
+msgstr ""
+
+#: templates/js/translated/part.js:2448
+msgid "Error fetching scheduling information for this part"
+msgstr ""
+
+#: templates/js/translated/part.js:2544
+msgid "Scheduled Stock Quantities"
+msgstr ""
+
+#: templates/js/translated/part.js:2560
+msgid "Maximum Quantity"
+msgstr ""
+
+#: templates/js/translated/part.js:2605
+msgid "Minimum Stock Level"
+msgstr ""
+
+#: templates/js/translated/part.js:2706
+msgid "Single Price"
+msgstr ""
+
+#: templates/js/translated/part.js:2725
+msgid "Single Price Difference"
+msgstr ""
+
+#: templates/js/translated/plugin.js:23
+msgid "The Plugin was installed"
+msgstr ""
+
+#: templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:136 templates/js/translated/report.js:189
+#: templates/js/translated/report.js:243 templates/js/translated/report.js:297
+#: templates/js/translated/report.js:351
+msgid "No Reports Found"
+msgstr ""
+
+#: templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/translated/search.js:394
+msgid "Minimize results"
+msgstr ""
+
+#: templates/js/translated/search.js:397
+msgid "Remove results"
+msgstr ""
+
+#: templates/js/translated/stock.js:74
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: templates/js/translated/stock.js:102
+msgid "Confirm Stock Serialization"
+msgstr ""
+
+#: templates/js/translated/stock.js:111
+msgid "Parent stock location"
+msgstr ""
+
+#: templates/js/translated/stock.js:144
+msgid "Edit Stock Location"
+msgstr ""
+
+#: templates/js/translated/stock.js:159
+msgid "New Stock Location"
+msgstr ""
+
+#: templates/js/translated/stock.js:173
+msgid "Are you sure you want to delete this stock location?"
+msgstr ""
+
+#: templates/js/translated/stock.js:175
+msgid "Any child locations will be moved to the parent of this location"
+msgstr ""
+
+#: templates/js/translated/stock.js:176
+msgid ""
+"Any stock items in this location will be moved to the parent of this location"
+msgstr ""
+
+#: templates/js/translated/stock.js:182
+msgid "Delete Stock Location"
+msgstr ""
+
+#: templates/js/translated/stock.js:227
+msgid "This part cannot be serialized"
+msgstr ""
+
+#: templates/js/translated/stock.js:266
+msgid "Enter initial quantity for this stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:272
+msgid "Enter serial numbers for new stock (or leave blank)"
+msgstr ""
+
+#: templates/js/translated/stock.js:337
+msgid "Stock item duplicated"
+msgstr ""
+
+#: templates/js/translated/stock.js:357
+msgid "Duplicate Stock Item"
+msgstr ""
+
+#: templates/js/translated/stock.js:373
+msgid "Are you sure you want to delete this stock item?"
+msgstr ""
+
+#: templates/js/translated/stock.js:378
+msgid "Delete Stock Item"
+msgstr ""
+
+#: templates/js/translated/stock.js:399
+msgid "Edit Stock Item"
+msgstr ""
+
+#: templates/js/translated/stock.js:449
+msgid "Created new stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:462
+msgid "Created multiple stock items"
+msgstr ""
+
+#: templates/js/translated/stock.js:487
+msgid "Find Serial Number"
+msgstr ""
+
+#: templates/js/translated/stock.js:491 templates/js/translated/stock.js:492
+msgid "Enter serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:508
+msgid "Enter a serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:528
+msgid "No matching serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:537
+msgid "More than one matching result found"
+msgstr ""
+
+#: templates/js/translated/stock.js:660
+msgid "Confirm stock assignment"
+msgstr ""
+
+#: templates/js/translated/stock.js:661
+msgid "Assign Stock to Customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:738
+msgid "Warning: Merge operation cannot be reversed"
+msgstr ""
+
+#: templates/js/translated/stock.js:739
+msgid "Some information will be lost when merging stock items"
+msgstr ""
+
+#: templates/js/translated/stock.js:741
+msgid "Stock transaction history will be deleted for merged items"
+msgstr ""
+
+#: templates/js/translated/stock.js:742
+msgid "Supplier part information will be deleted for merged items"
+msgstr ""
+
+#: templates/js/translated/stock.js:828
+msgid "Confirm stock item merge"
+msgstr ""
+
+#: templates/js/translated/stock.js:829
+msgid "Merge Stock Items"
+msgstr ""
+
+#: templates/js/translated/stock.js:924
+msgid "Transfer Stock"
+msgstr ""
+
+#: templates/js/translated/stock.js:925
+msgid "Move"
+msgstr ""
+
+#: templates/js/translated/stock.js:931
+msgid "Count Stock"
+msgstr ""
+
+#: templates/js/translated/stock.js:932
+msgid "Count"
+msgstr ""
+
+#: templates/js/translated/stock.js:936
+msgid "Remove Stock"
+msgstr ""
+
+#: templates/js/translated/stock.js:937
+msgid "Take"
+msgstr ""
+
+#: templates/js/translated/stock.js:941
+msgid "Add Stock"
+msgstr ""
+
+#: templates/js/translated/stock.js:942 users/models.py:218
+msgid "Add"
+msgstr ""
+
+#: templates/js/translated/stock.js:946
+msgid "Delete Stock"
+msgstr ""
+
+#: templates/js/translated/stock.js:1039
+msgid "Quantity cannot be adjusted for serialized stock"
+msgstr ""
+
+#: templates/js/translated/stock.js:1039
+msgid "Specify stock quantity"
+msgstr ""
+
+#: templates/js/translated/stock.js:1079
+msgid "You must select at least one available stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:1102
+msgid "Confirm stock adjustment"
+msgstr ""
+
+#: templates/js/translated/stock.js:1238
+msgid "PASS"
+msgstr ""
+
+#: templates/js/translated/stock.js:1240
+msgid "FAIL"
+msgstr ""
+
+#: templates/js/translated/stock.js:1245
+msgid "NO RESULT"
+msgstr ""
+
+#: templates/js/translated/stock.js:1292
+msgid "Pass test"
+msgstr ""
+
+#: templates/js/translated/stock.js:1295
+msgid "Add test result"
+msgstr ""
+
+#: templates/js/translated/stock.js:1321
+msgid "No test results found"
+msgstr ""
+
+#: templates/js/translated/stock.js:1378
+msgid "Test Date"
+msgstr ""
+
+#: templates/js/translated/stock.js:1543
+msgid "Edit Test Result"
+msgstr ""
+
+#: templates/js/translated/stock.js:1565
+msgid "Delete Test Result"
+msgstr ""
+
+#: templates/js/translated/stock.js:1594
+msgid "In production"
+msgstr ""
+
+#: templates/js/translated/stock.js:1598
+msgid "Installed in Stock Item"
+msgstr ""
+
+#: templates/js/translated/stock.js:1606
+msgid "Assigned to Sales Order"
+msgstr ""
+
+#: templates/js/translated/stock.js:1612
+msgid "No stock location set"
+msgstr ""
+
+#: templates/js/translated/stock.js:1775
+msgid "Stock item is in production"
+msgstr ""
+
+#: templates/js/translated/stock.js:1780
+msgid "Stock item assigned to sales order"
+msgstr ""
+
+#: templates/js/translated/stock.js:1783
+msgid "Stock item assigned to customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:1786
+msgid "Serialized stock item has been allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1788
+msgid "Stock item has been fully allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1790
+msgid "Stock item has been partially allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1793
+msgid "Stock item has been installed in another item"
+msgstr ""
+
+#: templates/js/translated/stock.js:1797
+msgid "Stock item has expired"
+msgstr ""
+
+#: templates/js/translated/stock.js:1799
+msgid "Stock item will expire soon"
+msgstr ""
+
+#: templates/js/translated/stock.js:1806
+msgid "Stock item has been rejected"
+msgstr ""
+
+#: templates/js/translated/stock.js:1808
+msgid "Stock item is lost"
+msgstr ""
+
+#: templates/js/translated/stock.js:1810
+msgid "Stock item is destroyed"
+msgstr ""
+
+#: templates/js/translated/stock.js:1814
+#: templates/js/translated/table_filters.js:196
+msgid "Depleted"
+msgstr ""
+
+#: templates/js/translated/stock.js:1865
+msgid "Stocktake"
+msgstr ""
+
+#: templates/js/translated/stock.js:1944
+msgid "Supplier part not specified"
+msgstr ""
+
+#: templates/js/translated/stock.js:1982
+msgid "No stock items matching query"
+msgstr ""
+
+#: templates/js/translated/stock.js:2155
+msgid "Set Stock Status"
+msgstr ""
+
+#: templates/js/translated/stock.js:2169
+msgid "Select Status Code"
+msgstr ""
+
+#: templates/js/translated/stock.js:2170
+msgid "Status code must be selected"
+msgstr ""
+
+#: templates/js/translated/stock.js:2400
+msgid "Load Subloactions"
+msgstr ""
+
+#: templates/js/translated/stock.js:2489
+msgid "Details"
+msgstr ""
+
+#: templates/js/translated/stock.js:2505
+msgid "Part information unavailable"
+msgstr ""
+
+#: templates/js/translated/stock.js:2527
+msgid "Location no longer exists"
+msgstr ""
+
+#: templates/js/translated/stock.js:2546
+msgid "Purchase order no longer exists"
+msgstr ""
+
+#: templates/js/translated/stock.js:2565
+msgid "Customer no longer exists"
+msgstr ""
+
+#: templates/js/translated/stock.js:2583
+msgid "Stock item no longer exists"
+msgstr ""
+
+#: templates/js/translated/stock.js:2606
+msgid "Added"
+msgstr ""
+
+#: templates/js/translated/stock.js:2614
+msgid "Removed"
+msgstr ""
+
+#: templates/js/translated/stock.js:2690
+msgid "No installed items"
+msgstr ""
+
+#: templates/js/translated/stock.js:2741 templates/js/translated/stock.js:2777
+msgid "Uninstall Stock Item"
+msgstr ""
+
+#: templates/js/translated/stock.js:2790
+msgid "Select stock item to uninstall"
+msgstr ""
+
+#: templates/js/translated/stock.js:2811
+msgid "Install another stock item into this item"
+msgstr ""
+
+#: templates/js/translated/stock.js:2812
+msgid "Stock items can only be installed if they meet the following criteria"
+msgstr ""
+
+#: templates/js/translated/stock.js:2814
+msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
+msgstr ""
+
+#: templates/js/translated/stock.js:2815
+msgid "The Stock Item is currently available in stock"
+msgstr ""
+
+#: templates/js/translated/stock.js:2816
+msgid "The Stock Item is not already installed in another item"
+msgstr ""
+
+#: templates/js/translated/stock.js:2817
+msgid "The Stock Item is tracked by either a batch code or serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:2830
+msgid "Select part to install"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:56
+msgid "Trackable Part"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:60
+msgid "Assembled Part"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:64
+msgid "Has Available Stock"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:72
+msgid "Validated"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:80
+msgid "Allow Variant Stock"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:118
+#: templates/js/translated/table_filters.js:191
+msgid "Include sublocations"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:119
+msgid "Include locations"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:129
+#: templates/js/translated/table_filters.js:130
+#: templates/js/translated/table_filters.js:437
+msgid "Include subcategories"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:134
+#: templates/js/translated/table_filters.js:480
+msgid "Subscribed"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:226
+msgid "Is Serialized"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:233
+msgid "Serial number GTE"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:234
+msgid "Serial number greater than or equal to"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:237
+msgid "Serial number LTE"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:238
+msgid "Serial number less than or equal to"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:155
+#: templates/js/translated/table_filters.js:156
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
+msgid "Serial number"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:160
+#: templates/js/translated/table_filters.js:251
+msgid "Batch code"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:171
+#: templates/js/translated/table_filters.js:409
+msgid "Active parts"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:172
+msgid "Show stock for active parts"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:177
+msgid "Part is an assembly"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:181
+msgid "Is allocated"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:182
+msgid "Item has been allocated"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:187
+msgid "Stock is available for use"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:192
+msgid "Include stock in sublocations"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:197
+msgid "Show stock items which are depleted"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:202
+msgid "Show items which are in stock"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:206
+msgid "In Production"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:207
+msgid "Show items which are in production"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:211
+msgid "Include Variants"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:212
+msgid "Include stock items for variant parts"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:216
+msgid "Installed"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:217
+msgid "Show stock items which are installed in another item"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:222
+msgid "Show items which have been assigned to a customer"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:242
+#: templates/js/translated/table_filters.js:243
+msgid "Stock status"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:246
+msgid "Has batch code"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:254
+msgid "Tracked"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:255
+msgid "Stock item is tracked by either batch code or serial number"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:260
+msgid "Has purchase price"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:261
+msgid "Show stock items which have a purchase price set"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:270
+msgid "Show stock items which have expired"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:276
+msgid "Show stock which is close to expiring"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:288
+msgid "Test Passed"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:292
+msgid "Include Installed Items"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:311
+msgid "Build status"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:324
+#: templates/js/translated/table_filters.js:365
+msgid "Assigned to me"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:341
+#: templates/js/translated/table_filters.js:352
+#: templates/js/translated/table_filters.js:382
+msgid "Order status"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:357
+#: templates/js/translated/table_filters.js:374
+#: templates/js/translated/table_filters.js:387
+msgid "Outstanding"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:438
+msgid "Include parts in subcategories"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:443
+msgid "Show active parts"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:451
+msgid "Available stock"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:459
+msgid "Has IPN"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:460
+msgid "Part has internal part number"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:464
+msgid "In stock"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:472
+msgid "Purchasable"
+msgstr ""
+
+#: templates/js/translated/tables.js:70
+msgid "Display calendar view"
+msgstr ""
+
+#: templates/js/translated/tables.js:80
+msgid "Display list view"
+msgstr ""
+
+#: templates/js/translated/tables.js:90
+msgid "Display tree view"
+msgstr ""
+
+#: templates/js/translated/tables.js:142
+msgid "Export Table Data"
+msgstr ""
+
+#: templates/js/translated/tables.js:146
+msgid "Select File Format"
+msgstr ""
+
+#: templates/js/translated/tables.js:537
+msgid "Loading data"
+msgstr ""
+
+#: templates/js/translated/tables.js:540
+msgid "rows per page"
+msgstr ""
+
+#: templates/js/translated/tables.js:545
+msgid "Showing all rows"
+msgstr ""
+
+#: templates/js/translated/tables.js:547
+msgid "Showing"
+msgstr ""
+
+#: templates/js/translated/tables.js:547
+msgid "to"
+msgstr ""
+
+#: templates/js/translated/tables.js:547
+msgid "of"
+msgstr ""
+
+#: templates/js/translated/tables.js:547
+msgid "rows"
+msgstr ""
+
+#: templates/js/translated/tables.js:551 templates/navbar.html:102
+#: templates/search.html:8 templates/search_form.html:6
+#: templates/search_form.html:7
+msgid "Search"
+msgstr ""
+
+#: templates/js/translated/tables.js:554
+msgid "No matching results"
+msgstr ""
+
+#: templates/js/translated/tables.js:557
+msgid "Hide/Show pagination"
+msgstr ""
+
+#: templates/js/translated/tables.js:563
+msgid "Toggle"
+msgstr ""
+
+#: templates/js/translated/tables.js:566
+msgid "Columns"
+msgstr ""
+
+#: templates/js/translated/tables.js:569
+msgid "All"
+msgstr ""
+
+#: templates/navbar.html:45
+msgid "Buy"
+msgstr ""
+
+#: templates/navbar.html:57
+msgid "Sell"
+msgstr ""
+
+#: templates/navbar.html:116
+msgid "Show Notifications"
+msgstr ""
+
+#: templates/navbar.html:119
+msgid "New Notifications"
+msgstr ""
+
+#: templates/navbar.html:140
+msgid "Logout"
+msgstr ""
+
+#: templates/notes_buttons.html:6 templates/notes_buttons.html:7
+msgid "Save"
+msgstr ""
+
+#: templates/notifications.html:13
+msgid "Show all notifications and history"
+msgstr ""
+
+#: templates/qr_code.html:11
+msgid "QR data not provided"
+msgstr ""
+
+#: templates/registration/logged_out.html:6
+msgid "You were logged out successfully."
+msgstr ""
+
+#: templates/registration/logged_out.html:8
+msgid "Log in again"
+msgstr ""
+
+#: templates/search.html:9
+msgid "Show full search results"
+msgstr ""
+
+#: templates/search.html:12
+msgid "Clear search"
+msgstr ""
+
+#: templates/search.html:16
+msgid "Filter results"
+msgstr ""
+
+#: templates/search.html:20
+msgid "Close search menu"
+msgstr ""
+
+#: templates/search.html:35
+msgid "No search results"
+msgstr ""
+
+#: templates/stats.html:9
+msgid "Server"
+msgstr ""
+
+#: templates/stats.html:13
+msgid "Instance Name"
+msgstr ""
+
+#: templates/stats.html:18
+msgid "Database"
+msgstr ""
+
+#: templates/stats.html:26
+msgid "Server is running in debug mode"
+msgstr ""
+
+#: templates/stats.html:33
+msgid "Docker Mode"
+msgstr ""
+
+#: templates/stats.html:34
+msgid "Server is deployed using docker"
+msgstr ""
+
+#: templates/stats.html:39
+msgid "Plugin Support"
+msgstr ""
+
+#: templates/stats.html:43
+msgid "Plugin support enabled"
+msgstr ""
+
+#: templates/stats.html:45
+msgid "Plugin support disabled"
+msgstr ""
+
+#: templates/stats.html:52
+msgid "Server status"
+msgstr ""
+
+#: templates/stats.html:55
+msgid "Healthy"
+msgstr ""
+
+#: templates/stats.html:57
+msgid "Issues detected"
+msgstr ""
+
+#: templates/stats.html:64
+msgid "Background Worker"
+msgstr ""
+
+#: templates/stats.html:67
+msgid "Background worker not running"
+msgstr ""
+
+#: templates/stats.html:75
+msgid "Email Settings"
+msgstr ""
+
+#: templates/stats.html:78
+msgid "Email settings not configured"
+msgstr ""
+
+#: templates/stock_table.html:17
+msgid "Barcode Actions"
+msgstr ""
+
+#: templates/stock_table.html:33
+msgid "Print test reports"
+msgstr ""
+
+#: templates/stock_table.html:40
+msgid "Stock Options"
+msgstr ""
+
+#: templates/stock_table.html:45
+msgid "Add to selected stock items"
+msgstr ""
+
+#: templates/stock_table.html:46
+msgid "Remove from selected stock items"
+msgstr ""
+
+#: templates/stock_table.html:47
+msgid "Stocktake selected stock items"
+msgstr ""
+
+#: templates/stock_table.html:48
+msgid "Move selected stock items"
+msgstr ""
+
+#: templates/stock_table.html:49
+msgid "Merge selected stock items"
+msgstr ""
+
+#: templates/stock_table.html:49
+msgid "Merge stock"
+msgstr ""
+
+#: templates/stock_table.html:50
+msgid "Order selected items"
+msgstr ""
+
+#: templates/stock_table.html:52
+msgid "Change status"
+msgstr ""
+
+#: templates/stock_table.html:52
+msgid "Change stock status"
+msgstr ""
+
+#: templates/stock_table.html:55
+msgid "Delete selected items"
+msgstr ""
+
+#: templates/stock_table.html:55
+msgid "Delete stock"
+msgstr ""
+
+#: templates/yesnolabel.html:4
+msgid "Yes"
+msgstr ""
+
+#: templates/yesnolabel.html:6
+msgid "No"
+msgstr ""
+
+#: users/admin.py:61
+msgid "Users"
+msgstr ""
+
+#: users/admin.py:62
+msgid "Select which users are assigned to this group"
+msgstr ""
+
+#: users/admin.py:191
+msgid "The following users are members of multiple groups:"
+msgstr ""
+
+#: users/admin.py:214
+msgid "Personal info"
+msgstr ""
+
+#: users/admin.py:215
+msgid "Permissions"
+msgstr ""
+
+#: users/admin.py:218
+msgid "Important dates"
+msgstr ""
+
+#: users/models.py:205
+msgid "Permission set"
+msgstr ""
+
+#: users/models.py:213
+msgid "Group"
+msgstr ""
+
+#: users/models.py:216
+msgid "View"
+msgstr ""
+
+#: users/models.py:216
+msgid "Permission to view items"
+msgstr ""
+
+#: users/models.py:218
+msgid "Permission to add items"
+msgstr ""
+
+#: users/models.py:220
+msgid "Change"
+msgstr ""
+
+#: users/models.py:220
+msgid "Permissions to edit items"
+msgstr ""
+
+#: users/models.py:222
+msgid "Permission to delete items"
+msgstr ""
diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po
index 24c6584f9f..62a72de031 100644
--- a/InvenTree/locale/de/LC_MESSAGES/django.po
+++ b/InvenTree/locale/de/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-08-25 10:08+0000\n"
-"PO-Revision-Date: 2022-08-27 01:59\n"
+"POT-Creation-Date: 2022-09-09 02:44+0000\n"
+"PO-Revision-Date: 2022-09-09 03:57\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Language: de_DE\n"
@@ -29,9 +29,9 @@ msgstr "Fehlerdetails finden Sie im Admin-Panel"
msgid "Enter date"
msgstr "Datum eingeben"
-#: InvenTree/fields.py:186 build/serializers.py:384
-#: build/templates/build/sidebar.html:21 company/models.py:523
-#: company/templates/company/sidebar.html:25 order/models.py:906
+#: InvenTree/fields.py:183 build/serializers.py:384
+#: build/templates/build/sidebar.html:21 company/models.py:524
+#: company/templates/company/sidebar.html:25 order/models.py:910
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17
#: part/templates/part/part_sidebar.html:59
@@ -40,11 +40,12 @@ msgstr "Datum eingeben"
#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823
#: stock/serializers.py:922 stock/serializers.py:1054
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099
-#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210
-#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859
-#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208
-#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1107
+#: templates/js/translated/company.js:1022
+#: templates/js/translated/order.js:2404 templates/js/translated/order.js:2555
+#: templates/js/translated/order.js:3053 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:4402 templates/js/translated/stock.js:1374
+#: templates/js/translated/stock.js:1976
msgid "Notes"
msgstr "Notizen"
@@ -210,12 +211,12 @@ msgid "Select file to attach"
msgstr "Datei zum Anhängen auswählen"
#: InvenTree/models.py:402 company/models.py:124 company/models.py:276
-#: company/models.py:510 order/models.py:84 order/models.py:1245
+#: company/models.py:511 order/models.py:84 order/models.py:1249
#: part/models.py:802 part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
-#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848
-#: templates/js/translated/part.js:1534
+#: templates/js/translated/company.js:691
+#: templates/js/translated/company.js:1011
+#: templates/js/translated/order.js:3042 templates/js/translated/part.js:1563
msgid "Link"
msgstr "Link"
@@ -233,12 +234,12 @@ msgstr "Kommentar"
msgid "File comment"
msgstr "Datei-Kommentar"
-#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665
-#: common/models.py:1666 common/models.py:1889 common/models.py:1890
-#: common/models.py:2152 common/models.py:2153 part/models.py:2239
-#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257
+#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1669
+#: common/models.py:1670 common/models.py:1893 common/models.py:1894
+#: common/models.py:2156 common/models.py:2157 part/models.py:2247
+#: part/models.py:2267 plugin/models.py:260 plugin/models.py:261
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2641
+#: templates/js/translated/stock.js:2637
msgid "User"
msgstr "Benutzer"
@@ -275,28 +276,28 @@ msgstr "Fehler beim Umbenennen"
msgid "Invalid choice"
msgstr "Ungültige Auswahl"
-#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875
+#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1879
#: company/models.py:358 label/models.py:101 part/models.py:746
-#: part/models.py:2417 plugin/models.py:94 report/models.py:152
+#: part/models.py:2425 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin.html:134
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:347
-#: templates/js/translated/company.js:545
-#: templates/js/translated/company.js:758
+#: templates/js/translated/company.js:580
+#: templates/js/translated/company.js:793
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:688 templates/js/translated/part.js:840
-#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392
+#: templates/js/translated/part.js:686 templates/js/translated/part.js:838
+#: templates/js/translated/part.js:1955 templates/js/translated/stock.js:2388
msgid "Name"
msgstr "Name"
#: InvenTree/models.py:544 build/models.py:174
#: build/templates/build/detail.html:24 company/models.py:282
-#: company/models.py:516 company/templates/company/company_base.html:71
+#: company/models.py:517 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:87 label/models.py:108
-#: order/models.py:82 part/models.py:769 part/models.py:2429
+#: company/templates/company/supplier_part.html:92 label/models.py:108
+#: order/models.py:82 part/models.py:769 part/models.py:2437
#: part/templates/part/category.html:80 part/templates/part/part_base.html:167
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
@@ -305,14 +306,14 @@ msgstr "Name"
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/InvenTree/settings/settings.html:358
#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846
-#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409
-#: templates/js/translated/company.js:667
-#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637
-#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167
-#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962
-#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743
-#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478
+#: templates/js/translated/build.js:2512 templates/js/translated/company.js:444
+#: templates/js/translated/company.js:702
+#: templates/js/translated/company.js:986 templates/js/translated/order.js:1988
+#: templates/js/translated/order.js:2220 templates/js/translated/order.js:2831
+#: templates/js/translated/part.js:745 templates/js/translated/part.js:1187
+#: templates/js/translated/part.js:1463 templates/js/translated/part.js:1991
+#: templates/js/translated/part.js:2060 templates/js/translated/stock.js:1743
+#: templates/js/translated/stock.js:2420 templates/js/translated/stock.js:2474
msgid "Description"
msgstr "Beschreibung"
@@ -325,7 +326,7 @@ msgid "parent"
msgstr "Eltern"
#: InvenTree/models.py:560 InvenTree/models.py:561
-#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:2426
msgid "Path"
msgstr "Pfad"
@@ -337,7 +338,7 @@ msgstr "Serverfehler"
msgid "An error has been logged by the server."
msgstr "Ein Fehler wurde vom Server protokolliert."
-#: InvenTree/serializers.py:55 part/models.py:2745
+#: InvenTree/serializers.py:55 part/models.py:2753
msgid "Must be a valid number"
msgstr "Muss eine gültige Nummer sein"
@@ -522,7 +523,7 @@ msgid "Placed"
msgstr "Platziert"
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr "Fertig"
@@ -542,8 +543,8 @@ msgstr "Verloren"
msgid "Returned"
msgstr "Zurückgegeben"
-#: InvenTree/status_codes.py:141 order/models.py:1128
-#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785
+#: InvenTree/status_codes.py:141 order/models.py:1132
+#: templates/js/translated/order.js:3630 templates/js/translated/order.js:3979
msgid "Shipped"
msgstr "Versendet"
@@ -627,7 +628,7 @@ msgstr "Vom übergeordneten Element geteilt"
msgid "Split child item"
msgstr "Unterobjekt geteilt"
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080
msgid "Merged stock items"
msgstr "Lagerartikel zusammengeführt"
@@ -717,7 +718,7 @@ msgstr "Systeminformationen"
msgid "About InvenTree"
msgstr "Über InvenTree"
-#: build/api.py:217
+#: build/api.py:219
msgid "Build must be cancelled before it can be deleted"
msgstr ""
@@ -748,15 +749,15 @@ msgstr "Bauaufträge"
msgid "Build Order Reference"
msgstr "Bauauftragsreferenz"
-#: build/models.py:166 order/models.py:240 order/models.py:623
-#: order/models.py:904 part/models.py:2663
+#: build/models.py:166 order/models.py:240 order/models.py:627
+#: order/models.py:908 part/models.py:2671
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853
-#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089
-#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629
-#: templates/js/translated/order.js:4137
+#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2251
+#: templates/js/translated/order.js:2484 templates/js/translated/order.js:3823
+#: templates/js/translated/order.js:4331
msgid "Reference"
msgstr "Referenz"
@@ -774,12 +775,12 @@ msgid "BuildOrder to which this build is allocated"
msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
#: build/models.py:191 build/templates/build/build_base.html:80
-#: build/templates/build/detail.html:29 company/models.py:670
-#: order/models.py:1001 order/models.py:1112 order/models.py:1113
-#: part/models.py:343 part/models.py:2185 part/models.py:2200
-#: part/models.py:2219 part/models.py:2237 part/models.py:2336
-#: part/models.py:2463 part/models.py:2553 part/models.py:2638
-#: part/models.py:2914 part/serializers.py:814
+#: build/templates/build/detail.html:29 company/models.py:679
+#: order/models.py:1005 order/models.py:1116 order/models.py:1117
+#: part/models.py:343 part/models.py:2193 part/models.py:2208
+#: part/models.py:2227 part/models.py:2245 part/models.py:2344
+#: part/models.py:2471 part/models.py:2561 part/models.py:2646
+#: part/models.py:2922 part/serializers.py:814
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -795,18 +796,18 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800
#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682
#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517
-#: templates/js/translated/company.js:266
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:608
-#: templates/js/translated/company.js:868 templates/js/translated/order.js:105
-#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493
-#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613
-#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224
-#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586
+#: templates/js/translated/company.js:301
+#: templates/js/translated/company.js:531
+#: templates/js/translated/company.js:643
+#: templates/js/translated/company.js:904 templates/js/translated/order.js:106
+#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1638
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:3185
+#: templates/js/translated/order.js:3581 templates/js/translated/order.js:3807
+#: templates/js/translated/part.js:1172 templates/js/translated/part.js:1244
+#: templates/js/translated/part.js:1441 templates/js/translated/stock.js:586
#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504
-#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833
+#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2500
+#: templates/js/translated/stock.js:2695 templates/js/translated/stock.js:2829
msgid "Part"
msgstr "Teil"
@@ -823,7 +824,7 @@ msgid "SalesOrder to which this build is allocated"
msgstr "Bestellung, die diesem Bauauftrag zugewiesen ist"
#: build/models.py:213 build/serializers.py:800
-#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979
+#: templates/js/translated/build.js:2114 templates/js/translated/order.js:3173
msgid "Source Location"
msgstr "Quell-Lagerort"
@@ -863,8 +864,8 @@ msgstr "Bauauftrags-Status"
msgid "Build status code"
msgstr "Bau-Statuscode"
-#: build/models.py:251 build/serializers.py:225 order/serializers.py:447
-#: stock/models.py:662 templates/js/translated/order.js:1353
+#: build/models.py:251 build/serializers.py:225 order/serializers.py:464
+#: stock/models.py:662 templates/js/translated/order.js:1496
msgid "Batch Code"
msgstr "Losnummer"
@@ -873,11 +874,11 @@ msgid "Batch code for this build output"
msgstr "Losnummer für dieses Endprodukt"
#: build/models.py:258 order/models.py:86 part/models.py:938
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2844
msgid "Creation Date"
msgstr "Erstelldatum"
-#: build/models.py:262 order/models.py:648
+#: build/models.py:262 order/models.py:652
msgid "Target completion date"
msgstr "geplantes Fertigstellungsdatum"
@@ -904,10 +905,10 @@ msgstr "Nutzer der diesen Bauauftrag erstellt hat"
#: build/models.py:289 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:100
-#: order/templates/order/order_base.html:179
+#: order/templates/order/order_base.html:185
#: order/templates/order/sales_order_base.html:183 part/models.py:942
#: report/templates/report/inventree_build_order_base.html:158
-#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860
+#: templates/js/translated/build.js:2574 templates/js/translated/order.js:2022
msgid "Responsible"
msgstr "Verantwortlicher Benutzer"
@@ -917,9 +918,9 @@ msgstr "Nutzer der für diesen Bauauftrag zuständig ist"
#: build/models.py:295 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
-#: company/templates/company/supplier_part.html:153
+#: company/templates/company/supplier_part.html:165
#: part/templates/part/part_base.html:346 stock/models.py:656
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr "Externer Link"
@@ -957,11 +958,11 @@ msgstr "Bauauftragsposition muss ein Endprodukt festlegen, da der übergeordnete
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Zugewiesene Menge ({q}) darf nicht verfügbare Menge ({a}) übersteigen"
-#: build/models.py:1188 order/models.py:1379
+#: build/models.py:1188 order/models.py:1383
msgid "Stock item is over-allocated"
msgstr "BestandObjekt ist zu oft zugewiesen"
-#: build/models.py:1194 order/models.py:1382
+#: build/models.py:1194 order/models.py:1386
msgid "Allocation quantity must be greater than zero"
msgstr "Reserviermenge muss größer null sein"
@@ -973,7 +974,7 @@ msgstr "Anzahl muss 1 für Objekte mit Seriennummer sein"
msgid "Selected stock item not found in BOM"
msgstr "Ausgewähltes Bestands-Objekt nicht in Stückliste für Teil '{p}' gefunden"
-#: build/models.py:1326 stock/templates/stock/item_base.html:172
+#: build/models.py:1326 stock/templates/stock/item_base.html:175
#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496
#: templates/navbar.html:38
msgid "Build"
@@ -983,18 +984,18 @@ msgstr "Bauauftrag"
msgid "Build to allocate parts"
msgstr "Bauauftrag starten um Teile zuzuweisen"
-#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015
-#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754
+#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1035
+#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754
#: stock/serializers.py:880 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:197
#: templates/js/translated/build.js:774 templates/js/translated/build.js:779
#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679
-#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992
-#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299
-#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486
+#: templates/js/translated/order.js:107 templates/js/translated/order.js:3186
+#: templates/js/translated/order.js:3488 templates/js/translated/order.js:3493
+#: templates/js/translated/order.js:3588 templates/js/translated/order.js:3680
#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752
-#: templates/js/translated/stock.js:2577
+#: templates/js/translated/stock.js:2573
msgid "Stock Item"
msgstr "Lagerartikel"
@@ -1004,11 +1005,11 @@ msgstr "Quell-Lagerartikel"
#: build/models.py:1356 build/serializers.py:193
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1697
-#: company/templates/company/supplier_part.html:279 order/models.py:897
-#: order/models.py:1423 order/serializers.py:1155
+#: build/templates/build/detail.html:34 common/models.py:1701
+#: company/templates/company/supplier_part.html:291 order/models.py:901
+#: order/models.py:1427 order/serializers.py:1209
#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40
-#: part/models.py:2654 part/templates/part/detail.html:951
+#: part/models.py:2662 part/templates/part/detail.html:951
#: part/templates/part/detail.html:1037
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -1017,8 +1018,8 @@ msgstr "Quell-Lagerartikel"
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:291 stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
+#: stock/serializers.py:291 stock/templates/stock/item_base.html:290
+#: stock/templates/stock/item_base.html:298
#: templates/email/build_order_completed.html:18
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691
#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458
@@ -1026,16 +1027,16 @@ msgstr "Quell-Lagerartikel"
#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708
#: templates/js/translated/build.js:2129
#: templates/js/translated/model_renderers.js:120
-#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043
-#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313
-#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492
-#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143
-#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176
-#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686
-#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458
+#: templates/js/translated/order.js:123 templates/js/translated/order.js:1137
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:2490
+#: templates/js/translated/order.js:3187 templates/js/translated/order.js:3507
+#: templates/js/translated/order.js:3594 templates/js/translated/order.js:3686
+#: templates/js/translated/order.js:3829 templates/js/translated/order.js:4337
+#: templates/js/translated/part.js:1036 templates/js/translated/part.js:2205
+#: templates/js/translated/part.js:2674 templates/js/translated/part.js:2715
+#: templates/js/translated/part.js:2793 templates/js/translated/stock.js:458
#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782
-#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2707
msgid "Quantity"
msgstr "Anzahl"
@@ -1077,7 +1078,7 @@ msgid "Enter quantity for build output"
msgstr "Menge der Endprodukte angeben"
#: build/serializers.py:208 build/serializers.py:665 order/models.py:318
-#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545
+#: order/serializers.py:304 order/serializers.py:459 part/serializers.py:545
#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251
#: stock/serializers.py:300
msgid "Quantity must be greater than zero"
@@ -1091,8 +1092,8 @@ msgstr "Ganzzahl für verfolgbare Teile erforderlich"
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr "Ganzzahl erforderlich da die Stückliste nachverfolgbare Teile enthält"
-#: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159
-#: stock/serializers.py:309 templates/js/translated/order.js:1364
+#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213
+#: stock/serializers.py:309 templates/js/translated/order.js:1507
#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459
msgid "Serial Numbers"
msgstr "Seriennummer"
@@ -1117,18 +1118,18 @@ msgstr "Folgende Seriennummern existieren bereits"
msgid "A list of build outputs must be provided"
msgstr "Eine Liste von Endprodukten muss angegeben werden"
-#: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532
+#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552
#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532
#: stock/serializers.py:915 stock/serializers.py:1148
-#: stock/templates/stock/item_base.html:385
+#: stock/templates/stock/item_base.html:388
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786
-#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391
-#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411
-#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500
+#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1534
+#: templates/js/translated/order.js:3500 templates/js/translated/order.js:3605
+#: templates/js/translated/order.js:3613 templates/js/translated/order.js:3694
#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588
#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960
-#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2514
msgid "Location"
msgstr "Lagerort"
@@ -1137,12 +1138,12 @@ msgid "Location for completed build outputs"
msgstr "Lagerort für fertige Endprodukte"
#: build/serializers.py:373 build/templates/build/build_base.html:145
-#: build/templates/build/detail.html:62 order/models.py:642
-#: order/serializers.py:465 stock/templates/stock/item_base.html:418
+#: build/templates/build/detail.html:62 order/models.py:646
+#: order/serializers.py:482 stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546
-#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830
-#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829
-#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727
+#: templates/js/translated/order.js:1643 templates/js/translated/order.js:1992
+#: templates/js/translated/order.js:2836 templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:2591 templates/js/translated/stock.js:2723
msgid "Status"
msgstr "Status"
@@ -1202,7 +1203,7 @@ msgstr "Akzeptieren, dass Lagerartikel diesem Bauauftrag nicht vollständig zuge
msgid "Required stock has not been fully allocated"
msgstr "Benötigter Bestand wurde nicht vollständig zugewiesen"
-#: build/serializers.py:527
+#: build/serializers.py:527 order/serializers.py:208 order/serializers.py:1103
msgid "Accept Incomplete"
msgstr "Unvollständig Zuweisung akzeptieren"
@@ -1218,8 +1219,8 @@ msgstr "Benötigte Teil-Anzahl wurde noch nicht fertiggestellt"
msgid "Build order has incomplete outputs"
msgstr "Bauauftrag hat unvollständige Aufbauten"
-#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772
-#: part/models.py:2906
+#: build/serializers.py:577 build/serializers.py:622 part/models.py:2780
+#: part/models.py:2914
msgid "BOM Item"
msgstr "Stücklisten-Position"
@@ -1239,7 +1240,7 @@ msgstr "bom_item.part muss auf dasselbe Teil verweisen wie der Bauauftrag"
msgid "Item must be in stock"
msgstr "Teil muss auf Lager sein"
-#: build/serializers.py:709 order/serializers.py:1073
+#: build/serializers.py:709 order/serializers.py:1093
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Verfügbare Menge ({q}) überschritten"
@@ -1256,7 +1257,7 @@ msgstr "Endprodukt kann bei Zuweisung nicht-verfolgter Teile nicht angegeben wer
msgid "This stock item has already been allocated to this build output"
msgstr "Dieser Lagerbestand wurde bereits diesem Endprodukt zugewiesen"
-#: build/serializers.py:750 order/serializers.py:1319
+#: build/serializers.py:750 order/serializers.py:1373
msgid "Allocation items must be provided"
msgstr "Zuweisungen müssen angegeben werden"
@@ -1371,13 +1372,13 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr "Bestand wurde Bauauftrag noch nicht vollständig zugewiesen"
#: build/templates/build/build_base.html:154
-#: build/templates/build/detail.html:131 order/models.py:910
-#: order/templates/order/order_base.html:165
+#: build/templates/build/detail.html:131 order/models.py:914
+#: order/templates/order/order_base.html:171
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:125
-#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847
-#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658
-#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042
+#: templates/js/translated/build.js:2586 templates/js/translated/order.js:2009
+#: templates/js/translated/order.js:2351 templates/js/translated/order.js:2852
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1051
msgid "Target Date"
msgstr "Zieldatum"
@@ -1388,7 +1389,7 @@ msgstr "Bauauftrag war fällig am %(target)s"
#: build/templates/build/build_base.html:159
#: build/templates/build/build_base.html:204
-#: order/templates/order/order_base.html:101
+#: order/templates/order/order_base.html:107
#: order/templates/order/sales_order_base.html:94
#: templates/js/translated/table_filters.js:320
#: templates/js/translated/table_filters.js:361
@@ -1404,15 +1405,15 @@ msgid "Completed"
msgstr "Fertig"
#: build/templates/build/build_base.html:179
-#: build/templates/build/detail.html:94 order/models.py:1105
-#: order/models.py:1199 order/models.py:1330
+#: build/templates/build/detail.html:94 order/models.py:1109
+#: order/models.py:1203 order/models.py:1334
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:365
+#: stock/templates/stock/item_base.html:368
#: templates/email/overdue_sales_order.html:15
-#: templates/js/translated/order.js:2604
+#: templates/js/translated/order.js:2798
msgid "Sales Order"
msgstr "Auftrag"
@@ -1438,8 +1439,8 @@ msgstr "Ausgangs-Lager"
msgid "Stock can be taken from any available location."
msgstr "Bestand kann jedem verfügbaren Lagerort entnommen werden."
-#: build/templates/build/detail.html:49 order/models.py:1023
-#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199
+#: build/templates/build/detail.html:49 order/models.py:1027
+#: templates/js/translated/order.js:1644 templates/js/translated/order.js:2393
msgid "Destination"
msgstr "Ziel-Lager"
@@ -1452,18 +1453,18 @@ msgid "Allocated Parts"
msgstr "Zugewiesene Teile"
#: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:165
+#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1215
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843
-#: templates/js/translated/stock.js:2734
+#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1839
+#: templates/js/translated/stock.js:2730
#: templates/js/translated/table_filters.js:159
#: templates/js/translated/table_filters.js:250
msgid "Batch"
msgstr "Losnummer"
#: build/templates/build/detail.html:126
-#: order/templates/order/order_base.html:152
+#: order/templates/order/order_base.html:158
#: order/templates/order/sales_order_base.html:158
#: templates/js/translated/build.js:2554
msgid "Created"
@@ -1516,7 +1517,7 @@ msgstr "Benötigte Teile bestellen"
#: build/templates/build/detail.html:187
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:85
-#: part/templates/part/category.html:183 templates/js/translated/order.js:1083
+#: part/templates/part/category.html:183 templates/js/translated/order.js:1177
msgid "Order Parts"
msgstr "Teile bestellen"
@@ -1851,7 +1852,7 @@ msgstr "Kategorie-Parametervorlage kopieren"
msgid "Copy category parameter templates when creating a part"
msgstr "Kategorie-Parameter Vorlagen kopieren wenn ein Teil angelegt wird"
-#: common/models.py:951 part/models.py:2465 report/models.py:158
+#: common/models.py:951 part/models.py:2473 report/models.py:158
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:484
msgid "Template"
@@ -1861,7 +1862,7 @@ msgstr "Vorlage"
msgid "Parts are templates by default"
msgstr "Teile sind standardmäßig Vorlagen"
-#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446
+#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1454
#: templates/js/translated/table_filters.js:176
#: templates/js/translated/table_filters.js:447
msgid "Assembly"
@@ -2275,349 +2276,349 @@ msgstr "Ereignis-Integration aktivieren"
msgid "Enable plugins to respond to internal events"
msgstr "Plugins ermöglichen auf interne Ereignisse zu reagieren"
-#: common/models.py:1342 common/models.py:1658
+#: common/models.py:1344 common/models.py:1662
msgid "Settings key (must be unique - case insensitive"
msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)"
-#: common/models.py:1364
+#: common/models.py:1366
msgid "Show subscribed parts"
msgstr "Abonnierte Teile anzeigen"
-#: common/models.py:1365
+#: common/models.py:1367
msgid "Show subscribed parts on the homepage"
msgstr "Zeige abonnierte Teile auf der Startseite"
-#: common/models.py:1371
+#: common/models.py:1373
msgid "Show subscribed categories"
msgstr "Abonnierte Kategorien anzeigen"
-#: common/models.py:1372
+#: common/models.py:1374
msgid "Show subscribed part categories on the homepage"
msgstr "Zeige abonnierte Teilkategorien auf der Startseite"
-#: common/models.py:1378
+#: common/models.py:1380
msgid "Show latest parts"
msgstr "Neueste Teile anzeigen"
-#: common/models.py:1379
+#: common/models.py:1381
msgid "Show latest parts on the homepage"
msgstr "Zeige neueste Teile auf der Startseite"
-#: common/models.py:1385
+#: common/models.py:1387
msgid "Recent Part Count"
msgstr "Aktuelle Teile-Stände"
-#: common/models.py:1386
+#: common/models.py:1388
msgid "Number of recent parts to display on index page"
msgstr "Anzahl der neusten Teile auf der Startseite"
-#: common/models.py:1392
+#: common/models.py:1394
msgid "Show unvalidated BOMs"
msgstr "Nicht validierte Stücklisten anzeigen"
-#: common/models.py:1393
+#: common/models.py:1395
msgid "Show BOMs that await validation on the homepage"
msgstr "Zeige Stücklisten, die noch nicht validiert sind, auf der Startseite"
-#: common/models.py:1399
+#: common/models.py:1401
msgid "Show recent stock changes"
msgstr "Neueste Bestandänderungen anzeigen"
-#: common/models.py:1400
+#: common/models.py:1402
msgid "Show recently changed stock items on the homepage"
msgstr "Zeige zuletzt geänderte Lagerbestände auf der Startseite"
-#: common/models.py:1406
+#: common/models.py:1408
msgid "Recent Stock Count"
msgstr "aktueller Bestand"
-#: common/models.py:1407
+#: common/models.py:1409
msgid "Number of recent stock items to display on index page"
msgstr "Anzahl des geänderten Bestands auf der Startseite"
-#: common/models.py:1413
+#: common/models.py:1415
msgid "Show low stock"
msgstr "Niedrigen Bestand anzeigen"
-#: common/models.py:1414
+#: common/models.py:1416
msgid "Show low stock items on the homepage"
msgstr "Zeige geringen Bestand auf der Startseite"
-#: common/models.py:1420
+#: common/models.py:1422
msgid "Show depleted stock"
msgstr "Lerren Bestand anzeigen"
-#: common/models.py:1421
+#: common/models.py:1423
msgid "Show depleted stock items on the homepage"
msgstr "Zeige aufgebrauchte Lagerartikel auf der Startseite"
-#: common/models.py:1427
+#: common/models.py:1429
msgid "Show needed stock"
msgstr "Benötigten Bestand anzeigen"
-#: common/models.py:1428
+#: common/models.py:1430
msgid "Show stock items needed for builds on the homepage"
msgstr "Zeige Bestand für Bauaufträge auf der Startseite"
-#: common/models.py:1434
+#: common/models.py:1436
msgid "Show expired stock"
msgstr "Abgelaufenen Bestand anzeigen"
-#: common/models.py:1435
+#: common/models.py:1437
msgid "Show expired stock items on the homepage"
msgstr "Zeige abgelaufene Lagerbestände auf der Startseite"
-#: common/models.py:1441
+#: common/models.py:1443
msgid "Show stale stock"
msgstr "Alten Bestand anzeigen"
-#: common/models.py:1442
+#: common/models.py:1444
msgid "Show stale stock items on the homepage"
msgstr "Zeige überfällige Lagerartikel auf der Startseite"
-#: common/models.py:1448
+#: common/models.py:1450
msgid "Show pending builds"
msgstr "Ausstehende Bauaufträge anzeigen"
-#: common/models.py:1449
+#: common/models.py:1451
msgid "Show pending builds on the homepage"
msgstr "Zeige ausstehende Bauaufträge auf der Startseite"
-#: common/models.py:1455
+#: common/models.py:1457
msgid "Show overdue builds"
msgstr "Zeige überfällige Bauaufträge"
-#: common/models.py:1456
+#: common/models.py:1458
msgid "Show overdue builds on the homepage"
msgstr "Zeige überfällige Bauaufträge auf der Startseite"
-#: common/models.py:1462
+#: common/models.py:1464
msgid "Show outstanding POs"
msgstr "Ausstehende POs anzeigen"
-#: common/models.py:1463
+#: common/models.py:1465
msgid "Show outstanding POs on the homepage"
msgstr "Zeige ausstehende POs auf der Startseite"
-#: common/models.py:1469
+#: common/models.py:1471
msgid "Show overdue POs"
msgstr "Überfällige POs anzeigen"
-#: common/models.py:1470
+#: common/models.py:1472
msgid "Show overdue POs on the homepage"
msgstr "Zeige überfällige POs auf der Startseite"
-#: common/models.py:1476
+#: common/models.py:1478
msgid "Show outstanding SOs"
msgstr "Ausstehende SOs anzeigen"
-#: common/models.py:1477
+#: common/models.py:1479
msgid "Show outstanding SOs on the homepage"
msgstr "Zeige ausstehende SOs auf der Startseite"
-#: common/models.py:1483
+#: common/models.py:1485
msgid "Show overdue SOs"
msgstr "Überfällige SOs anzeigen"
-#: common/models.py:1484
+#: common/models.py:1486
msgid "Show overdue SOs on the homepage"
msgstr "Zeige überfällige SOs auf der Startseite"
-#: common/models.py:1490
+#: common/models.py:1492
msgid "Inline label display"
msgstr "Label inline anzeigen"
-#: common/models.py:1491
+#: common/models.py:1493
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr "PDF-Labels im Browser anzeigen, anstatt als Datei herunterzuladen"
-#: common/models.py:1497
+#: common/models.py:1499
msgid "Inline report display"
msgstr "Berichte inline anzeigen"
-#: common/models.py:1498
+#: common/models.py:1500
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr "PDF-Berichte im Browser anzeigen, anstatt als Datei herunterzuladen"
-#: common/models.py:1504
+#: common/models.py:1506
msgid "Search Parts"
msgstr "Teile suchen"
-#: common/models.py:1505
+#: common/models.py:1507
msgid "Display parts in search preview window"
msgstr "Teile in der Suchvorschau anzeigen"
-#: common/models.py:1511
+#: common/models.py:1513
msgid "Seach Supplier Parts"
msgstr "Zuliefererteile durchsuchen"
-#: common/models.py:1512
+#: common/models.py:1514
msgid "Display supplier parts in search preview window"
msgstr "Zuliefererteile in der Suchvorschau anzeigen"
-#: common/models.py:1518
+#: common/models.py:1520
msgid "Search Manufacturer Parts"
msgstr "Herstellerteile durchsuchen"
-#: common/models.py:1519
+#: common/models.py:1521
msgid "Display manufacturer parts in search preview window"
msgstr "Herstellerteile in der Suchvorschau anzeigen"
-#: common/models.py:1525
+#: common/models.py:1527
msgid "Hide Inactive Parts"
msgstr "Inaktive Teile ausblenden"
-#: common/models.py:1526
+#: common/models.py:1528
msgid "Excluded inactive parts from search preview window"
msgstr "Inaktive Teile in der Suchvorschau ausblenden"
-#: common/models.py:1532
+#: common/models.py:1534
msgid "Search Categories"
msgstr "Kategorien durchsuchen"
-#: common/models.py:1533
+#: common/models.py:1535
msgid "Display part categories in search preview window"
msgstr "Teilekategorien in der Suchvorschau anzeigen"
-#: common/models.py:1539
+#: common/models.py:1541
msgid "Search Stock"
msgstr "Bestand durchsuchen"
-#: common/models.py:1540
+#: common/models.py:1542
msgid "Display stock items in search preview window"
msgstr "Lagerartikel in Suchvorschau anzeigen"
-#: common/models.py:1546
+#: common/models.py:1548
msgid "Hide Unavailable Stock Items"
msgstr "Nicht verfügbare Artikel ausblenden"
-#: common/models.py:1547
+#: common/models.py:1549
msgid "Exclude stock items which are not available from the search preview window"
msgstr "Nicht verfügbare Lagerartikel aus der Suchvorschau ausschließen"
-#: common/models.py:1553
+#: common/models.py:1555
msgid "Search Locations"
msgstr "Lagerorte durchsuchen"
-#: common/models.py:1554
+#: common/models.py:1556
msgid "Display stock locations in search preview window"
msgstr "Lagerorte in Suchvorschau anzeigen"
-#: common/models.py:1560
+#: common/models.py:1562
msgid "Search Companies"
msgstr "Firmen durchsuchen"
-#: common/models.py:1561
+#: common/models.py:1563
msgid "Display companies in search preview window"
msgstr "Firmen in der Suchvorschau anzeigen"
-#: common/models.py:1567
+#: common/models.py:1569
msgid "Search Purchase Orders"
msgstr "Bestellungen durchsuchen"
-#: common/models.py:1568
+#: common/models.py:1570
msgid "Display purchase orders in search preview window"
msgstr "Bestellungen in der Suchvorschau anzeigen"
-#: common/models.py:1574
+#: common/models.py:1576
msgid "Exclude Inactive Purchase Orders"
msgstr "Inaktive Bestellungen ausblenden"
-#: common/models.py:1575
+#: common/models.py:1577
msgid "Exclude inactive purchase orders from search preview window"
msgstr "Inaktive Bestellungen in der Suchvorschau ausblenden"
-#: common/models.py:1581
+#: common/models.py:1583
msgid "Search Sales Orders"
msgstr "Aufträge durchsuchen"
-#: common/models.py:1582
+#: common/models.py:1584
msgid "Display sales orders in search preview window"
msgstr "Aufträge in der Suchvorschau anzeigen"
-#: common/models.py:1588
+#: common/models.py:1590
msgid "Exclude Inactive Sales Orders"
msgstr "Inaktive Aufträge ausblenden"
-#: common/models.py:1589
+#: common/models.py:1591
msgid "Exclude inactive sales orders from search preview window"
msgstr "Inaktive Aufträge in der Suchvorschau ausblenden"
-#: common/models.py:1595
+#: common/models.py:1597
msgid "Search Preview Results"
msgstr "Anzahl Suchergebnisse"
-#: common/models.py:1596
+#: common/models.py:1598
msgid "Number of results to show in each section of the search preview window"
msgstr "Anzahl der Ergebnisse, die in der Vorschau pro Sektion angezeigt werden sollen"
-#: common/models.py:1602
+#: common/models.py:1604
msgid "Show Quantity in Forms"
msgstr "zeige Bestand in Eingabemasken"
-#: common/models.py:1603
+#: common/models.py:1605
msgid "Display available part quantity in some forms"
msgstr "Zeige den verfügbaren Bestand in einigen Eingabemasken"
-#: common/models.py:1609
+#: common/models.py:1611
msgid "Escape Key Closes Forms"
msgstr "Esc-Taste schließt Formulare"
-#: common/models.py:1610
+#: common/models.py:1612
msgid "Use the escape key to close modal forms"
msgstr "Benutze die Esc-Taste, um Formulare zu schließen"
-#: common/models.py:1616
+#: common/models.py:1618
msgid "Fixed Navbar"
msgstr "Fixierter Navigationsleiste"
-#: common/models.py:1617
+#: common/models.py:1619
msgid "The navbar position is fixed to the top of the screen"
msgstr "Position der Navigationsleiste am oberen Bildschirmrand fixieren"
-#: common/models.py:1623
+#: common/models.py:1625
msgid "Date Format"
msgstr "Datumsformat"
-#: common/models.py:1624
+#: common/models.py:1626
msgid "Preferred format for displaying dates"
msgstr "Bevorzugtes Format für die Anzeige von Daten"
-#: common/models.py:1638 part/templates/part/detail.html:41
+#: common/models.py:1640 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr "Teilzeitplanung"
-#: common/models.py:1639
+#: common/models.py:1641
msgid "Display part scheduling information"
msgstr "Zeige Zeitplanung für Teile"
-#: common/models.py:1698
+#: common/models.py:1702
msgid "Price break quantity"
msgstr "Preisstaffelungs Anzahl"
-#: common/models.py:1705 company/serializers.py:366
-#: company/templates/company/supplier_part.html:284 order/models.py:938
-#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181
+#: common/models.py:1709 company/serializers.py:372
+#: company/templates/company/supplier_part.html:296 order/models.py:942
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:2210
msgid "Price"
msgstr "Preis"
-#: common/models.py:1706
+#: common/models.py:1710
msgid "Unit price at specified quantity"
msgstr "Stückpreis für die angegebene Anzahl"
-#: common/models.py:1866 common/models.py:2044
+#: common/models.py:1870 common/models.py:2048
msgid "Endpoint"
msgstr "Endpunkt"
-#: common/models.py:1867
+#: common/models.py:1871
msgid "Endpoint at which this webhook is received"
msgstr "Endpunkt, an dem dieser Webhook empfangen wird"
-#: common/models.py:1876
+#: common/models.py:1880
msgid "Name for this webhook"
msgstr "Name für diesen Webhook"
-#: common/models.py:1881 part/models.py:921 plugin/models.py:100
+#: common/models.py:1885 part/models.py:921 plugin/models.py:100
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:104
#: templates/js/translated/table_filters.js:316
@@ -2625,67 +2626,67 @@ msgstr "Name für diesen Webhook"
msgid "Active"
msgstr "Aktiv"
-#: common/models.py:1882
+#: common/models.py:1886
msgid "Is this webhook active"
msgstr "Ist dieser Webhook aktiv"
-#: common/models.py:1896
+#: common/models.py:1900
msgid "Token"
msgstr "Token"
-#: common/models.py:1897
+#: common/models.py:1901
msgid "Token for access"
msgstr "Token für Zugang"
-#: common/models.py:1904
+#: common/models.py:1908
msgid "Secret"
msgstr "Geheimnis"
-#: common/models.py:1905
+#: common/models.py:1909
msgid "Shared secret for HMAC"
msgstr "Shared Secret für HMAC"
-#: common/models.py:2011
+#: common/models.py:2015
msgid "Message ID"
msgstr "Nachrichten-ID"
-#: common/models.py:2012
+#: common/models.py:2016
msgid "Unique identifier for this message"
msgstr "Eindeutige Kennung für diese Nachricht"
-#: common/models.py:2020
+#: common/models.py:2024
msgid "Host"
msgstr "Host"
-#: common/models.py:2021
+#: common/models.py:2025
msgid "Host from which this message was received"
msgstr "Host von dem diese Nachricht empfangen wurde"
-#: common/models.py:2028
+#: common/models.py:2032
msgid "Header"
msgstr "Kopfzeile"
-#: common/models.py:2029
+#: common/models.py:2033
msgid "Header of this message"
msgstr "Header dieser Nachricht"
-#: common/models.py:2035
+#: common/models.py:2039
msgid "Body"
msgstr "Body"
-#: common/models.py:2036
+#: common/models.py:2040
msgid "Body of this message"
msgstr "Body dieser Nachricht"
-#: common/models.py:2045
+#: common/models.py:2049
msgid "Endpoint on which this message was received"
msgstr "Endpunkt, über den diese Nachricht empfangen wurde"
-#: common/models.py:2050
+#: common/models.py:2054
msgid "Worked on"
msgstr "Bearbeitet"
-#: common/models.py:2051
+#: common/models.py:2055
msgid "Was the work on this message finished?"
msgstr "Wurde die Arbeit an dieser Nachricht abgeschlossen?"
@@ -2747,7 +2748,7 @@ msgstr "Firmenbeschreibung"
#: company/models.py:105 company/templates/company/company_base.html:100
#: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:413
+#: templates/js/translated/company.js:448
msgid "Website"
msgstr "Website"
@@ -2824,7 +2825,7 @@ msgstr "ist Hersteller"
msgid "Does this company manufacture parts?"
msgstr "Produziert diese Firma Teile?"
-#: company/models.py:148 company/serializers.py:372
+#: company/models.py:148 company/serializers.py:378
#: company/templates/company/company_base.html:106 part/serializers.py:153
#: part/serializers.py:184 stock/serializers.py:178
msgid "Currency"
@@ -2834,24 +2835,24 @@ msgstr "Währung"
msgid "Default currency used for this company"
msgstr "Standard-Währung für diese Firma"
-#: company/models.py:248 company/models.py:481 stock/models.py:598
+#: company/models.py:248 company/models.py:482 stock/models.py:598
#: stock/serializers.py:85 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:542
msgid "Base Part"
msgstr "Basisteil"
-#: company/models.py:252 company/models.py:485
+#: company/models.py:252 company/models.py:486
msgid "Select part"
msgstr "Teil auswählen"
#: company/models.py:263 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:124
-#: stock/templates/stock/item_base.html:207
-#: templates/js/translated/company.js:397
-#: templates/js/translated/company.js:498
-#: templates/js/translated/company.js:633
-#: templates/js/translated/company.js:919 templates/js/translated/part.js:236
+#: company/templates/company/supplier_part.html:129
+#: stock/templates/stock/item_base.html:210
+#: templates/js/translated/company.js:432
+#: templates/js/translated/company.js:533
+#: templates/js/translated/company.js:668
+#: templates/js/translated/company.js:956 templates/js/translated/part.js:236
#: templates/js/translated/table_filters.js:419
msgid "Manufacturer"
msgstr "Hersteller"
@@ -2861,12 +2862,12 @@ msgid "Select manufacturer"
msgstr "Hersteller auswählen"
#: company/models.py:270 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:132
-#: templates/js/translated/company.js:269
-#: templates/js/translated/company.js:497
-#: templates/js/translated/company.js:649
-#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077
-#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027
+#: company/templates/company/supplier_part.html:137
+#: templates/js/translated/company.js:304
+#: templates/js/translated/company.js:532
+#: templates/js/translated/company.js:684
+#: templates/js/translated/company.js:975 templates/js/translated/order.js:2239
+#: templates/js/translated/part.js:247 templates/js/translated/part.js:1025
msgid "MPN"
msgstr "MPN"
@@ -2882,10 +2883,10 @@ msgstr "Externe URL für das Herstellerteil"
msgid "Manufacturer part description"
msgstr "Teilbeschreibung des Herstellers"
-#: company/models.py:328 company/models.py:352 company/models.py:504
+#: company/models.py:328 company/models.py:352 company/models.py:505
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:220
msgid "Manufacturer Part"
msgstr "Herstellerteil"
@@ -2895,8 +2896,8 @@ msgstr "Parametername"
#: company/models.py:365
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2095 templates/js/translated/company.js:546
-#: templates/js/translated/company.js:764 templates/js/translated/part.js:849
+#: stock/models.py:2095 templates/js/translated/company.js:581
+#: templates/js/translated/company.js:799 templates/js/translated/part.js:847
#: templates/js/translated/stock.js:1360
msgid "Value"
msgstr "Wert"
@@ -2905,10 +2906,10 @@ msgstr "Wert"
msgid "Parameter value"
msgstr "Parameterwert"
-#: company/models.py:372 part/models.py:888 part/models.py:2425
+#: company/models.py:372 part/models.py:888 part/models.py:2433
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:352
-#: templates/js/translated/company.js:770 templates/js/translated/part.js:855
+#: templates/js/translated/company.js:805 templates/js/translated/part.js:853
msgid "Units"
msgstr "Einheiten"
@@ -2916,106 +2917,119 @@ msgstr "Einheiten"
msgid "Parameter units"
msgstr "Parametereinheit"
-#: company/models.py:449
+#: company/models.py:450
msgid "Linked manufacturer part must reference the same base part"
msgstr "Verlinktes Herstellerteil muss dasselbe Basisteil referenzieren"
-#: company/models.py:491 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:108 order/models.py:258
-#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:224
+#: company/models.py:492 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:113 order/models.py:258
+#: order/templates/order/order_base.html:121 part/bom.py:237 part/bom.py:265
+#: stock/templates/stock/item_base.html:227
#: templates/email/overdue_purchase_order.html:16
-#: templates/js/translated/company.js:268
-#: templates/js/translated/company.js:401
-#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813
-#: templates/js/translated/part.js:217 templates/js/translated/part.js:995
+#: templates/js/translated/company.js:303
+#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:929 templates/js/translated/order.js:1975
+#: templates/js/translated/part.js:217 templates/js/translated/part.js:993
#: templates/js/translated/table_filters.js:423
msgid "Supplier"
msgstr "Zulieferer"
-#: company/models.py:492 templates/js/translated/part.js:218
+#: company/models.py:493 templates/js/translated/part.js:218
msgid "Select supplier"
msgstr "Zulieferer auswählen"
-#: company/models.py:497 company/templates/company/supplier_part.html:118
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267
-#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228
-#: templates/js/translated/part.js:1013
+#: company/models.py:498 company/templates/company/supplier_part.html:123
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:302
+#: templates/js/translated/order.js:2226 templates/js/translated/part.js:228
+#: templates/js/translated/part.js:1011
msgid "SKU"
msgstr "SKU (Lagerbestandseinheit)"
-#: company/models.py:498 templates/js/translated/part.js:229
+#: company/models.py:499 templates/js/translated/part.js:229
msgid "Supplier stock keeping unit"
msgstr "Lagerbestandseinheit (SKU) des Zulieferers"
-#: company/models.py:505
+#: company/models.py:506
msgid "Select manufacturer part"
msgstr "Herstellerteil auswählen"
-#: company/models.py:511
+#: company/models.py:512
msgid "URL for external supplier part link"
msgstr "Teil-URL des Zulieferers"
-#: company/models.py:517
+#: company/models.py:518
msgid "Supplier part description"
msgstr "Zuliefererbeschreibung des Teils"
-#: company/models.py:522 company/templates/company/supplier_part.html:146
-#: part/models.py:2666 part/templates/part/upload_bom.html:59
+#: company/models.py:523 company/templates/company/supplier_part.html:158
+#: part/models.py:2674 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399
msgid "Note"
msgstr "Notiz"
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "base cost"
msgstr "Basiskosten"
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Mindestpreis"
-#: company/models.py:528 company/templates/company/supplier_part.html:139
-#: stock/models.py:624 stock/templates/stock/item_base.html:240
-#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976
+#: company/models.py:529 company/templates/company/supplier_part.html:144
+#: stock/models.py:624 stock/templates/stock/item_base.html:243
+#: templates/js/translated/company.js:991 templates/js/translated/stock.js:1972
msgid "Packaging"
msgstr "Verpackungen"
-#: company/models.py:528
+#: company/models.py:529
msgid "Part packaging"
msgstr "Teile-Verpackungen"
-#: company/models.py:530 part/models.py:1783
+#: company/models.py:532 company/serializers.py:242
+#: company/templates/company/supplier_part.html:151
+#: templates/js/translated/company.js:996 templates/js/translated/order.js:820
+#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:2270 templates/js/translated/order.js:2287
+#: templates/js/translated/part.js:1043 templates/js/translated/part.js:1095
+msgid "Pack Quantity"
+msgstr ""
+
+#: company/models.py:533
+msgid "Unit quantity supplied in a single pack"
+msgstr ""
+
+#: company/models.py:539 part/models.py:1783
msgid "multiple"
msgstr "Vielfache"
-#: company/models.py:530
+#: company/models.py:539
msgid "Order multiple"
msgstr "Mehrere bestellen"
-#: company/models.py:538 company/templates/company/supplier_part.html:94
+#: company/models.py:547 company/templates/company/supplier_part.html:99
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823
-#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979
-#: templates/js/translated/part.js:600 templates/js/translated/part.js:603
+#: templates/js/translated/bom.js:915 templates/js/translated/build.js:1823
+#: templates/js/translated/build.js:2686 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:601
#: templates/js/translated/table_filters.js:186
msgid "Available"
msgstr "Verfügbar"
-#: company/models.py:539
+#: company/models.py:548
msgid "Quantity available from supplier"
msgstr "Verfügbare Menge von Lieferanten"
-#: company/models.py:543
+#: company/models.py:552
msgid "Availability Updated"
msgstr "Verfügbarkeit aktualisiert"
-#: company/models.py:544
+#: company/models.py:553
msgid "Date of last update of availability data"
msgstr ""
-#: company/models.py:672
+#: company/models.py:681
msgid "last updated"
msgstr "Letzte Aktualisierung"
@@ -3029,12 +3043,12 @@ msgstr "Währungscode"
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386
+#: templates/InvenTree/search.html:179 templates/js/translated/company.js:421
msgid "Company"
msgstr "Firma"
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:624
+#: templates/js/translated/order.js:689
msgid "Create Purchase Order"
msgstr "Bestellung anlegen"
@@ -3047,7 +3061,7 @@ msgid "Edit company information"
msgstr "Firmeninformation bearbeiten"
#: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:329
+#: templates/js/translated/company.js:364
msgid "Edit Company"
msgstr "Firma bearbeiten"
@@ -3070,13 +3084,13 @@ msgstr "Neues Bild hochladen"
msgid "Download image from URL"
msgstr "Bild von URL herunterladen"
-#: company/templates/company/company_base.html:86 order/models.py:637
+#: company/templates/company/company_base.html:86 order/models.py:641
#: order/templates/order/sales_order_base.html:116 stock/models.py:643
#: stock/models.py:644 stock/serializers.py:809
-#: stock/templates/stock/item_base.html:396
+#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
-#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619
-#: templates/js/translated/stock.js:2559
+#: templates/js/translated/company.js:428 templates/js/translated/order.js:2813
+#: templates/js/translated/stock.js:2555
#: templates/js/translated/table_filters.js:427
msgid "Customer"
msgstr "Kunde"
@@ -3211,23 +3225,23 @@ msgid "Manufacturers"
msgstr "Hersteller"
#: company/templates/company/manufacturer_part.html:35
-#: company/templates/company/supplier_part.html:186
+#: company/templates/company/supplier_part.html:198
#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80
msgid "Order part"
msgstr "Teil bestellen"
#: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:681
+#: templates/js/translated/company.js:716
msgid "Edit manufacturer part"
msgstr "Herstellerteil bearbeiten"
#: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:682
+#: templates/js/translated/company.js:717
msgid "Delete manufacturer part"
msgstr "Herstellerteil löschen"
#: company/templates/company/manufacturer_part.html:65
-#: company/templates/company/supplier_part.html:77
+#: company/templates/company/supplier_part.html:82
msgid "Internal Part"
msgstr "Internes Teil"
@@ -3250,8 +3264,8 @@ msgstr "Zuliefererteil entfernen"
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:371 part/templates/part/detail.html:401
-#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34
-#: users/models.py:220
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:34
+#: users/models.py:222
msgid "Delete"
msgstr "Löschen"
@@ -3296,9 +3310,9 @@ msgstr "Zugewiesene Lagerartikel"
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:607
-#: stock/templates/stock/item_base.html:233
-#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041
-#: templates/js/translated/stock.js:1933
+#: stock/templates/stock/item_base.html:236
+#: templates/js/translated/company.js:945 templates/js/translated/order.js:1135
+#: templates/js/translated/stock.js:1929
msgid "Supplier Part"
msgstr "Zuliefererteil"
@@ -3308,7 +3322,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:40
#: company/templates/company/supplier_part.html:41
-#: company/templates/company/supplier_part.html:187
+#: company/templates/company/supplier_part.html:199
#: part/templates/part/detail.html:88
msgid "Order Part"
msgstr "Teil bestellen"
@@ -3320,81 +3334,87 @@ msgstr "Verfügbarkeit aktualisieren"
#: company/templates/company/supplier_part.html:48
#: company/templates/company/supplier_part.html:49
-#: templates/js/translated/company.js:212
+#: templates/js/translated/company.js:247
msgid "Edit Supplier Part"
msgstr "Zuliefererteil bearbeiten"
#: company/templates/company/supplier_part.html:53
+#: company/templates/company/supplier_part.html:54
+#: templates/js/translated/company.js:222
+msgid "Duplicate Supplier Part"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:58
msgid "Delete Supplier Part"
msgstr "Zuliefererteil entfernen"
-#: company/templates/company/supplier_part.html:54
+#: company/templates/company/supplier_part.html:59
msgid "Delete Supplier Part"
msgstr "Zuliefererteil entfernen"
-#: company/templates/company/supplier_part.html:112
+#: company/templates/company/supplier_part.html:117
msgid "No supplier information available"
msgstr "Keine Lieferanteninformationen verfügbar"
-#: company/templates/company/supplier_part.html:165
+#: company/templates/company/supplier_part.html:177
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr "Zulieferer-Bestand"
-#: company/templates/company/supplier_part.html:168
+#: company/templates/company/supplier_part.html:180
#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181
msgid "Create new stock item"
msgstr "Neuen Lagerartikel hinzufügen"
-#: company/templates/company/supplier_part.html:169
+#: company/templates/company/supplier_part.html:181
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182
#: templates/js/translated/stock.js:435
msgid "New Stock Item"
msgstr "Neuer Lagerartikel"
-#: company/templates/company/supplier_part.html:182
+#: company/templates/company/supplier_part.html:194
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr "Zulieferer-Bestellungen"
-#: company/templates/company/supplier_part.html:207
+#: company/templates/company/supplier_part.html:219
#: part/templates/part/prices.html:10
msgid "Pricing Information"
msgstr "Preisinformationen ansehen"
-#: company/templates/company/supplier_part.html:212
-#: company/templates/company/supplier_part.html:326
-#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253
+#: company/templates/company/supplier_part.html:224
+#: company/templates/company/supplier_part.html:338
+#: part/templates/part/prices.html:276 templates/js/translated/part.js:2282
msgid "Add Price Break"
msgstr "Preisstaffel hinzufügen"
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:250
msgid "No price break information found"
msgstr "Keine Informationen zur Preisstaffel gefunden"
-#: company/templates/company/supplier_part.html:252
-#: templates/js/translated/part.js:2263
+#: company/templates/company/supplier_part.html:264
+#: templates/js/translated/part.js:2292
msgid "Delete Price Break"
msgstr "Preisstaffel löschen"
-#: company/templates/company/supplier_part.html:266
-#: templates/js/translated/part.js:2277
+#: company/templates/company/supplier_part.html:278
+#: templates/js/translated/part.js:2306
msgid "Edit Price Break"
msgstr "Preisstaffel bearbeiten"
-#: company/templates/company/supplier_part.html:291
+#: company/templates/company/supplier_part.html:303
msgid "Edit price break"
msgstr "Preisstaffel bearbeiten"
-#: company/templates/company/supplier_part.html:292
+#: company/templates/company/supplier_part.html:304
msgid "Delete price break"
msgstr "Preisstaffel löschen"
-#: company/templates/company/supplier_part.html:301
+#: company/templates/company/supplier_part.html:313
msgid "Last updated"
msgstr "Zuletzt aktualisiert"
-#: company/templates/company/supplier_part.html:382
+#: company/templates/company/supplier_part.html:394
msgid "Update Part Availability"
msgstr "Teilverfügbarkeit aktualisieren"
@@ -3404,8 +3424,8 @@ msgstr "Teilverfügbarkeit aktualisieren"
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313
-#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959
+#: templates/js/translated/part.js:749 templates/js/translated/part.js:1334
+#: templates/js/translated/part.js:1495 templates/js/translated/stock.js:959
#: templates/js/translated/stock.js:1754 templates/navbar.html:31
msgid "Stock"
msgstr "Bestand"
@@ -3432,7 +3452,7 @@ msgstr "Bepreisung"
#: stock/templates/stock/location.html:178
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2436 users/models.py:40
+#: templates/js/translated/stock.js:2432 users/models.py:40
msgid "Stock Items"
msgstr "Lagerartikel"
@@ -3534,7 +3554,7 @@ msgstr ""
msgid "Order description"
msgstr "Bestellungs-Beschreibung"
-#: order/models.py:84 order/models.py:1246
+#: order/models.py:84 order/models.py:1250
msgid "Link to external page"
msgstr "Link auf externe Seite"
@@ -3550,11 +3570,11 @@ msgstr "Nutzer oder Gruppe der/die für diesen Auftrag zuständig ist/sind"
msgid "Order notes"
msgstr "Bestell-Notizen"
-#: order/models.py:241 order/models.py:624
+#: order/models.py:241 order/models.py:628
msgid "Order reference"
msgstr "Bestell-Referenz"
-#: order/models.py:249 order/models.py:642
+#: order/models.py:249 order/models.py:646
msgid "Purchase order status"
msgstr "Bestellungs-Status"
@@ -3562,8 +3582,8 @@ msgstr "Bestellungs-Status"
msgid "Company from which the items are being ordered"
msgstr "Firma bei der die Teile bestellt werden"
-#: order/models.py:262 order/templates/order/order_base.html:127
-#: templates/js/translated/order.js:1822
+#: order/models.py:262 order/templates/order/order_base.html:133
+#: templates/js/translated/order.js:1984
msgid "Supplier Reference"
msgstr "Zulieferer-Referenz"
@@ -3603,245 +3623,245 @@ msgstr "Teile-Zulieferer muss dem Zulieferer der Bestellung entsprechen"
msgid "Quantity must be a positive number"
msgstr "Anzahl muss eine positive Zahl sein"
-#: order/models.py:638
+#: order/models.py:642
msgid "Company to which the items are being sold"
msgstr "Firma an die die Teile verkauft werden"
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer Reference "
msgstr "Kundenreferenz"
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer order reference code"
msgstr "Bestellreferenz"
-#: order/models.py:649
+#: order/models.py:653
msgid "Target date for order completion. Order will be overdue after this date."
msgstr "Zieldatum für Auftrags-Fertigstellung."
-#: order/models.py:652 order/models.py:1204
-#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828
+#: order/models.py:656 order/models.py:1208
+#: templates/js/translated/order.js:2860 templates/js/translated/order.js:3022
msgid "Shipment Date"
msgstr "Versanddatum"
-#: order/models.py:659
+#: order/models.py:663
msgid "shipped by"
msgstr "Versand von"
-#: order/models.py:714
+#: order/models.py:718
msgid "Order cannot be completed as no parts have been assigned"
msgstr "Auftrag kann nicht abgeschlossen werden, da keine Teile zugewiesen wurden"
-#: order/models.py:718
+#: order/models.py:722
msgid "Only a pending order can be marked as complete"
msgstr "Nur ein ausstehender Auftrag kann als abgeschlossen markiert werden"
-#: order/models.py:721
+#: order/models.py:725 templates/js/translated/order.js:419
msgid "Order cannot be completed as there are incomplete shipments"
msgstr "Auftrag kann nicht abgeschlossen werden, da unvollständige Sendungen vorhanden sind"
-#: order/models.py:724
+#: order/models.py:728
msgid "Order cannot be completed as there are incomplete line items"
msgstr "Auftrag kann nicht abgeschlossen werden, da es unvollständige Positionen gibt"
-#: order/models.py:898
+#: order/models.py:902
msgid "Item quantity"
msgstr "Anzahl"
-#: order/models.py:904
+#: order/models.py:908
msgid "Line item reference"
msgstr "Position - Referenz"
-#: order/models.py:906
+#: order/models.py:910
msgid "Line item notes"
msgstr "Position - Notizen"
-#: order/models.py:911
+#: order/models.py:915
msgid "Target shipping date for this line item"
msgstr "Lieferdatum für diese Position"
-#: order/models.py:929
+#: order/models.py:933
msgid "Context"
msgstr "Kontext"
-#: order/models.py:930
+#: order/models.py:934
msgid "Additional context for this line"
msgstr "Zusätzlicher Kontext für diese Zeile"
-#: order/models.py:939
+#: order/models.py:943
msgid "Unit price"
msgstr "Stückpreis"
-#: order/models.py:969
+#: order/models.py:973
msgid "Supplier part must match supplier"
msgstr "Lieferantenteil muss mit Lieferant übereinstimmen"
-#: order/models.py:977
+#: order/models.py:981
msgid "deleted"
msgstr "gelöscht"
-#: order/models.py:983 order/models.py:1063 order/models.py:1104
-#: order/models.py:1198 order/models.py:1330
-#: templates/js/translated/order.js:3284
+#: order/models.py:987 order/models.py:1067 order/models.py:1108
+#: order/models.py:1202 order/models.py:1334
+#: templates/js/translated/order.js:3478
msgid "Order"
msgstr "Bestellung"
-#: order/models.py:984 order/models.py:1063
+#: order/models.py:988 order/models.py:1067
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:179
+#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
-#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042
-#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972
-#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540
+#: templates/js/translated/order.js:619 templates/js/translated/order.js:1136
+#: templates/js/translated/order.js:1959 templates/js/translated/part.js:970
+#: templates/js/translated/stock.js:1909 templates/js/translated/stock.js:2536
msgid "Purchase Order"
msgstr "Bestellung"
-#: order/models.py:1002
+#: order/models.py:1006
msgid "Supplier part"
msgstr "Zuliefererteil"
-#: order/models.py:1009 order/templates/order/order_base.html:172
-#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105
+#: order/models.py:1013 order/templates/order/order_base.html:178
+#: templates/js/translated/order.js:1641 templates/js/translated/order.js:2373
+#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1125
#: templates/js/translated/table_filters.js:338
msgid "Received"
msgstr "Empfangen"
-#: order/models.py:1010
+#: order/models.py:1014
msgid "Number of items received"
msgstr "Empfangene Objekt-Anzahl"
-#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734
-#: stock/serializers.py:169 stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1964
+#: order/models.py:1021 part/templates/part/prices.html:181 stock/models.py:734
+#: stock/serializers.py:169 stock/templates/stock/item_base.html:189
+#: templates/js/translated/stock.js:1960
msgid "Purchase Price"
msgstr "Preis"
-#: order/models.py:1018
+#: order/models.py:1022
msgid "Unit purchase price"
msgstr "Preis pro Einheit"
-#: order/models.py:1026
+#: order/models.py:1030
msgid "Where does the Purchaser want this item to be stored?"
msgstr "Wo möchte der Käufer diesen Artikel gelagert haben?"
-#: order/models.py:1092
+#: order/models.py:1096
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1097
+#: order/models.py:1101
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1123 part/templates/part/part_pricing.html:115
+#: order/models.py:1127 part/templates/part/part_pricing.html:115
#: part/templates/part/prices.html:121 part/templates/part/prices.html:290
msgid "Sale Price"
msgstr "Verkaufspreis"
-#: order/models.py:1124
+#: order/models.py:1128
msgid "Unit sale price"
msgstr "Stückverkaufspreis"
-#: order/models.py:1129
+#: order/models.py:1133
msgid "Shipped quantity"
msgstr "Versendete Menge"
-#: order/models.py:1205
+#: order/models.py:1209
msgid "Date of shipment"
msgstr "Versanddatum"
-#: order/models.py:1212
+#: order/models.py:1216
msgid "Checked By"
msgstr "Kontrolliert von"
-#: order/models.py:1213
+#: order/models.py:1217
msgid "User who checked this shipment"
msgstr "Benutzer, der diese Sendung kontrolliert hat"
-#: order/models.py:1220 order/models.py:1405 order/serializers.py:1170
-#: order/serializers.py:1294 templates/js/translated/model_renderers.js:314
+#: order/models.py:1224 order/models.py:1409 order/serializers.py:1224
+#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314
msgid "Shipment"
msgstr "Sendung"
-#: order/models.py:1221
+#: order/models.py:1225
msgid "Shipment number"
msgstr "Sendungsnummer"
-#: order/models.py:1225
+#: order/models.py:1229
msgid "Shipment notes"
msgstr "Versandhinweise"
-#: order/models.py:1231
+#: order/models.py:1235
msgid "Tracking Number"
msgstr "Sendungsverfolgungsnummer"
-#: order/models.py:1232
+#: order/models.py:1236
msgid "Shipment tracking information"
msgstr "Informationen zur Sendungsverfolgung"
-#: order/models.py:1239
+#: order/models.py:1243
msgid "Invoice Number"
msgstr "Rechnungsnummer"
-#: order/models.py:1240
+#: order/models.py:1244
msgid "Reference number for associated invoice"
msgstr "Referenznummer für zugehörige Rechnung"
-#: order/models.py:1258
+#: order/models.py:1262
msgid "Shipment has already been sent"
msgstr "Sendung wurde bereits versandt"
-#: order/models.py:1261
+#: order/models.py:1265
msgid "Shipment has no allocated stock items"
msgstr "Sendung hat keine zugewiesene Lagerartikel"
-#: order/models.py:1364 order/models.py:1366
+#: order/models.py:1368 order/models.py:1370
msgid "Stock item has not been assigned"
msgstr "Lagerartikel wurde nicht zugewiesen"
-#: order/models.py:1370
+#: order/models.py:1374
msgid "Cannot allocate stock item to a line with a different part"
msgstr "Kann Lagerartikel keiner Zeile mit einem anderen Teil hinzufügen"
-#: order/models.py:1372
+#: order/models.py:1376
msgid "Cannot allocate stock to a line without a part"
msgstr "Kann Lagerartikel keiner Zeile ohne Teil hinzufügen"
-#: order/models.py:1375
+#: order/models.py:1379
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Die zugeordnete Anzahl darf nicht die verfügbare Anzahl überschreiten"
-#: order/models.py:1385 order/serializers.py:1066
+#: order/models.py:1389 order/serializers.py:1086
msgid "Quantity must be 1 for serialized stock item"
msgstr "Anzahl für serialisierte Lagerartikel muss 1 sein"
-#: order/models.py:1388
+#: order/models.py:1392
msgid "Sales order does not match shipment"
msgstr "Auftrag gehört nicht zu Sendung"
-#: order/models.py:1389
+#: order/models.py:1393
msgid "Shipment does not match sales order"
msgstr "Sendung gehört nicht zu Auftrag"
-#: order/models.py:1397
+#: order/models.py:1401
msgid "Line"
msgstr "Position"
-#: order/models.py:1406
+#: order/models.py:1410
msgid "Sales order shipment reference"
msgstr "Sendungsnummer-Referenz"
-#: order/models.py:1419 templates/js/translated/notification.js:55
+#: order/models.py:1423 templates/js/translated/notification.js:55
msgid "Item"
msgstr "Position"
-#: order/models.py:1420
+#: order/models.py:1424
msgid "Select stock item to allocate"
msgstr "Lagerartikel für Zuordnung auswählen"
-#: order/models.py:1423
+#: order/models.py:1427
msgid "Enter stock allocation quantity"
msgstr "Anzahl für Bestandszuordnung eingeben"
@@ -3853,111 +3873,119 @@ msgstr "Währung"
msgid "Order cannot be cancelled"
msgstr "Bestellung kann nicht verworfen werden"
-#: order/serializers.py:294
+#: order/serializers.py:209 order/serializers.py:1104
+msgid "Allow order to be closed with incomplete line items"
+msgstr ""
+
+#: order/serializers.py:220 order/serializers.py:1115
+msgid "Order has incomplete line items"
+msgstr ""
+
+#: order/serializers.py:311
msgid "Order is not open"
msgstr "Der Auftrag ist nicht offen"
-#: order/serializers.py:318
+#: order/serializers.py:335
msgid "Purchase price currency"
msgstr "Kaufpreiswährung"
-#: order/serializers.py:337
+#: order/serializers.py:354
msgid "Supplier part must be specified"
msgstr "Zuliefererteil muss ausgewählt werden"
-#: order/serializers.py:342
+#: order/serializers.py:359
msgid "Purchase order must be specified"
msgstr "Bestellung muss angegeben sein"
-#: order/serializers.py:348
+#: order/serializers.py:365
msgid "Supplier must match purchase order"
msgstr "Lieferant muss mit der Bestellung übereinstimmen"
-#: order/serializers.py:349
+#: order/serializers.py:366
msgid "Purchase order must match supplier"
msgstr "Die Bestellung muss mit dem Lieferant übereinstimmen"
-#: order/serializers.py:413 order/serializers.py:1138
+#: order/serializers.py:430 order/serializers.py:1192
msgid "Line Item"
msgstr "Position"
-#: order/serializers.py:419
+#: order/serializers.py:436
msgid "Line item does not match purchase order"
msgstr "Position stimmt nicht mit Kaufauftrag überein"
-#: order/serializers.py:429 order/serializers.py:533
+#: order/serializers.py:446 order/serializers.py:553
msgid "Select destination location for received items"
msgstr "Zielort für empfangene Teile auswählen"
-#: order/serializers.py:448 templates/js/translated/order.js:1354
+#: order/serializers.py:465 templates/js/translated/order.js:1497
msgid "Enter batch code for incoming stock items"
msgstr "Losnummer für eingehende Lagerartikel"
-#: order/serializers.py:456 templates/js/translated/order.js:1365
+#: order/serializers.py:473 templates/js/translated/order.js:1508
msgid "Enter serial numbers for incoming stock items"
msgstr "Seriennummern für eingehende Lagerartikel"
-#: order/serializers.py:469
+#: order/serializers.py:486
msgid "Barcode Hash"
msgstr "Barcode-Hash"
-#: order/serializers.py:470
+#: order/serializers.py:487
msgid "Unique identifier field"
msgstr "Einzigartiger Identifikator"
-#: order/serializers.py:484
+#: order/serializers.py:501
msgid "Barcode is already in use"
msgstr "Barcode ist bereits in Verwendung"
-#: order/serializers.py:507
+#: order/serializers.py:527
msgid "An integer quantity must be provided for trackable parts"
msgstr "Ganzzahl für verfolgbare Teile erforderlich"
-#: order/serializers.py:549
+#: order/serializers.py:569
msgid "Line items must be provided"
msgstr "Positionen müssen angegeben werden"
-#: order/serializers.py:566
+#: order/serializers.py:586
msgid "Destination location must be specified"
msgstr "Ziel-Lagerort muss angegeben werden"
-#: order/serializers.py:577
+#: order/serializers.py:597
msgid "Supplied barcode values must be unique"
msgstr "Barcode muss eindeutig sein"
-#: order/serializers.py:883
+#: order/serializers.py:903
msgid "Sale price currency"
msgstr "Verkaufspreis-Währung"
-#: order/serializers.py:964
+#: order/serializers.py:984
msgid "No shipment details provided"
msgstr "Keine Sendungsdetails angegeben"
-#: order/serializers.py:1027 order/serializers.py:1147
+#: order/serializers.py:1047 order/serializers.py:1201
msgid "Line item is not associated with this order"
msgstr "Position ist nicht diesem Auftrag zugeordnet"
-#: order/serializers.py:1049
+#: order/serializers.py:1069
msgid "Quantity must be positive"
msgstr "Anzahl muss positiv sein"
-#: order/serializers.py:1160
+#: order/serializers.py:1214
msgid "Enter serial numbers to allocate"
msgstr "Seriennummern zum Zuweisen eingeben"
-#: order/serializers.py:1182 order/serializers.py:1302
+#: order/serializers.py:1236 order/serializers.py:1356
msgid "Shipment has already been shipped"
msgstr "Sendung wurde bereits versandt"
-#: order/serializers.py:1185 order/serializers.py:1305
+#: order/serializers.py:1239 order/serializers.py:1359
msgid "Shipment is not associated with this order"
msgstr "Sendung ist nicht diesem Auftrag zugeordnet"
-#: order/serializers.py:1235
+#: order/serializers.py:1289
msgid "No match found for the following serial numbers"
msgstr "Folgende Serienummern konnten nicht gefunden werden"
-#: order/serializers.py:1245
+#: order/serializers.py:1299
msgid "The following serial numbers are already allocated"
msgstr "Folgende Seriennummern sind bereits zugewiesen"
@@ -3993,83 +4021,83 @@ msgstr "Exportiere Bestellung in Datei"
msgid "Order actions"
msgstr "Bestell-Aktionen"
-#: order/templates/order/order_base.html:45
+#: order/templates/order/order_base.html:46
#: order/templates/order/sales_order_base.html:58
msgid "Edit order"
msgstr "Auftrag bearbeiten"
-#: order/templates/order/order_base.html:47
+#: order/templates/order/order_base.html:50
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr "Bestellung stornieren"
-#: order/templates/order/order_base.html:50
+#: order/templates/order/order_base.html:55
msgid "Duplicate order"
msgstr ""
-#: order/templates/order/order_base.html:55
+#: order/templates/order/order_base.html:61
msgid "Place order"
msgstr "Bestellung aufgeben"
-#: order/templates/order/order_base.html:59
+#: order/templates/order/order_base.html:65
msgid "Receive items"
msgstr "Elemente empfangen"
-#: order/templates/order/order_base.html:61
+#: order/templates/order/order_base.html:67
#: order/templates/order/purchase_order_detail.html:30
msgid "Receive Items"
msgstr "Teile empfangen"
-#: order/templates/order/order_base.html:63
+#: order/templates/order/order_base.html:69
msgid "Mark order as complete"
msgstr "Bestellung als vollständig markieren"
-#: order/templates/order/order_base.html:65
+#: order/templates/order/order_base.html:71
#: order/templates/order/sales_order_base.html:68
msgid "Complete Order"
msgstr "Auftrag fertigstellen"
-#: order/templates/order/order_base.html:87
+#: order/templates/order/order_base.html:93
#: order/templates/order/sales_order_base.html:80
msgid "Order Reference"
msgstr "Bestellreferenz"
-#: order/templates/order/order_base.html:92
+#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:85
msgid "Order Description"
msgstr "Bestellungsbeschreibung"
-#: order/templates/order/order_base.html:97
+#: order/templates/order/order_base.html:103
#: order/templates/order/sales_order_base.html:90
msgid "Order Status"
msgstr "Bestellstatus"
-#: order/templates/order/order_base.html:120
+#: order/templates/order/order_base.html:126
msgid "No suppplier information available"
msgstr "Keine Lieferanteninformationen verfügbar"
-#: order/templates/order/order_base.html:133
+#: order/templates/order/order_base.html:139
#: order/templates/order/sales_order_base.html:129
msgid "Completed Line Items"
msgstr "Abgeschlossene Positionen"
-#: order/templates/order/order_base.html:139
+#: order/templates/order/order_base.html:145
#: order/templates/order/sales_order_base.html:135
#: order/templates/order/sales_order_base.html:145
msgid "Incomplete"
msgstr "Unvollständig"
-#: order/templates/order/order_base.html:158
+#: order/templates/order/order_base.html:164
#: report/templates/report/inventree_build_order_base.html:121
msgid "Issued"
msgstr "Aufgegeben"
-#: order/templates/order/order_base.html:186
+#: order/templates/order/order_base.html:192
#: order/templates/order/sales_order_base.html:190
msgid "Total cost"
msgstr "Gesamtsumme"
-#: order/templates/order/order_base.html:190
+#: order/templates/order/order_base.html:196
#: order/templates/order/sales_order_base.html:194
msgid "Total cost could not be calculated"
msgstr "Gesamtkosten konnten nicht berechnet werden"
@@ -4102,8 +4130,8 @@ msgstr "Zulieferer-Teil auswählen"
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463
#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015
-#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443
-#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625
+#: templates/js/translated/order.js:1084 templates/js/translated/order.js:1586
+#: templates/js/translated/order.js:3097 templates/js/translated/stock.js:625
#: templates/js/translated/stock.js:793
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
@@ -4139,7 +4167,7 @@ msgstr "Bestellungs-Positionen"
#: order/templates/order/purchase_order_detail.html:26
#: order/templates/order/sales_order_detail.html:22
#: order/templates/order/sales_order_detail.html:255
-#: templates/js/translated/order.js:663
+#: templates/js/translated/order.js:728
msgid "Add Line Item"
msgstr "Position hinzufügen"
@@ -4167,7 +4195,7 @@ msgstr "Empfangene Teile"
msgid "Order Notes"
msgstr "Notizen zur Bestellung"
-#: order/templates/order/purchase_order_detail.html:228
+#: order/templates/order/purchase_order_detail.html:232
msgid "Add Order Line"
msgstr "Neue Auftragspositionen hinzufügen"
@@ -4185,12 +4213,12 @@ msgid "Print packing list"
msgstr "Paketliste drucken"
#: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:231
+#: templates/js/translated/order.js:232
msgid "Complete Shipments"
msgstr "Abgeschlossene Sendungen"
#: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:258
+#: templates/js/translated/order.js:397
msgid "Complete Sales Order"
msgstr "Auftrag abschließen"
@@ -4199,7 +4227,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr "Dieser Auftrag ist nicht vollständig zugeordnet"
#: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2632
+#: templates/js/translated/order.js:2826
msgid "Customer Reference"
msgstr "Kundenreferenz"
@@ -4223,7 +4251,7 @@ msgid "Pending Shipments"
msgstr "Ausstehende Sendungen"
#: order/templates/order/sales_order_detail.html:72
-#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1116
#: templates/js/translated/build.js:1923
msgid "Actions"
msgstr "Aktionen"
@@ -4308,14 +4336,14 @@ msgid "Total Stock"
msgstr "Gesamtbestand"
#: part/bom.py:129 part/templates/part/part_base.html:189
-#: templates/js/translated/order.js:3724
+#: templates/js/translated/order.js:3918
msgid "Available Stock"
msgstr "Verfügbarer Bestand"
#: part/bom.py:130 part/templates/part/part_base.html:207
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853
-#: templates/js/translated/part.js:590 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503
+#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1853
+#: templates/js/translated/part.js:588 templates/js/translated/part.js:608
+#: templates/js/translated/part.js:1337 templates/js/translated/part.js:1520
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr "Bestellt"
@@ -4344,7 +4372,7 @@ msgstr "Symbol"
msgid "Icon (optional)"
msgstr "Symbol (optional)"
-#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16
+#: part/models.py:122 part/models.py:2516 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Teil-Kategorie"
@@ -4361,7 +4389,7 @@ msgstr "Teil-Kategorien"
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146
+#: templates/js/translated/part.js:2004 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr "Teile"
@@ -4391,7 +4419,7 @@ msgstr "Die neuste Seriennummer ist"
msgid "Duplicate IPN not allowed in part settings"
msgstr "Doppelte IPN in den Teil-Einstellungen nicht erlaubt"
-#: part/models.py:745 part/models.py:2562
+#: part/models.py:745 part/models.py:2570
msgid "Part name"
msgstr "Name des Teils"
@@ -4424,11 +4452,11 @@ 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:783 part/models.py:2257 part/models.py:2507
+#: part/models.py:783 part/models.py:2265 part/models.py:2515
#: part/templates/part/part_base.html:257
#: templates/InvenTree/settings/settings.html:232
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688
+#: templates/js/translated/part.js:1477 templates/js/translated/part.js:1717
msgid "Category"
msgstr "Kategorie"
@@ -4437,7 +4465,7 @@ msgid "Part category"
msgstr "Teile-Kategorie"
#: part/models.py:789 part/templates/part/part_base.html:266
-#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:1430
#: templates/js/translated/stock.js:1726
msgid "IPN"
msgstr "IPN (Interne Produktnummer)"
@@ -4451,7 +4479,7 @@ msgid "Part revision or version number"
msgstr "Revisions- oder Versionsnummer"
#: part/models.py:797 part/templates/part/part_base.html:273
-#: report/models.py:171 templates/js/translated/part.js:743
+#: report/models.py:171 templates/js/translated/part.js:741
msgid "Revision"
msgstr "Version"
@@ -4543,245 +4571,245 @@ msgstr "Erstellungs-Nutzer"
msgid "Sell multiple"
msgstr "Mehrere verkaufen"
-#: part/models.py:2304
+#: part/models.py:2312
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:2321
+#: part/models.py:2329
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:2341 templates/js/translated/part.js:2026
+#: part/models.py:2349 templates/js/translated/part.js:2055
#: templates/js/translated/stock.js:1340
msgid "Test Name"
msgstr "Test-Name"
-#: part/models.py:2342
+#: part/models.py:2350
msgid "Enter a name for the test"
msgstr "Namen für diesen Test eingeben"
-#: part/models.py:2347
+#: part/models.py:2355
msgid "Test Description"
msgstr "Test-Beschreibung"
-#: part/models.py:2348
+#: part/models.py:2356
msgid "Enter description for this test"
msgstr "Beschreibung für diesen Test eingeben"
-#: part/models.py:2353 templates/js/translated/part.js:2035
+#: part/models.py:2361 templates/js/translated/part.js:2064
#: templates/js/translated/table_filters.js:302
msgid "Required"
msgstr "Benötigt"
-#: part/models.py:2354
+#: part/models.py:2362
msgid "Is this test required to pass?"
msgstr "Muss dieser Test erfolgreich sein?"
-#: part/models.py:2359 templates/js/translated/part.js:2043
+#: part/models.py:2367 templates/js/translated/part.js:2072
msgid "Requires Value"
msgstr "Erfordert Wert"
-#: part/models.py:2360
+#: part/models.py:2368
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:2365 templates/js/translated/part.js:2050
+#: part/models.py:2373 templates/js/translated/part.js:2079
msgid "Requires Attachment"
msgstr "Anhang muss eingegeben werden"
-#: part/models.py:2366
+#: part/models.py:2374
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:2374
+#: part/models.py:2382
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr "Ungültiges Zeichen im Vorlagename ({c})"
-#: part/models.py:2410
+#: part/models.py:2418
msgid "Parameter template name must be unique"
msgstr "Vorlagen-Name des Parameters muss eindeutig sein"
-#: part/models.py:2418
+#: part/models.py:2426
msgid "Parameter Name"
msgstr "Name des Parameters"
-#: part/models.py:2425
+#: part/models.py:2433
msgid "Parameter Units"
msgstr "Einheit des Parameters"
-#: part/models.py:2430
+#: part/models.py:2438
msgid "Parameter description"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2471
msgid "Parent Part"
msgstr "Ausgangsteil"
-#: part/models.py:2465 part/models.py:2513 part/models.py:2514
+#: part/models.py:2473 part/models.py:2521 part/models.py:2522
#: templates/InvenTree/settings/settings.html:227
msgid "Parameter Template"
msgstr "Parameter Vorlage"
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Data"
msgstr "Wert"
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Parameter Value"
msgstr "Parameter Wert"
-#: part/models.py:2518 templates/InvenTree/settings/settings.html:236
+#: part/models.py:2526 templates/InvenTree/settings/settings.html:236
msgid "Default Value"
msgstr "Standard-Wert"
-#: part/models.py:2519
+#: part/models.py:2527
msgid "Default Parameter Value"
msgstr "Standard Parameter Wert"
-#: part/models.py:2554
+#: part/models.py:2562
msgid "Part ID or part name"
msgstr "Teilnummer oder Teilname"
-#: part/models.py:2557 templates/js/translated/model_renderers.js:212
+#: part/models.py:2565 templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr "Teil-ID"
-#: part/models.py:2558
+#: part/models.py:2566
msgid "Unique part ID value"
msgstr "Eindeutige Teil-ID"
-#: part/models.py:2561
+#: part/models.py:2569
msgid "Part Name"
msgstr "Name des Teils"
-#: part/models.py:2565
+#: part/models.py:2573
msgid "Part IPN"
msgstr "Teil-ID"
-#: part/models.py:2566
+#: part/models.py:2574
msgid "Part IPN value"
msgstr "IPN-Wert des Teils"
-#: part/models.py:2569
+#: part/models.py:2577
msgid "Level"
msgstr "Stufe"
-#: part/models.py:2570
+#: part/models.py:2578
msgid "BOM level"
msgstr "Stücklistenebene"
-#: part/models.py:2639
+#: part/models.py:2647
msgid "Select parent part"
msgstr "Ausgangsteil auswählen"
-#: part/models.py:2647
+#: part/models.py:2655
msgid "Sub part"
msgstr "Untergeordnetes Teil"
-#: part/models.py:2648
+#: part/models.py:2656
msgid "Select part to be used in BOM"
msgstr "Teil für die Nutzung in der Stückliste auswählen"
-#: part/models.py:2654
+#: part/models.py:2662
msgid "BOM quantity for this BOM item"
msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil"
-#: part/models.py:2656 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997
+#: part/models.py:2664 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:876 templates/js/translated/bom.js:1005
#: templates/js/translated/table_filters.js:100
msgid "Optional"
msgstr "Optional"
-#: part/models.py:2656
+#: part/models.py:2664
msgid "This BOM item is optional"
msgstr "Diese Stücklisten-Position ist optional"
-#: part/models.py:2659 part/templates/part/upload_bom.html:55
+#: part/models.py:2667 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr "Überschuss"
-#: part/models.py:2660
+#: part/models.py:2668
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "Geschätzter Ausschuss (absolut oder prozentual)"
-#: part/models.py:2663
+#: part/models.py:2671
msgid "BOM item reference"
msgstr "Referenz der Postion auf der Stückliste"
-#: part/models.py:2666
+#: part/models.py:2674
msgid "BOM item notes"
msgstr "Notizen zur Stücklisten-Position"
-#: part/models.py:2668
+#: part/models.py:2676
msgid "Checksum"
msgstr "Prüfsumme"
-#: part/models.py:2668
+#: part/models.py:2676
msgid "BOM line checksum"
msgstr "Prüfsumme der Stückliste"
-#: part/models.py:2672 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1014
+#: part/models.py:2680 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:1022
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:96
msgid "Inherited"
msgstr "Geerbt"
-#: part/models.py:2673
+#: part/models.py:2681
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:2678 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1006
+#: part/models.py:2686 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:1014
msgid "Allow Variants"
msgstr "Varianten zulassen"
-#: part/models.py:2679
+#: part/models.py:2687
msgid "Stock items for variant parts can be used for this BOM item"
msgstr "Bestand von Varianten kann für diese Stücklisten-Position verwendet werden"
-#: part/models.py:2757 stock/models.py:468
+#: part/models.py:2765 stock/models.py:468
msgid "Quantity must be integer value for trackable parts"
msgstr "Menge muss eine Ganzzahl sein"
-#: part/models.py:2766 part/models.py:2768
+#: part/models.py:2774 part/models.py:2776
msgid "Sub part must be specified"
msgstr "Zuliefererteil muss festgelegt sein"
-#: part/models.py:2873
+#: part/models.py:2881
msgid "BOM Item Substitute"
msgstr "Stücklisten Ersatzteile"
-#: part/models.py:2894
+#: part/models.py:2902
msgid "Substitute part cannot be the same as the master part"
msgstr "Ersatzteil kann nicht identisch mit dem Hauptteil sein"
-#: part/models.py:2907
+#: part/models.py:2915
msgid "Parent BOM item"
msgstr "Übergeordnete Stücklisten Position"
-#: part/models.py:2915
+#: part/models.py:2923
msgid "Substitute part"
msgstr "Ersatzteil"
-#: part/models.py:2930
+#: part/models.py:2938
msgid "Part 1"
msgstr "Teil 1"
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Part 2"
msgstr "Teil 2"
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Select Related Part"
msgstr "verknüpftes Teil auswählen"
-#: part/models.py:2952
+#: part/models.py:2960
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:2956
+#: part/models.py:2964
msgid "Duplicate relationship already exists"
msgstr "Doppelte Beziehung existiert bereits"
@@ -5309,10 +5337,10 @@ msgid "Part is virtual (not a physical part)"
msgstr "Teil ist virtuell (kein physisches Teil)"
#: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:624
-#: templates/js/translated/company.js:884
+#: templates/js/translated/company.js:659
+#: templates/js/translated/company.js:920
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:654 templates/js/translated/part.js:731
+#: templates/js/translated/part.js:652 templates/js/translated/part.js:729
msgid "Inactive"
msgstr "Inaktiv"
@@ -5327,28 +5355,28 @@ msgid "This part is a variant of %(link)s"
msgstr "Dieses Teil ist eine Variante von %(link)s"
#: part/templates/part/part_base.html:194
-#: templates/js/translated/company.js:974
+#: templates/js/translated/company.js:1027
#: templates/js/translated/table_filters.js:201
msgid "In Stock"
msgstr "Auf Lager"
#: part/templates/part/part_base.html:215
-#: stock/templates/stock/item_base.html:379
+#: stock/templates/stock/item_base.html:382
msgid "Allocated to Build Orders"
msgstr "Zu Bauaufträgen zugeordnet"
#: part/templates/part/part_base.html:224
-#: stock/templates/stock/item_base.html:372
+#: stock/templates/stock/item_base.html:375
msgid "Allocated to Sales Orders"
msgstr "Zur Bestellung zugeordnet"
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1043
msgid "Can Build"
msgstr "Herstellbar"
-#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320
-#: templates/js/translated/part.js:1510
+#: part/templates/part/part_base.html:238 templates/js/translated/part.js:591
+#: templates/js/translated/part.js:611 templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1527
msgid "Building"
msgstr "Im Bau"
@@ -5361,7 +5389,7 @@ msgid "Latest Serial Number"
msgstr "letzte Seriennummer"
#: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:328
+#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr "Nach Seriennummer suchen"
@@ -5400,7 +5428,7 @@ msgid "Total Cost"
msgstr "Gesamtkosten"
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:989
+#: templates/js/translated/bom.js:997
msgid "No supplier pricing available"
msgstr "Keine Zulieferer-Preise verfügbar"
@@ -5439,7 +5467,7 @@ msgstr "Keine Preise für dieses Teil verfügbar"
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:53
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468
+#: templates/js/translated/order.js:2001 templates/js/translated/stock.js:2464
msgid "Date"
msgstr "Datum"
@@ -5495,7 +5523,7 @@ msgstr "Verkaufspreis anzeigen"
msgid "Calculation parameters"
msgstr "Berechnungsparameter"
-#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983
+#: part/templates/part/prices.html:160 templates/js/translated/bom.js:991
msgid "Supplier Cost"
msgstr "Zuliefererkosten"
@@ -5533,8 +5561,8 @@ msgstr "Verkaufskosten"
msgid "No sale pice history available for this part."
msgstr "Keine Verkaufsgeschichte für diesen Teil verfügbar."
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616
-#: templates/js/translated/part.js:1308
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:614
+#: templates/js/translated/part.js:1329 templates/js/translated/part.js:1331
msgid "No Stock"
msgstr "Kein Bestand"
@@ -5735,19 +5763,19 @@ msgstr "Ist das Plugin aktiv"
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:186
+#: plugin/models.py:188
msgid "Plugin"
msgstr "Plugin"
-#: plugin/models.py:249
+#: plugin/models.py:253
msgid "Method"
msgstr "Methode"
-#: plugin/plugin.py:251
+#: plugin/plugin.py:252
msgid "No author found"
msgstr "Kein Autor gefunden"
-#: plugin/plugin.py:263
+#: plugin/plugin.py:264
msgid "No date found"
msgstr "Kein Datum gefunden"
@@ -5925,12 +5953,12 @@ msgid "Stock Item Test Report"
msgstr "Lagerartikel Test-Bericht"
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:648 stock/templates/stock/item_base.html:317
+#: stock/models.py:648 stock/templates/stock/item_base.html:320
#: templates/js/translated/build.js:456 templates/js/translated/build.js:608
#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706
#: templates/js/translated/model_renderers.js:118
-#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403
-#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490
+#: templates/js/translated/order.js:121 templates/js/translated/order.js:3597
+#: templates/js/translated/order.js:3684 templates/js/translated/stock.js:490
msgid "Serial Number"
msgstr "Seriennummer"
@@ -5963,7 +5991,7 @@ msgstr "Verbaute Objekte"
#: report/templates/report/inventree_test_report_base.html:137
#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780
-#: templates/js/translated/stock.js:2717
+#: templates/js/translated/stock.js:2713
msgid "Serial"
msgstr "Seriennummer"
@@ -5980,7 +6008,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr "Seriennummern können für nicht verfolgbare Teile nicht angegeben werden"
#: stock/models.py:89 stock/models.py:739
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:250
msgid "Owner"
msgstr "Besitzer"
@@ -6046,7 +6074,7 @@ msgstr "Wo wird dieses Teil normalerweise gelagert?"
msgid "Packaging this stock item is stored in"
msgstr "Die Verpackung dieses Lagerartikel ist gelagert in"
-#: stock/models.py:631 stock/templates/stock/item_base.html:356
+#: stock/models.py:631 stock/templates/stock/item_base.html:359
msgid "Installed In"
msgstr "verbaut in"
@@ -6086,8 +6114,8 @@ msgstr "Bestellung für diesen Lagerartikel"
msgid "Destination Sales Order"
msgstr "Ziel-Auftrag"
-#: stock/models.py:706 stock/templates/stock/item_base.html:424
-#: templates/js/translated/stock.js:1883
+#: stock/models.py:706 stock/templates/stock/item_base.html:427
+#: templates/js/translated/stock.js:1879
msgid "Expiry Date"
msgstr "Ablaufdatum"
@@ -6379,7 +6407,7 @@ msgstr "Testdaten hinzufügen"
msgid "Installed Stock Items"
msgstr "Installierte Lagerartikel"
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2857
msgid "Install Stock Item"
msgstr "Lagerartikel installieren"
@@ -6479,134 +6507,135 @@ msgstr "Lagerartikel bearbeiten"
msgid "Delete stock item"
msgstr "Lagerartikel löschen"
-#: stock/templates/stock/item_base.html:158
+#: stock/templates/stock/item_base.html:161
msgid "Barcode Identifier"
msgstr "Barcode-Bezeichner"
-#: stock/templates/stock/item_base.html:193
+#: stock/templates/stock/item_base.html:196
msgid "Parent Item"
msgstr "Elternposition"
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:214
msgid "No manufacturer set"
msgstr "Kein Hersteller ausgewählt"
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:254
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr "Sie gehören nicht zu den Eigentümern dieses Objekts und können es nicht ändern."
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/location.html:132
msgid "Read only"
msgstr "Nur Leserechte"
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:268
msgid "This stock item is in production and cannot be edited."
msgstr "Dieser Lagerartikel wird gerade hergestellt und kann nicht geändert werden."
-#: stock/templates/stock/item_base.html:266
+#: stock/templates/stock/item_base.html:269
msgid "Edit the stock item from the build view."
msgstr "Ändern des Lagerartikel in der Bauauftrag-Ansicht."
-#: stock/templates/stock/item_base.html:279
+#: stock/templates/stock/item_base.html:282
msgid "This stock item has not passed all required tests"
msgstr "Dieser Lagerartikel hat nicht alle Tests bestanden"
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:290
msgid "This stock item is allocated to Sales Order"
msgstr "Dieser Lagerartikel ist einem Auftrag zugewiesen"
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:298
msgid "This stock item is allocated to Build Order"
msgstr "Dieser Lagerartikel ist einem Bauauftrag zugewiesen"
-#: stock/templates/stock/item_base.html:301
+#: stock/templates/stock/item_base.html:304
msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
msgstr "Diesesr Lagerartikel ist serialisiert. Es hat eine eindeutige Seriennummer und die Anzahl kann nicht angepasst werden."
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "previous page"
msgstr "vorherige Seite"
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "Navigate to previous serial number"
msgstr "Zur vorherigen Seriennummer wechseln"
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "next page"
msgstr "nächste Seite"
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "Navigate to next serial number"
msgstr "Zur nächsten Seriennummer wechseln"
-#: stock/templates/stock/item_base.html:345
+#: stock/templates/stock/item_base.html:348
msgid "Available Quantity"
msgstr "Verfügbare Menge"
-#: stock/templates/stock/item_base.html:389
+#: stock/templates/stock/item_base.html:392
#: templates/js/translated/build.js:1729
msgid "No location set"
msgstr "Kein Lagerort gesetzt"
-#: stock/templates/stock/item_base.html:404
+#: stock/templates/stock/item_base.html:407
msgid "Tests"
msgstr "Tests"
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr "Dieser Lagerartikel lief am %(item.expiry_date)s ab"
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#: templates/js/translated/table_filters.js:269
msgid "Expired"
msgstr "abgelaufen"
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr "Dieser Lagerartikel läuft am %(item.expiry_date)s ab"
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:275
msgid "Stale"
msgstr "überfällig"
-#: stock/templates/stock/item_base.html:437
-#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899
+#: stock/templates/stock/item_base.html:440
+#: templates/js/translated/company.js:1038
+#: templates/js/translated/stock.js:1895
msgid "Last Updated"
msgstr "Zuletzt aktualisiert"
-#: stock/templates/stock/item_base.html:442
+#: stock/templates/stock/item_base.html:445
msgid "Last Stocktake"
msgstr "Letzte Inventur"
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr "Keine Inventur ausgeführt"
-#: stock/templates/stock/item_base.html:516
+#: stock/templates/stock/item_base.html:519
msgid "Edit Stock Status"
msgstr "Bestandsstatus bearbeiten"
-#: stock/templates/stock/item_base.html:589
+#: stock/templates/stock/item_base.html:592
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:592
+#: stock/templates/stock/item_base.html:595
msgid "Warning"
msgstr "Warnung"
-#: stock/templates/stock/item_base.html:593
+#: stock/templates/stock/item_base.html:596
msgid "This action cannot be easily undone"
msgstr "Diese Aktion kann nicht einfach rückgängig gemacht werden"
-#: stock/templates/stock/item_base.html:601
+#: stock/templates/stock/item_base.html:604
msgid "Convert Stock Item"
msgstr "Lagerartikel umwandeln"
-#: stock/templates/stock/item_base.html:629
+#: stock/templates/stock/item_base.html:632
msgid "Return to Stock"
msgstr "zurück ins Lager"
@@ -6739,11 +6768,11 @@ msgstr "Der %(inventree_title)s -Server hat einen internen Fehler aufgeworfen"
msgid "Refer to the error log in the admin interface for further details"
msgstr "Weitere Details finden Sie im Fehlerlog im Admin-Interface"
-#: templates/503.html:11 templates/503.html:36
+#: templates/503.html:11 templates/503.html:34
msgid "Site is in Maintenance"
msgstr "System wird gewartet"
-#: templates/503.html:42
+#: templates/503.html:40
msgid "The site is currently in maintenance and should be up again soon!"
msgstr "Die Seite ist derzeit in Wartung und sollte bald wieder verfügbar sein!"
@@ -7509,7 +7538,7 @@ msgstr "E-Mail-Adresse bestätigen"
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr "Bitte bestätigen Sie, dass %(email)s eine E-Mail-Adresse für den Benutzer %(user_display)s ist."
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:644
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "Bestätigen"
@@ -7728,7 +7757,7 @@ msgid "The following parts are low on required stock"
msgstr "Bei den folgenden Teilen gibt es wenige Lagerartikel"
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1481
+#: templates/js/translated/bom.js:1489
msgid "Required Quantity"
msgstr "Benötigte Menge"
@@ -7742,7 +7771,7 @@ msgid "Click on the following link to view this part"
msgstr "Klicken Sie auf den folgenden Link, um diesen Teil anzuzeigen"
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2522
+#: templates/js/translated/part.js:2551
msgid "Minimum Quantity"
msgstr "Mindestmenge"
@@ -7947,7 +7976,7 @@ msgstr "Zeilendaten"
#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620
#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601
#: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003
-#: templates/js/translated/order.js:1085 templates/modals.html:15
+#: templates/js/translated/order.js:1179 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr "Schliessen"
@@ -7957,12 +7986,12 @@ msgid "Download BOM Template"
msgstr "Vorlage einer Stückliste herunterladen"
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145
+#: templates/js/translated/order.js:960 templates/js/translated/tables.js:145
msgid "Format"
msgstr "Format"
#: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:867
+#: templates/js/translated/order.js:961
msgid "Select file format"
msgstr "Dateiformat auswählen"
@@ -8058,73 +8087,73 @@ msgstr "Ersatzteile verfügbar"
msgid "Variant stock allowed"
msgstr "Varianten erlaubt"
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857
-#: templates/js/translated/order.js:3738
+#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1857
+#: templates/js/translated/order.js:3932
msgid "No Stock Available"
msgstr "Kein Lagerbestand verfügbar"
-#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861
+#: templates/js/translated/bom.js:940 templates/js/translated/build.js:1861
msgid "Includes variant and substitute stock"
msgstr "Beinhaltet Variante und Ersatzbestand"
-#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516
+#: templates/js/translated/bom.js:942 templates/js/translated/build.js:1863
+#: templates/js/translated/part.js:761 templates/js/translated/part.js:1533
msgid "Includes variant stock"
msgstr "Beinhaltet Variantenbestand"
-#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865
+#: templates/js/translated/bom.js:944 templates/js/translated/build.js:1865
msgid "Includes substitute stock"
msgstr "Enthält Ersatzbestand"
-#: templates/js/translated/bom.js:954
+#: templates/js/translated/bom.js:962
msgid "Substitutes"
msgstr "Ersatzteile"
-#: templates/js/translated/bom.js:969
+#: templates/js/translated/bom.js:977
msgid "Purchase Price Range"
msgstr "Kaufpreisspanne"
-#: templates/js/translated/bom.js:976
+#: templates/js/translated/bom.js:984
msgid "Purchase Price Average"
msgstr "Durchschnittlicher Kaufpreis"
-#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145
+#: templates/js/translated/bom.js:1033 templates/js/translated/bom.js:1153
msgid "View BOM"
msgstr "Stückliste anzeigen"
-#: templates/js/translated/bom.js:1052
+#: templates/js/translated/bom.js:1060
msgid "Including On Order"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1124
msgid "Validate BOM Item"
msgstr "Stücklisten-Position kontrollieren"
-#: templates/js/translated/bom.js:1118
+#: templates/js/translated/bom.js:1126
msgid "This line has been validated"
msgstr "Diese Position wurde kontrolliert"
-#: templates/js/translated/bom.js:1120
+#: templates/js/translated/bom.js:1128
msgid "Edit substitute parts"
msgstr "Ersatzteile bearbeiten"
-#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284
+#: templates/js/translated/bom.js:1130 templates/js/translated/bom.js:1292
msgid "Edit BOM Item"
msgstr "Stücklisten-Position bearbeiten"
-#: templates/js/translated/bom.js:1124
+#: templates/js/translated/bom.js:1132
msgid "Delete BOM Item"
msgstr "Stücklisten-Position löschen"
-#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650
+#: templates/js/translated/bom.js:1228 templates/js/translated/build.js:1650
msgid "No BOM items found"
msgstr "Keine Stücklisten-Position(en) gefunden"
-#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789
+#: templates/js/translated/bom.js:1472 templates/js/translated/build.js:1789
msgid "Required Part"
msgstr "benötigtes Teil"
-#: templates/js/translated/bom.js:1486
+#: templates/js/translated/bom.js:1498
msgid "Inherited from parent BOM"
msgstr "Geerbt von übergeordneter Stückliste"
@@ -8267,12 +8296,12 @@ msgid "No required tests for this build"
msgstr "Keine erforderlichen Tests für diesen Bauauftrag"
#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697
-#: templates/js/translated/order.js:3438
+#: templates/js/translated/order.js:3632
msgid "Edit stock allocation"
msgstr "Bestands-Zuordnung bearbeiten"
#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698
-#: templates/js/translated/order.js:3439
+#: templates/js/translated/order.js:3633
msgid "Delete stock allocation"
msgstr "Bestands-Zuordnung löschen"
@@ -8292,20 +8321,20 @@ msgstr "Ersatzteile verfügbar"
msgid "Quantity Per"
msgstr "Anzahl pro"
-#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745
+#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3939
msgid "Insufficient stock available"
msgstr "Unzureichender Bestand verfügbar"
-#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743
+#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3937
msgid "Sufficient stock available"
msgstr "Ausreichender Bestand verfügbar"
#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127
-#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757
+#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3951
msgid "Allocated"
msgstr "Zugeordnet"
-#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837
+#: templates/js/translated/build.js:1930 templates/js/translated/order.js:4031
msgid "Build stock"
msgstr "Bestand bauen"
@@ -8313,21 +8342,21 @@ msgstr "Bestand bauen"
msgid "Order stock"
msgstr "Bestand bestellen"
-#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830
+#: templates/js/translated/build.js:1937 templates/js/translated/order.js:4024
msgid "Allocate stock"
msgstr "Bestand zuweisen"
#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965
+#: templates/js/translated/order.js:1007 templates/js/translated/order.js:3159
#: templates/js/translated/report.js:225
msgid "Select Parts"
msgstr "Teile auswählen"
-#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966
+#: templates/js/translated/build.js:1977 templates/js/translated/order.js:3160
msgid "You must select at least one part to allocate"
msgstr "Sie müssen mindestens ein Teil auswählen"
-#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914
+#: templates/js/translated/build.js:2026 templates/js/translated/order.js:3108
msgid "Specify stock allocation quantity"
msgstr "Anzahl für Bestandszuordnung eingeben"
@@ -8339,7 +8368,7 @@ msgstr "Alle Teile zugeordnet"
msgid "All selected parts have been fully allocated"
msgstr "Alle ausgewählten Teile wurden vollständig zugeordnet"
-#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980
+#: templates/js/translated/build.js:2115 templates/js/translated/order.js:3174
msgid "Select source location (leave blank to take from all locations)"
msgstr "Wählen Sie den Quellort aus (leer lassen um von allen Standorten zu nehmen)"
@@ -8347,11 +8376,11 @@ msgstr "Wählen Sie den Quellort aus (leer lassen um von allen Standorten zu neh
msgid "Allocate Stock Items to Build Order"
msgstr "Lagerartikel für Bauauftrag zuweisen"
-#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077
+#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3271
msgid "No matching stock locations"
msgstr "Keine passenden Lagerstandorte"
-#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154
+#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3348
msgid "No matching stock items"
msgstr "Keine passenden Lagerbestände"
@@ -8383,9 +8412,9 @@ msgstr "Lagerartikel zuordnen"
msgid "No builds matching query"
msgstr "Keine Bauaufträge passen zur Anfrage"
-#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401
-#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1422
+#: templates/js/translated/part.js:1948 templates/js/translated/stock.js:1686
+#: templates/js/translated/stock.js:2382
msgid "Select"
msgstr "Auswählen"
@@ -8397,7 +8426,7 @@ msgstr "Bauauftrag ist überfällig"
msgid "Progress"
msgstr "Fortschritt"
-#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647
+#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2643
msgid "No user information"
msgstr "Keine Benutzerinformation"
@@ -8405,111 +8434,115 @@ msgstr "Keine Benutzerinformation"
msgid "No parts allocated for"
msgstr "Keine Teile zugeordnet zu"
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
msgid "Add Manufacturer"
msgstr "Hersteller hinzufügen"
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:179
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:181
msgid "Add Manufacturer Part"
msgstr "Herstellerteil hinzufügen"
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
msgid "Edit Manufacturer Part"
msgstr "Herstellerteil ändern"
-#: templates/js/translated/company.js:167 templates/js/translated/order.js:511
+#: templates/js/translated/company.js:169 templates/js/translated/order.js:576
msgid "Add Supplier"
msgstr "Zulieferer hinzufügen"
-#: templates/js/translated/company.js:195 templates/js/translated/order.js:734
+#: templates/js/translated/company.js:197 templates/js/translated/order.js:828
msgid "Add Supplier Part"
msgstr "Zuliefererteil hinzufügen"
-#: templates/js/translated/company.js:262
+#: templates/js/translated/company.js:297
msgid "All selected supplier parts will be deleted"
msgstr "Alle ausgewählten Zulieferteile werden gelöscht"
-#: templates/js/translated/company.js:278
+#: templates/js/translated/company.js:313
msgid "Delete Supplier Parts"
msgstr "Zuliefererteil entfernen"
-#: templates/js/translated/company.js:350
+#: templates/js/translated/company.js:385
msgid "Add new Company"
msgstr "Neue Firma hinzufügen"
-#: templates/js/translated/company.js:427
+#: templates/js/translated/company.js:462
msgid "Parts Supplied"
msgstr "Teile geliefert"
-#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:471
msgid "Parts Manufactured"
msgstr "Hersteller-Teile"
-#: templates/js/translated/company.js:451
+#: templates/js/translated/company.js:486
msgid "No company information found"
msgstr "Keine Firmeninformation gefunden"
-#: templates/js/translated/company.js:492
+#: templates/js/translated/company.js:527
msgid "All selected manufacturer parts will be deleted"
msgstr "Alle ausgewählten Herstellerrteile werden gelöscht"
-#: templates/js/translated/company.js:507
+#: templates/js/translated/company.js:542
msgid "Delete Manufacturer Parts"
msgstr "Herstellerteile löschen"
-#: templates/js/translated/company.js:541
+#: templates/js/translated/company.js:576
msgid "All selected parameters will be deleted"
msgstr "Alle ausgewählten Parameter werden gelöscht"
-#: templates/js/translated/company.js:555
+#: templates/js/translated/company.js:590
msgid "Delete Parameters"
msgstr "Parameter löschen"
-#: templates/js/translated/company.js:596
+#: templates/js/translated/company.js:631
msgid "No manufacturer parts found"
msgstr "Keine Herstellerteile gefunden"
-#: templates/js/translated/company.js:616
-#: templates/js/translated/company.js:876 templates/js/translated/part.js:638
-#: templates/js/translated/part.js:723
+#: templates/js/translated/company.js:651
+#: templates/js/translated/company.js:912 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:721
msgid "Template part"
msgstr "Vorlagenteil"
-#: templates/js/translated/company.js:620
-#: templates/js/translated/company.js:880 templates/js/translated/part.js:642
-#: templates/js/translated/part.js:727
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:916 templates/js/translated/part.js:640
+#: templates/js/translated/part.js:725
msgid "Assembled part"
msgstr "Baugruppe"
-#: templates/js/translated/company.js:748 templates/js/translated/part.js:830
+#: templates/js/translated/company.js:783 templates/js/translated/part.js:828
msgid "No parameters found"
msgstr "Keine Parameter gefunden"
-#: templates/js/translated/company.js:785 templates/js/translated/part.js:872
+#: templates/js/translated/company.js:820 templates/js/translated/part.js:870
msgid "Edit parameter"
msgstr "Parameter bearbeiten"
-#: templates/js/translated/company.js:786 templates/js/translated/part.js:873
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:871
msgid "Delete parameter"
msgstr "Parameter löschen"
-#: templates/js/translated/company.js:805 templates/js/translated/part.js:890
+#: templates/js/translated/company.js:840 templates/js/translated/part.js:888
msgid "Edit Parameter"
msgstr "Parameter bearbeiten"
-#: templates/js/translated/company.js:816 templates/js/translated/part.js:902
+#: templates/js/translated/company.js:851 templates/js/translated/part.js:900
msgid "Delete Parameter"
msgstr "Parameter löschen"
-#: templates/js/translated/company.js:856
+#: templates/js/translated/company.js:891
msgid "No supplier parts found"
msgstr "Keine Zuliefererteile gefunden"
-#: templates/js/translated/company.js:1002
+#: templates/js/translated/company.js:1032
+msgid "Availability"
+msgstr ""
+
+#: templates/js/translated/company.js:1055
msgid "Edit supplier part"
msgstr "Zuliefererteil bearbeiten"
-#: templates/js/translated/company.js:1003
+#: templates/js/translated/company.js:1056
msgid "Delete supplier part"
msgstr "Zuliefererteil entfernen"
@@ -8547,61 +8580,61 @@ msgstr "Filter entfernen"
msgid "Create filter"
msgstr "Filter anlegen"
-#: templates/js/translated/forms.js:367 templates/js/translated/forms.js:382
-#: templates/js/translated/forms.js:396 templates/js/translated/forms.js:410
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr "Aktion verboten"
-#: templates/js/translated/forms.js:369
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr "Erstellvorgang nicht erlaubt"
-#: templates/js/translated/forms.js:384
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr "Updatevorgang nicht erlaubt"
-#: templates/js/translated/forms.js:398
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr "Löschvorgang nicht erlaubt"
-#: templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr "Anzeigevorgang nicht erlaubt"
-#: templates/js/translated/forms.js:670
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr "Dieses Formular offen lassen"
-#: templates/js/translated/forms.js:771
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr "Gib eine gültige Nummer ein"
-#: templates/js/translated/forms.js:1269 templates/modals.html:19
+#: templates/js/translated/forms.js:1274 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr "Fehler in Formular"
-#: templates/js/translated/forms.js:1702
+#: templates/js/translated/forms.js:1707
msgid "No results found"
msgstr "Keine Ergebnisse gefunden"
-#: templates/js/translated/forms.js:1917 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr "Suche"
-#: templates/js/translated/forms.js:2170
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr "Eingabe leeren"
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "File Column"
msgstr "Dateispalte"
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "Field Name"
msgstr "Feldname"
-#: templates/js/translated/forms.js:2648
+#: templates/js/translated/forms.js:2653
msgid "Select Columns"
msgstr "Spalten auswählen"
@@ -8792,409 +8825,422 @@ msgstr "Keine ungelesenen Benachrichtigungen"
msgid "Notifications will load here"
msgstr "Benachrichtigungen erscheinen hier"
-#: templates/js/translated/order.js:96
+#: templates/js/translated/order.js:97
msgid "No stock items have been allocated to this shipment"
msgstr "Dieser Sendung wurden keine Artikel zugewiesen"
-#: templates/js/translated/order.js:101
+#: templates/js/translated/order.js:102
msgid "The following stock items will be shipped"
msgstr "Die folgenden Artikel werden verschickt"
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:142
msgid "Complete Shipment"
msgstr "Sendung fertigstellen"
-#: templates/js/translated/order.js:161
+#: templates/js/translated/order.js:162
msgid "Confirm Shipment"
msgstr "Sendung bestätigen"
-#: templates/js/translated/order.js:217
+#: templates/js/translated/order.js:218
msgid "No pending shipments found"
msgstr "Keine ausstehenden Sendungen gefunden"
-#: templates/js/translated/order.js:221
+#: templates/js/translated/order.js:222
msgid "No stock items have been allocated to pending shipments"
msgstr "Keine Lagerartikel für offene Sendungen zugewiesen"
-#: templates/js/translated/order.js:253
+#: templates/js/translated/order.js:254
msgid "Skip"
msgstr "Überspringen"
-#: templates/js/translated/order.js:283
+#: templates/js/translated/order.js:284
msgid "Complete Purchase Order"
msgstr "Bestellung vervollständigen"
-#: templates/js/translated/order.js:289
+#: templates/js/translated/order.js:301 templates/js/translated/order.js:413
msgid "Mark this order as complete?"
msgstr "Diese Bestellung als vollständig markieren?"
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:307
msgid "All line items have been received"
msgstr "Alle Einträge wurden erhalten"
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:312
msgid "This order has line items which have not been marked as received."
msgstr "Diese Bestellung enthält Positionen, die nicht als empfangen markiert wurden."
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:313 templates/js/translated/order.js:427
msgid "Completing this order means that the order and line items will no longer be editable."
msgstr "Fertigstellen dieser Bestellung bedeutet, dass sie und ihre Positionen nicht länger bearbeitbar sind."
-#: templates/js/translated/order.js:324
+#: templates/js/translated/order.js:336
msgid "Cancel Purchase Order"
msgstr "Bestellung abbrechen"
-#: templates/js/translated/order.js:329
+#: templates/js/translated/order.js:341
msgid "Are you sure you wish to cancel this purchase order?"
msgstr "Sind Sie sicher, dass Sie diese Bestellung abbrechen möchten?"
-#: templates/js/translated/order.js:335
+#: templates/js/translated/order.js:347
msgid "This purchase order can not be cancelled"
msgstr "Diese Bestellung kann nicht storniert werden"
-#: templates/js/translated/order.js:358
+#: templates/js/translated/order.js:370
msgid "Issue Purchase Order"
msgstr "Bestellung aufgeben"
-#: templates/js/translated/order.js:363
+#: templates/js/translated/order.js:375
msgid "After placing this purchase order, line items will no longer be editable."
msgstr "Nachdem diese Bestellung plaziert ist können die Positionen nicht länger bearbeitbar ist."
-#: templates/js/translated/order.js:385
+#: templates/js/translated/order.js:426
+msgid "This order has line items which have not been completed."
+msgstr ""
+
+#: templates/js/translated/order.js:450
msgid "Cancel Sales Order"
msgstr "Auftrag stornieren"
-#: templates/js/translated/order.js:390
+#: templates/js/translated/order.js:455
msgid "Cancelling this order means that the order will no longer be editable."
msgstr "Abbruch dieser Bestellung bedeutet, dass sie nicht länger bearbeitbar ist."
-#: templates/js/translated/order.js:444
+#: templates/js/translated/order.js:509
msgid "Create New Shipment"
msgstr "Sendung anlegen"
-#: templates/js/translated/order.js:469
+#: templates/js/translated/order.js:534
msgid "Add Customer"
msgstr "Kunden hinzufügen"
-#: templates/js/translated/order.js:494
+#: templates/js/translated/order.js:559
msgid "Create Sales Order"
msgstr "Auftrag anlegen"
-#: templates/js/translated/order.js:555
+#: templates/js/translated/order.js:620
msgid "Select purchase order to duplicate"
msgstr ""
-#: templates/js/translated/order.js:562
+#: templates/js/translated/order.js:627
msgid "Duplicate Line Items"
msgstr ""
-#: templates/js/translated/order.js:563
+#: templates/js/translated/order.js:628
msgid "Duplicate all line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:570
+#: templates/js/translated/order.js:635
msgid "Duplicate Extra Lines"
msgstr ""
-#: templates/js/translated/order.js:571
+#: templates/js/translated/order.js:636
msgid "Duplicate extra line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:588
+#: templates/js/translated/order.js:653
msgid "Edit Purchase Order"
msgstr "Bestellung bearbeiten"
-#: templates/js/translated/order.js:605
+#: templates/js/translated/order.js:670
msgid "Duplication Options"
msgstr ""
-#: templates/js/translated/order.js:863
+#: templates/js/translated/order.js:957
msgid "Export Order"
msgstr "Bestellung exportieren"
-#: templates/js/translated/order.js:914
+#: templates/js/translated/order.js:1008
msgid "At least one purchaseable part must be selected"
msgstr "Mindestens ein kaufbares Teil muss ausgewählt werden"
-#: templates/js/translated/order.js:939
+#: templates/js/translated/order.js:1033
msgid "Quantity to order"
msgstr "Zu bestellende Menge"
-#: templates/js/translated/order.js:948
+#: templates/js/translated/order.js:1042
msgid "New supplier part"
msgstr "Neues Zuliefererteil"
-#: templates/js/translated/order.js:966
+#: templates/js/translated/order.js:1060
msgid "New purchase order"
msgstr "Neue Bestellung"
-#: templates/js/translated/order.js:999
+#: templates/js/translated/order.js:1093
msgid "Add to purchase order"
msgstr "Zur Bestellung hinzufügen"
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1233
msgid "No matching supplier parts"
msgstr "Keine passenden Lieferantenteile"
-#: templates/js/translated/order.js:1123
+#: templates/js/translated/order.js:1252
msgid "No matching purchase orders"
msgstr "Keine passenden Bestellungen"
-#: templates/js/translated/order.js:1300
+#: templates/js/translated/order.js:1429
msgid "Select Line Items"
msgstr "Positionen auswählen"
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1430
msgid "At least one line item must be selected"
msgstr "Mindestens eine Position muss ausgewählt werden"
-#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420
+#: templates/js/translated/order.js:1450 templates/js/translated/order.js:1563
msgid "Add batch code"
msgstr "Losnummer hinzufügen"
-#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431
+#: templates/js/translated/order.js:1456 templates/js/translated/order.js:1574
msgid "Add serial numbers"
msgstr "Seriennummern hinzufügen"
-#: templates/js/translated/order.js:1339
+#: templates/js/translated/order.js:1471
+msgid "Received Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:1482
msgid "Quantity to receive"
msgstr "Zu erhaltende Menge"
-#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144
+#: templates/js/translated/order.js:1546 templates/js/translated/stock.js:2140
msgid "Stock Status"
msgstr "Status"
-#: templates/js/translated/order.js:1494
+#: templates/js/translated/order.js:1639
msgid "Order Code"
msgstr "Bestellnummer"
-#: templates/js/translated/order.js:1495
+#: templates/js/translated/order.js:1640
msgid "Ordered"
msgstr "Bestellt"
-#: templates/js/translated/order.js:1497
+#: templates/js/translated/order.js:1642
msgid "Quantity to Receive"
msgstr "Zu erhaltende Menge"
-#: templates/js/translated/order.js:1516
+#: templates/js/translated/order.js:1661
msgid "Confirm receipt of items"
msgstr "Empfang der Teile bestätigen"
-#: templates/js/translated/order.js:1517
+#: templates/js/translated/order.js:1662
msgid "Receive Purchase Order Items"
msgstr "Bestellpositionen erhalten"
-#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943
+#: templates/js/translated/order.js:1940 templates/js/translated/part.js:941
msgid "No purchase orders found"
msgstr "Keine Bestellungen gefunden"
-#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2803
msgid "Order is overdue"
msgstr "Bestellung überfällig"
-#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674
-#: templates/js/translated/order.js:2815
+#: templates/js/translated/order.js:2017 templates/js/translated/order.js:2868
+#: templates/js/translated/order.js:3009
msgid "Items"
msgstr "Positionen"
-#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889
+#: templates/js/translated/order.js:2115 templates/js/translated/order.js:4083
msgid "Duplicate Line Item"
msgstr "Position duplizieren"
-#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911
+#: templates/js/translated/order.js:2132 templates/js/translated/order.js:4105
msgid "Edit Line Item"
msgstr "Position bearbeiten"
-#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:4116
msgid "Delete Line Item"
msgstr "Position löschen"
-#: templates/js/translated/order.js:2026
+#: templates/js/translated/order.js:2188
msgid "No line items found"
msgstr "Keine Positionen gefunden"
-#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:2215 templates/js/translated/order.js:3817
msgid "Total"
msgstr "Summe"
-#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309
-#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156
-#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753
+#: templates/js/translated/order.js:2270 templates/js/translated/part.js:1043
+#: templates/js/translated/part.js:1095
+msgid "Total Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:2301 templates/js/translated/order.js:2503
+#: templates/js/translated/order.js:3842 templates/js/translated/order.js:4350
+#: templates/js/translated/part.js:2184 templates/js/translated/part.js:2782
msgid "Unit Price"
msgstr "Stück-Preis"
-#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325
-#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172
+#: templates/js/translated/order.js:2316 templates/js/translated/order.js:2519
+#: templates/js/translated/order.js:3858 templates/js/translated/order.js:4366
msgid "Total Price"
msgstr "Gesamtpreis"
-#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706
-#: templates/js/translated/part.js:1070
+#: templates/js/translated/order.js:2357 templates/js/translated/order.js:3900
+#: templates/js/translated/part.js:1079
msgid "This line item is overdue"
msgstr "Diese Position ist überfällig"
-#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110
+#: templates/js/translated/order.js:2416 templates/js/translated/part.js:1130
msgid "Receive line item"
msgstr "Position empfangen"
-#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2420 templates/js/translated/order.js:4037
msgid "Duplicate line item"
msgstr "Position duplizieren"
-#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844
+#: templates/js/translated/order.js:2421 templates/js/translated/order.js:4038
msgid "Edit line item"
msgstr "Position bearbeiten"
-#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848
+#: templates/js/translated/order.js:2422 templates/js/translated/order.js:4042
msgid "Delete line item"
msgstr "Position löschen"
-#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221
+#: templates/js/translated/order.js:2568 templates/js/translated/order.js:4415
msgid "Duplicate line"
msgstr "Position duplizieren"
-#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222
+#: templates/js/translated/order.js:2569 templates/js/translated/order.js:4416
msgid "Edit line"
msgstr "Zeile bearbeiten"
-#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223
+#: templates/js/translated/order.js:2570 templates/js/translated/order.js:4417
msgid "Delete line"
msgstr "Zeile löschen"
-#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253
+#: templates/js/translated/order.js:2600 templates/js/translated/order.js:4447
msgid "Duplicate Line"
msgstr "Position duplizieren"
-#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274
+#: templates/js/translated/order.js:2621 templates/js/translated/order.js:4468
msgid "Edit Line"
msgstr "Zeile bearbeiten"
-#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285
+#: templates/js/translated/order.js:2632 templates/js/translated/order.js:4479
msgid "Delete Line"
msgstr "Zeile löschen"
-#: templates/js/translated/order.js:2449
+#: templates/js/translated/order.js:2643
msgid "No matching line"
msgstr "Keine passenden Positionen gefunden"
-#: templates/js/translated/order.js:2560
+#: templates/js/translated/order.js:2754
msgid "No sales orders found"
msgstr "Keine Aufträge gefunden"
-#: templates/js/translated/order.js:2623
+#: templates/js/translated/order.js:2817
msgid "Invalid Customer"
msgstr "Ungültiger Kunde"
-#: templates/js/translated/order.js:2721
+#: templates/js/translated/order.js:2915
msgid "Edit shipment"
msgstr "Sendung bearbeiten"
-#: templates/js/translated/order.js:2724
+#: templates/js/translated/order.js:2918
msgid "Complete shipment"
msgstr "Sendung fertigstellen"
-#: templates/js/translated/order.js:2729
+#: templates/js/translated/order.js:2923
msgid "Delete shipment"
msgstr "Sendung löschen"
-#: templates/js/translated/order.js:2749
+#: templates/js/translated/order.js:2943
msgid "Edit Shipment"
msgstr "Sendung bearbeiten"
-#: templates/js/translated/order.js:2766
+#: templates/js/translated/order.js:2960
msgid "Delete Shipment"
msgstr "Sendung löschen"
-#: templates/js/translated/order.js:2800
+#: templates/js/translated/order.js:2994
msgid "No matching shipments found"
msgstr "Keine passenden Sendungen gefunden"
-#: templates/js/translated/order.js:2810
+#: templates/js/translated/order.js:3004
msgid "Shipment Reference"
msgstr "Sendungsreferenz"
-#: templates/js/translated/order.js:2834
+#: templates/js/translated/order.js:3028
msgid "Not shipped"
msgstr "Nicht versandt"
-#: templates/js/translated/order.js:2840
+#: templates/js/translated/order.js:3034
msgid "Tracking"
msgstr "Nachverfolgen"
-#: templates/js/translated/order.js:2844
+#: templates/js/translated/order.js:3038
msgid "Invoice"
msgstr "Rechnung"
-#: templates/js/translated/order.js:3013
+#: templates/js/translated/order.js:3207
msgid "Add Shipment"
msgstr "Sendung hinzufügen"
-#: templates/js/translated/order.js:3064
+#: templates/js/translated/order.js:3258
msgid "Confirm stock allocation"
msgstr "Bestandszuordnung bestätigen"
-#: templates/js/translated/order.js:3065
+#: templates/js/translated/order.js:3259
msgid "Allocate Stock Items to Sales Order"
msgstr "Artikel zu Kundenauftrag zuweisen"
-#: templates/js/translated/order.js:3273
+#: templates/js/translated/order.js:3467
msgid "No sales order allocations found"
msgstr "Keine Allokationen für Verkaufsaufträge gefunden"
-#: templates/js/translated/order.js:3352
+#: templates/js/translated/order.js:3546
msgid "Edit Stock Allocation"
msgstr "Bestandszuordnung bearbeiten"
-#: templates/js/translated/order.js:3369
+#: templates/js/translated/order.js:3563
msgid "Confirm Delete Operation"
msgstr "Löschvorgang bestätigen"
-#: templates/js/translated/order.js:3370
+#: templates/js/translated/order.js:3564
msgid "Delete Stock Allocation"
msgstr "Bestands-Zuordnung löschen"
-#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504
+#: templates/js/translated/order.js:3609 templates/js/translated/order.js:3698
#: templates/js/translated/stock.js:1602
msgid "Shipped to customer"
msgstr "an Kunde versand"
-#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513
+#: templates/js/translated/order.js:3617 templates/js/translated/order.js:3707
msgid "Stock location not specified"
msgstr "Lagerstandort nicht angegeben"
-#: templates/js/translated/order.js:3827
+#: templates/js/translated/order.js:4021
msgid "Allocate serial numbers"
msgstr "Seriennummern zuweisen"
-#: templates/js/translated/order.js:3833
+#: templates/js/translated/order.js:4027
msgid "Purchase stock"
msgstr "Bestand kaufen"
-#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038
+#: templates/js/translated/order.js:4034 templates/js/translated/order.js:4232
msgid "Calculate price"
msgstr "Preis berechnen"
-#: templates/js/translated/order.js:3852
+#: templates/js/translated/order.js:4046
msgid "Cannot be deleted as items have been shipped"
msgstr "Kann nicht gelöscht werden, da Artikel versandt wurden"
-#: templates/js/translated/order.js:3855
+#: templates/js/translated/order.js:4049
msgid "Cannot be deleted as items have been allocated"
msgstr "Kann nicht gelöscht werden, da Artikel zugewiesen sind"
-#: templates/js/translated/order.js:3937
+#: templates/js/translated/order.js:4131
msgid "Allocate Serial Numbers"
msgstr "Seriennummern zuweisen"
-#: templates/js/translated/order.js:4046
+#: templates/js/translated/order.js:4240
msgid "Update Unit Price"
msgstr "Stückpreis aktualisieren"
-#: templates/js/translated/order.js:4060
+#: templates/js/translated/order.js:4254
msgid "No matching line items"
msgstr "Keine passenden Positionen gefunden"
-#: templates/js/translated/order.js:4296
+#: templates/js/translated/order.js:4490
msgid "No matching lines"
msgstr "Keine passenden Positionen gefunden"
@@ -9374,173 +9420,177 @@ msgstr "überprüfte Stückliste"
msgid "Copy Bill of Materials"
msgstr "Stückliste kopieren"
-#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498
+#: templates/js/translated/part.js:584 templates/js/translated/part.js:1515
#: templates/js/translated/table_filters.js:468
msgid "Low stock"
msgstr "Bestand niedrig"
-#: templates/js/translated/part.js:596
+#: templates/js/translated/part.js:594
msgid "No stock available"
msgstr "Kein Lagerbestand verfügbar"
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:715
+#: templates/js/translated/part.js:628 templates/js/translated/part.js:713
msgid "Trackable part"
msgstr "Nachverfolgbares Teil"
-#: templates/js/translated/part.js:634 templates/js/translated/part.js:719
+#: templates/js/translated/part.js:632 templates/js/translated/part.js:717
msgid "Virtual part"
msgstr "virtuelles Teil"
-#: templates/js/translated/part.js:646
+#: templates/js/translated/part.js:644
msgid "Subscribed part"
msgstr "Abonnierter Teil"
-#: templates/js/translated/part.js:650
+#: templates/js/translated/part.js:648
msgid "Salable part"
msgstr "Verkäufliches Teil"
-#: templates/js/translated/part.js:778
+#: templates/js/translated/part.js:776
msgid "No variants found"
msgstr "Keine Varianten gefunden"
-#: templates/js/translated/part.js:1180
+#: templates/js/translated/part.js:1200
msgid "Delete part relationship"
msgstr "Teile-Beziehung löschen"
-#: templates/js/translated/part.js:1204
+#: templates/js/translated/part.js:1224
msgid "Delete Part Relationship"
msgstr "Teile-Beziehung löschen"
-#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573
+#: templates/js/translated/part.js:1291 templates/js/translated/part.js:1602
msgid "No parts found"
msgstr "Keine Teile gefunden"
-#: templates/js/translated/part.js:1310
-msgid "Not available"
-msgstr "Nicht verfügbar"
-
-#: templates/js/translated/part.js:1461
+#: templates/js/translated/part.js:1482
msgid "No category"
msgstr "Keine Kategorie"
-#: templates/js/translated/part.js:1496
+#: templates/js/translated/part.js:1513
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840
-#: templates/js/translated/stock.js:2347
+#: templates/js/translated/part.js:1537
+msgid "Allocated to build orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1541
+msgid "Allocated to sales orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1626 templates/js/translated/part.js:1869
+#: templates/js/translated/stock.js:2343
msgid "Display as list"
msgstr "Listenansicht"
-#: templates/js/translated/part.js:1613
+#: templates/js/translated/part.js:1642
msgid "Display as grid"
msgstr "Rasteransicht"
-#: templates/js/translated/part.js:1679
+#: templates/js/translated/part.js:1708
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1684
+#: templates/js/translated/part.js:1713
msgid "Set Part Category"
msgstr "Teil-Kategorie auswählen"
-#: templates/js/translated/part.js:1689
+#: templates/js/translated/part.js:1718
msgid "Select Part Category"
msgstr "Teil-Kategorie wählen"
-#: templates/js/translated/part.js:1702
+#: templates/js/translated/part.js:1731
msgid "Category is required"
msgstr "Kategorie erforderlich"
-#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366
+#: templates/js/translated/part.js:1888 templates/js/translated/stock.js:2362
msgid "Display as tree"
msgstr "Baumansicht"
-#: templates/js/translated/part.js:1938
+#: templates/js/translated/part.js:1967
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:1954
+#: templates/js/translated/part.js:1983
msgid "Subscribed category"
msgstr "Abonnierte Kategorie"
-#: templates/js/translated/part.js:2012
+#: templates/js/translated/part.js:2041
msgid "No test templates matching query"
msgstr "Keine zur Anfrage passenden Testvorlagen"
-#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299
+#: templates/js/translated/part.js:2092 templates/js/translated/stock.js:1299
msgid "Edit test result"
msgstr "Testergebnis bearbeiten"
-#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300
+#: templates/js/translated/part.js:2093 templates/js/translated/stock.js:1300
#: templates/js/translated/stock.js:1560
msgid "Delete test result"
msgstr "Testergebnis löschen"
-#: templates/js/translated/part.js:2070
+#: templates/js/translated/part.js:2099
msgid "This test is defined for a parent part"
msgstr "Dieses Testergebnis ist für ein Hauptteil"
-#: templates/js/translated/part.js:2092
+#: templates/js/translated/part.js:2121
msgid "Edit Test Result Template"
msgstr "Testergebnis-Vorlage bearbeiten"
-#: templates/js/translated/part.js:2106
+#: templates/js/translated/part.js:2135
msgid "Delete Test Result Template"
msgstr "Testergebnis-Vorlage löschen"
-#: templates/js/translated/part.js:2131
+#: templates/js/translated/part.js:2160
#, python-brace-format
msgid "No ${human_name} information found"
msgstr "Keine ${human_name} Informationen gefunden"
-#: templates/js/translated/part.js:2188
+#: templates/js/translated/part.js:2217
#, python-brace-format
msgid "Edit ${human_name}"
msgstr "${human_name} bearbeiten"
-#: templates/js/translated/part.js:2189
+#: templates/js/translated/part.js:2218
#, python-brace-format
msgid "Delete ${human_name}"
msgstr "${human_name} löschen"
-#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355
+#: templates/js/translated/part.js:2383 templates/js/translated/part.js:2384
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2357
+#: templates/js/translated/part.js:2386
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2363
+#: templates/js/translated/part.js:2392
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2413
+#: templates/js/translated/part.js:2442
msgid "No scheduling information available for this part"
msgstr "Keine Zeitplanung für dieses Teil vorhanden"
-#: templates/js/translated/part.js:2419
+#: templates/js/translated/part.js:2448
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2515
+#: templates/js/translated/part.js:2544
msgid "Scheduled Stock Quantities"
msgstr "Geplante Lagermengen"
-#: templates/js/translated/part.js:2531
+#: templates/js/translated/part.js:2560
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2576
+#: templates/js/translated/part.js:2605
msgid "Minimum Stock Level"
msgstr ""
-#: templates/js/translated/part.js:2677
+#: templates/js/translated/part.js:2706
msgid "Single Price"
msgstr "Einzelpreis"
-#: templates/js/translated/part.js:2696
+#: templates/js/translated/part.js:2725
msgid "Single Price Difference"
msgstr "Einzelpreisdifferenz"
@@ -9778,7 +9828,7 @@ msgstr "Entfernen"
msgid "Add Stock"
msgstr "Bestand hinzufügen"
-#: templates/js/translated/stock.js:942 users/models.py:216
+#: templates/js/translated/stock.js:942 users/models.py:218
msgid "Add"
msgstr "Hinzufügen"
@@ -9854,156 +9904,156 @@ msgstr "Auftrag zugewiesen"
msgid "No stock location set"
msgstr "Kein Lagerort gesetzt"
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1775
msgid "Stock item is in production"
msgstr "Lagerartikel wird produziert"
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1780
msgid "Stock item assigned to sales order"
msgstr "Lagerartikel wurde Auftrag zugewiesen"
-#: templates/js/translated/stock.js:1787
+#: templates/js/translated/stock.js:1783
msgid "Stock item assigned to customer"
msgstr "Lagerartikel wurde Kunden zugewiesen"
-#: templates/js/translated/stock.js:1790
+#: templates/js/translated/stock.js:1786
msgid "Serialized stock item has been allocated"
msgstr "Serialisierter Lagerartikel wurde zugewiesen"
-#: templates/js/translated/stock.js:1792
+#: templates/js/translated/stock.js:1788
msgid "Stock item has been fully allocated"
msgstr "Lagerartikel wurde vollständig zugewiesen"
-#: templates/js/translated/stock.js:1794
+#: templates/js/translated/stock.js:1790
msgid "Stock item has been partially allocated"
msgstr "Lagerartikel wurde teilweise zugewiesen"
-#: templates/js/translated/stock.js:1797
+#: templates/js/translated/stock.js:1793
msgid "Stock item has been installed in another item"
msgstr "Lagerartikel in anderem Element verbaut"
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1797
msgid "Stock item has expired"
msgstr "Lagerartikel ist abgelaufen"
-#: templates/js/translated/stock.js:1803
+#: templates/js/translated/stock.js:1799
msgid "Stock item will expire soon"
msgstr "Lagerartikel läuft demnächst ab"
-#: templates/js/translated/stock.js:1810
+#: templates/js/translated/stock.js:1806
msgid "Stock item has been rejected"
msgstr "Lagerartikel abgewiesen"
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:1808
msgid "Stock item is lost"
msgstr "Lagerartikel verloren"
-#: templates/js/translated/stock.js:1814
+#: templates/js/translated/stock.js:1810
msgid "Stock item is destroyed"
msgstr "Lagerartikel zerstört"
-#: templates/js/translated/stock.js:1818
+#: templates/js/translated/stock.js:1814
#: templates/js/translated/table_filters.js:196
msgid "Depleted"
msgstr "gelöscht"
-#: templates/js/translated/stock.js:1869
+#: templates/js/translated/stock.js:1865
msgid "Stocktake"
msgstr "Inventur"
-#: templates/js/translated/stock.js:1948
+#: templates/js/translated/stock.js:1944
msgid "Supplier part not specified"
msgstr "Zuliefererteil nicht angegeben"
-#: templates/js/translated/stock.js:1986
+#: templates/js/translated/stock.js:1982
msgid "No stock items matching query"
msgstr "Keine zur Anfrage passenden Lagerartikel"
-#: templates/js/translated/stock.js:2159
+#: templates/js/translated/stock.js:2155
msgid "Set Stock Status"
msgstr "Status setzen"
-#: templates/js/translated/stock.js:2173
+#: templates/js/translated/stock.js:2169
msgid "Select Status Code"
msgstr "Status Code setzen"
-#: templates/js/translated/stock.js:2174
+#: templates/js/translated/stock.js:2170
msgid "Status code must be selected"
msgstr "Status Code muss ausgewählt werden"
-#: templates/js/translated/stock.js:2404
+#: templates/js/translated/stock.js:2400
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2493
+#: templates/js/translated/stock.js:2489
msgid "Details"
msgstr "Details"
-#: templates/js/translated/stock.js:2509
+#: templates/js/translated/stock.js:2505
msgid "Part information unavailable"
msgstr "Artikelinformationen nicht verfügbar"
-#: templates/js/translated/stock.js:2531
+#: templates/js/translated/stock.js:2527
msgid "Location no longer exists"
msgstr "Standort nicht mehr vorhanden"
-#: templates/js/translated/stock.js:2550
+#: templates/js/translated/stock.js:2546
msgid "Purchase order no longer exists"
msgstr "Bestellung existiert nicht mehr"
-#: templates/js/translated/stock.js:2569
+#: templates/js/translated/stock.js:2565
msgid "Customer no longer exists"
msgstr "Kunde existiert nicht mehr"
-#: templates/js/translated/stock.js:2587
+#: templates/js/translated/stock.js:2583
msgid "Stock item no longer exists"
msgstr "Lagerartikel existiert nicht mehr"
-#: templates/js/translated/stock.js:2610
+#: templates/js/translated/stock.js:2606
msgid "Added"
msgstr "Hinzugefügt"
-#: templates/js/translated/stock.js:2618
+#: templates/js/translated/stock.js:2614
msgid "Removed"
msgstr "Entfernt"
-#: templates/js/translated/stock.js:2694
+#: templates/js/translated/stock.js:2690
msgid "No installed items"
msgstr "Keine installierten Elemente"
-#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781
+#: templates/js/translated/stock.js:2741 templates/js/translated/stock.js:2777
msgid "Uninstall Stock Item"
msgstr "Lagerartikel entfernen"
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2790
msgid "Select stock item to uninstall"
msgstr "Zu deinstallierende Lagerartikel auswählen"
-#: templates/js/translated/stock.js:2815
+#: templates/js/translated/stock.js:2811
msgid "Install another stock item into this item"
msgstr "Einen weiteren Lagerartikel in dieses Teil installiert"
-#: templates/js/translated/stock.js:2816
+#: templates/js/translated/stock.js:2812
msgid "Stock items can only be installed if they meet the following criteria"
msgstr "Lagerartikel können nur installiert werden wenn folgende Kriterien erfüllt werden"
-#: templates/js/translated/stock.js:2818
+#: templates/js/translated/stock.js:2814
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr "Der Lagerartikel ist auf ein Teil verknüpft das in der Stückliste für diesen Lagerartikel ist"
-#: templates/js/translated/stock.js:2819
+#: templates/js/translated/stock.js:2815
msgid "The Stock Item is currently available in stock"
msgstr "Dieser Lagerartikel ist aktuell vorhanden"
-#: templates/js/translated/stock.js:2820
+#: templates/js/translated/stock.js:2816
msgid "The Stock Item is not already installed in another item"
msgstr "Der Lagerbestand ist nicht bereits in einem anderen Bestand installiert"
-#: templates/js/translated/stock.js:2821
+#: templates/js/translated/stock.js:2817
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr "Der Lagerbestand wird entweder mit einem Batch-Code oder mit Seriennummer verfolgt"
-#: templates/js/translated/stock.js:2834
+#: templates/js/translated/stock.js:2830
msgid "Select part to install"
msgstr "Teil zur Installation auswählen"
@@ -10525,35 +10575,35 @@ msgstr "Berechtigungen"
msgid "Important dates"
msgstr "wichtige Daten"
-#: users/models.py:203
+#: users/models.py:205
msgid "Permission set"
msgstr "Berechtigung geändert"
-#: users/models.py:211
+#: users/models.py:213
msgid "Group"
msgstr "Gruppe"
-#: users/models.py:214
+#: users/models.py:216
msgid "View"
msgstr "Ansicht"
-#: users/models.py:214
+#: users/models.py:216
msgid "Permission to view items"
msgstr "Berechtigung Einträge anzuzeigen"
-#: users/models.py:216
+#: users/models.py:218
msgid "Permission to add items"
msgstr "Berechtigung Einträge zu erstellen"
-#: users/models.py:218
+#: users/models.py:220
msgid "Change"
msgstr "Ändern"
-#: users/models.py:218
+#: users/models.py:220
msgid "Permissions to edit items"
msgstr "Berechtigungen Einträge zu ändern"
-#: users/models.py:220
+#: users/models.py:222
msgid "Permission to delete items"
msgstr "Berechtigung Einträge zu löschen"
diff --git a/InvenTree/locale/el/LC_MESSAGES/django.po b/InvenTree/locale/el/LC_MESSAGES/django.po
index 1dd6153361..3428b2ded5 100644
--- a/InvenTree/locale/el/LC_MESSAGES/django.po
+++ b/InvenTree/locale/el/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-08-25 10:08+0000\n"
-"PO-Revision-Date: 2022-08-29 10:50\n"
+"POT-Creation-Date: 2022-09-09 02:44+0000\n"
+"PO-Revision-Date: 2022-09-09 03:57\n"
"Last-Translator: \n"
"Language-Team: Greek\n"
"Language: el_GR\n"
@@ -29,9 +29,9 @@ msgstr "Μπορείτε να βρείτε λεπτομέρειες σφάλμα
msgid "Enter date"
msgstr "Εισάγετε ημερομηνία"
-#: InvenTree/fields.py:186 build/serializers.py:384
-#: build/templates/build/sidebar.html:21 company/models.py:523
-#: company/templates/company/sidebar.html:25 order/models.py:906
+#: InvenTree/fields.py:183 build/serializers.py:384
+#: build/templates/build/sidebar.html:21 company/models.py:524
+#: company/templates/company/sidebar.html:25 order/models.py:910
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17
#: part/templates/part/part_sidebar.html:59
@@ -40,11 +40,12 @@ msgstr "Εισάγετε ημερομηνία"
#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823
#: stock/serializers.py:922 stock/serializers.py:1054
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099
-#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210
-#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859
-#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208
-#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1107
+#: templates/js/translated/company.js:1022
+#: templates/js/translated/order.js:2404 templates/js/translated/order.js:2555
+#: templates/js/translated/order.js:3053 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:4402 templates/js/translated/stock.js:1374
+#: templates/js/translated/stock.js:1976
msgid "Notes"
msgstr "Σημειώσεις"
@@ -177,126 +178,126 @@ msgstr "Δώσατε λάθος μορφή κλειδιού"
#: InvenTree/models.py:249
msgid "Missing required format key"
-msgstr ""
+msgstr "Λείπει το απαραίτητο κλειδί"
#: InvenTree/models.py:261
msgid "Reference field cannot be empty"
-msgstr ""
+msgstr "Το πεδίο δεν μπορεί να είναι άδειο"
#: InvenTree/models.py:268
msgid "Reference must match required pattern"
-msgstr ""
+msgstr "Η αναφορά πρέπει να ταιριάζει με το απαιτούμενο μοτίβο"
#: InvenTree/models.py:304
msgid "Reference number is too large"
-msgstr ""
+msgstr "Ο αριθμός αναφοράς είναι πολύ μεγάλος"
#: InvenTree/models.py:382
msgid "Missing file"
-msgstr ""
+msgstr "Το αρχείο λείπει"
#: InvenTree/models.py:383
msgid "Missing external link"
-msgstr ""
+msgstr "Λείπει ο εξωτερικός σύνδεσμος"
#: InvenTree/models.py:395 stock/models.py:2102
#: templates/js/translated/attachment.js:103
#: templates/js/translated/attachment.js:241
msgid "Attachment"
-msgstr ""
+msgstr "Συνημμένο"
#: InvenTree/models.py:396
msgid "Select file to attach"
-msgstr ""
+msgstr "Επιλέξτε αρχείο για επισύναψη"
#: InvenTree/models.py:402 company/models.py:124 company/models.py:276
-#: company/models.py:510 order/models.py:84 order/models.py:1245
+#: company/models.py:511 order/models.py:84 order/models.py:1249
#: part/models.py:802 part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
-#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848
-#: templates/js/translated/part.js:1534
+#: templates/js/translated/company.js:691
+#: templates/js/translated/company.js:1011
+#: templates/js/translated/order.js:3042 templates/js/translated/part.js:1563
msgid "Link"
-msgstr ""
+msgstr "Σύνδεσμος"
#: InvenTree/models.py:403 build/models.py:296 part/models.py:803
#: stock/models.py:658
msgid "Link to external URL"
-msgstr ""
+msgstr "Σύνδεσμος προς εξωτερική διεύθυνση URL"
#: InvenTree/models.py:406 templates/js/translated/attachment.js:104
#: templates/js/translated/attachment.js:285
msgid "Comment"
-msgstr ""
+msgstr "Σχόλιο"
#: InvenTree/models.py:406
msgid "File comment"
-msgstr ""
+msgstr "Σχόλιο αρχείου"
-#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665
-#: common/models.py:1666 common/models.py:1889 common/models.py:1890
-#: common/models.py:2152 common/models.py:2153 part/models.py:2239
-#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257
+#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1669
+#: common/models.py:1670 common/models.py:1893 common/models.py:1894
+#: common/models.py:2156 common/models.py:2157 part/models.py:2247
+#: part/models.py:2267 plugin/models.py:260 plugin/models.py:261
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2641
+#: templates/js/translated/stock.js:2637
msgid "User"
-msgstr ""
+msgstr "Χρήστης"
#: InvenTree/models.py:416
msgid "upload date"
-msgstr ""
+msgstr "ημερομηνία φόρτωσης"
#: InvenTree/models.py:438
msgid "Filename must not be empty"
-msgstr ""
+msgstr "Το όνομα αρχείου δεν μπορεί να είναι κενό"
#: InvenTree/models.py:447
msgid "Invalid attachment directory"
-msgstr ""
+msgstr "Μη διαθέσιμη τοποθεσία συνημμένου"
#: InvenTree/models.py:457
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
-msgstr ""
+msgstr "Το όνομα αρχείου περιέχει μη έγκυρους χαρακτήρες '{c}'"
#: InvenTree/models.py:460
msgid "Filename missing extension"
-msgstr ""
+msgstr "Λείπει επέκταση ονόματος αρχείου"
#: InvenTree/models.py:467
msgid "Attachment with this filename already exists"
-msgstr ""
+msgstr "Αρχείο με αυτό το όνομα υπάρχει ήδη"
#: InvenTree/models.py:474
msgid "Error renaming file"
-msgstr ""
+msgstr "Σφάλμα κατά τη μετονομασία"
#: InvenTree/models.py:510
msgid "Invalid choice"
-msgstr ""
+msgstr "Μη έγκυρη επιλογή"
-#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875
+#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1879
#: company/models.py:358 label/models.py:101 part/models.py:746
-#: part/models.py:2417 plugin/models.py:94 report/models.py:152
+#: part/models.py:2425 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin.html:134
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:347
-#: templates/js/translated/company.js:545
-#: templates/js/translated/company.js:758
+#: templates/js/translated/company.js:580
+#: templates/js/translated/company.js:793
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:688 templates/js/translated/part.js:840
-#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392
+#: templates/js/translated/part.js:686 templates/js/translated/part.js:838
+#: templates/js/translated/part.js:1955 templates/js/translated/stock.js:2388
msgid "Name"
-msgstr ""
+msgstr "Όνομα"
#: InvenTree/models.py:544 build/models.py:174
#: build/templates/build/detail.html:24 company/models.py:282
-#: company/models.py:516 company/templates/company/company_base.html:71
+#: company/models.py:517 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:87 label/models.py:108
-#: order/models.py:82 part/models.py:769 part/models.py:2429
+#: company/templates/company/supplier_part.html:92 label/models.py:108
+#: order/models.py:82 part/models.py:769 part/models.py:2437
#: part/templates/part/category.html:80 part/templates/part/part_base.html:167
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
@@ -305,425 +306,425 @@ msgstr ""
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/InvenTree/settings/settings.html:358
#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846
-#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409
-#: templates/js/translated/company.js:667
-#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637
-#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167
-#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962
-#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743
-#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478
+#: templates/js/translated/build.js:2512 templates/js/translated/company.js:444
+#: templates/js/translated/company.js:702
+#: templates/js/translated/company.js:986 templates/js/translated/order.js:1988
+#: templates/js/translated/order.js:2220 templates/js/translated/order.js:2831
+#: templates/js/translated/part.js:745 templates/js/translated/part.js:1187
+#: templates/js/translated/part.js:1463 templates/js/translated/part.js:1991
+#: templates/js/translated/part.js:2060 templates/js/translated/stock.js:1743
+#: templates/js/translated/stock.js:2420 templates/js/translated/stock.js:2474
msgid "Description"
-msgstr ""
+msgstr "Περιγραφή"
#: InvenTree/models.py:545
msgid "Description (optional)"
-msgstr ""
+msgstr "Περιγραφή (προαιρετική)"
#: InvenTree/models.py:553
msgid "parent"
-msgstr ""
+msgstr "γονέας"
#: InvenTree/models.py:560 InvenTree/models.py:561
-#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:2426
msgid "Path"
-msgstr ""
+msgstr "Μονοπάτι"
#: InvenTree/models.py:670
msgid "Server Error"
-msgstr ""
+msgstr "Σφάλμα διακομιστή"
#: InvenTree/models.py:671
msgid "An error has been logged by the server."
-msgstr ""
+msgstr "Ένα σφάλμα έχει καταγραφεί από το διακομιστή."
-#: InvenTree/serializers.py:55 part/models.py:2745
+#: InvenTree/serializers.py:55 part/models.py:2753
msgid "Must be a valid number"
-msgstr ""
+msgstr "Πρέπει να είναι αριθμός"
#: InvenTree/serializers.py:262
msgid "Filename"
-msgstr ""
+msgstr "Όνομα αρχείου"
#: InvenTree/serializers.py:297
msgid "Invalid value"
-msgstr ""
+msgstr "Μη έγκυρη τιμή"
#: InvenTree/serializers.py:319
msgid "Data File"
-msgstr ""
+msgstr "Αρχείο Δεδομένων"
#: InvenTree/serializers.py:320
msgid "Select data file for upload"
-msgstr ""
+msgstr "Επιλέξτε ένα αρχείο για ανέβασμα"
#: InvenTree/serializers.py:341
msgid "Unsupported file type"
-msgstr ""
+msgstr "Μη υποστηριζόμενος τύπος αρχείου"
#: InvenTree/serializers.py:347
msgid "File is too large"
-msgstr ""
+msgstr "Το αρχείο είναι πολύ μεγάλο"
#: InvenTree/serializers.py:368
msgid "No columns found in file"
-msgstr ""
+msgstr "Δεν βρέθηκαν στήλες στο αρχείο"
#: InvenTree/serializers.py:371
msgid "No data rows found in file"
-msgstr ""
+msgstr "Δεν βρέθηκαν γραμμές δεδομένων στο αρχείο"
#: InvenTree/serializers.py:494
msgid "No data rows provided"
-msgstr ""
+msgstr "Δεν παρασχέθηκαν σειρές δεδομένων"
#: InvenTree/serializers.py:497
msgid "No data columns supplied"
-msgstr ""
+msgstr "Δεν δόθηκαν στήλες δεδομένων"
#: InvenTree/serializers.py:574
#, python-brace-format
msgid "Missing required column: '{name}'"
-msgstr ""
+msgstr "Λείπει απαιτούμενη στήλη: '{name}'"
#: InvenTree/serializers.py:583
#, python-brace-format
msgid "Duplicate column: '{col}'"
-msgstr ""
+msgstr "Διπλή στήλη: '{col}'"
#: InvenTree/serializers.py:602
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
-msgstr ""
+msgstr "URL"
#: InvenTree/serializers.py:603
msgid "URL of remote image file"
-msgstr ""
+msgstr "Διεύθυνση URL του αρχείου απομακρυσμένης εικόνας"
#: InvenTree/serializers.py:617
msgid "Downloading images from remote URL is not enabled"
-msgstr ""
+msgstr "Η λήψη εικόνων από απομακρυσμένο URL δεν είναι ενεργοποιημένη"
#: InvenTree/settings.py:607
msgid "Czech"
-msgstr ""
+msgstr "Τσέχικα"
#: InvenTree/settings.py:608
msgid "German"
-msgstr ""
+msgstr "Γερμανικά"
#: InvenTree/settings.py:609
msgid "Greek"
-msgstr ""
+msgstr "Ελληνικά"
#: InvenTree/settings.py:610
msgid "English"
-msgstr ""
+msgstr "Αγγλικά"
#: InvenTree/settings.py:611
msgid "Spanish"
-msgstr ""
+msgstr "Ισπανικά"
#: InvenTree/settings.py:612
msgid "Spanish (Mexican)"
-msgstr ""
+msgstr "Ισπανικά (Μεξικό)"
#: InvenTree/settings.py:613
msgid "Farsi / Persian"
-msgstr ""
+msgstr "Φαρσί / Περσικά"
#: InvenTree/settings.py:614
msgid "French"
-msgstr ""
+msgstr "Γαλλικά"
#: InvenTree/settings.py:615
msgid "Hebrew"
-msgstr ""
+msgstr "Εβραϊκά"
#: InvenTree/settings.py:616
msgid "Hungarian"
-msgstr ""
+msgstr "Ούγγρικα"
#: InvenTree/settings.py:617
msgid "Italian"
-msgstr ""
+msgstr "Ιταλικά"
#: InvenTree/settings.py:618
msgid "Japanese"
-msgstr ""
+msgstr "Ιαπωνικά"
#: InvenTree/settings.py:619
msgid "Korean"
-msgstr ""
+msgstr "Κορεάτικα"
#: InvenTree/settings.py:620
msgid "Dutch"
-msgstr ""
+msgstr "Dutch"
#: InvenTree/settings.py:621
msgid "Norwegian"
-msgstr ""
+msgstr "Νορβηγικά"
#: InvenTree/settings.py:622
msgid "Polish"
-msgstr ""
+msgstr "Πολωνικά"
#: InvenTree/settings.py:623
msgid "Portuguese"
-msgstr ""
+msgstr "Πορτογαλικά"
#: InvenTree/settings.py:624
msgid "Portuguese (Brazilian)"
-msgstr ""
+msgstr "Πορτογαλικά (Βραζιλίας)"
#: InvenTree/settings.py:625
msgid "Russian"
-msgstr ""
+msgstr "Ρωσικά"
#: InvenTree/settings.py:626
msgid "Swedish"
-msgstr ""
+msgstr "Σουηδικά"
#: InvenTree/settings.py:627
msgid "Thai"
-msgstr ""
+msgstr "Ταϊλανδέζικα"
#: InvenTree/settings.py:628
msgid "Turkish"
-msgstr ""
+msgstr "Τούρκικα"
#: InvenTree/settings.py:629
msgid "Vietnamese"
-msgstr ""
+msgstr "Βιετναμέζικα"
#: InvenTree/settings.py:630
msgid "Chinese"
-msgstr ""
+msgstr "Κινέζικα"
#: InvenTree/status.py:99
msgid "Background worker check failed"
-msgstr ""
+msgstr "Ο έλεγχος εργασίας στο παρασκήνιο απέτυχε"
#: InvenTree/status.py:103
msgid "Email backend not configured"
-msgstr ""
+msgstr "Δεν έχει ρυθμιστεί διεύθυνση ηλεκτρονικού ταχυδρομείου"
#: InvenTree/status.py:106
msgid "InvenTree system health checks failed"
-msgstr ""
+msgstr "Ο έλεγχος συστήματος για το Inventree απέτυχε"
#: InvenTree/status_codes.py:99 InvenTree/status_codes.py:140
#: InvenTree/status_codes.py:306 templates/js/translated/table_filters.js:334
msgid "Pending"
-msgstr ""
+msgstr "Σε εκκρεμότητα"
#: InvenTree/status_codes.py:100
msgid "Placed"
-msgstr ""
+msgstr "Τοποθετήθηκε"
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
-msgstr ""
+msgstr "Ολοκληρώθηκε"
#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:142
#: InvenTree/status_codes.py:308
msgid "Cancelled"
-msgstr ""
+msgstr "Ακυρώθηκε"
#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:143
#: InvenTree/status_codes.py:183
msgid "Lost"
-msgstr ""
+msgstr "Χάθηκε"
#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
#: InvenTree/status_codes.py:186
msgid "Returned"
-msgstr ""
+msgstr "Επιστράφηκε"
-#: InvenTree/status_codes.py:141 order/models.py:1128
-#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785
+#: InvenTree/status_codes.py:141 order/models.py:1132
+#: templates/js/translated/order.js:3630 templates/js/translated/order.js:3979
msgid "Shipped"
-msgstr ""
+msgstr "Αποστάλθηκε"
#: InvenTree/status_codes.py:179
msgid "OK"
-msgstr ""
+msgstr "ΟΚ"
#: InvenTree/status_codes.py:180
msgid "Attention needed"
-msgstr ""
+msgstr "Απαιτείται προσοχή"
#: InvenTree/status_codes.py:181
msgid "Damaged"
-msgstr ""
+msgstr "Κατεστραμμένο"
#: InvenTree/status_codes.py:182
msgid "Destroyed"
-msgstr ""
+msgstr "Καταστράφηκε"
#: InvenTree/status_codes.py:184
msgid "Rejected"
-msgstr ""
+msgstr "Απορρίφθηκε"
#: InvenTree/status_codes.py:185
msgid "Quarantined"
-msgstr ""
+msgstr "Σε Καραντίνα"
#: InvenTree/status_codes.py:259
msgid "Legacy stock tracking entry"
-msgstr ""
+msgstr "Καταχώρηση παλαιού αποθέματος"
#: InvenTree/status_codes.py:261
msgid "Stock item created"
-msgstr ""
+msgstr "Το αντικείμενο αποθεμάτων δημιουργήθηκε"
#: InvenTree/status_codes.py:263
msgid "Edited stock item"
-msgstr ""
+msgstr "Έγινε συγχώνευση αποθεμάτων"
#: InvenTree/status_codes.py:264
msgid "Assigned serial number"
-msgstr ""
+msgstr "Εκχωρημένος σειριακός κωδικός"
#: InvenTree/status_codes.py:266
msgid "Stock counted"
-msgstr ""
+msgstr "Απόθεμα που μετρήθηκε"
#: InvenTree/status_codes.py:267
msgid "Stock manually added"
-msgstr ""
+msgstr "Προστέθηκε απόθεμα χειροκίνητα"
#: InvenTree/status_codes.py:268
msgid "Stock manually removed"
-msgstr ""
+msgstr "Αφαιρέθηκε απόθεμα χειροκίνητα"
#: InvenTree/status_codes.py:270
msgid "Location changed"
-msgstr ""
+msgstr "Η τοποθεσία τροποποιήθηκε"
#: InvenTree/status_codes.py:272
msgid "Installed into assembly"
-msgstr ""
+msgstr "Εγκαταστάθηκε στη συναρμολόγηση"
#: InvenTree/status_codes.py:273
msgid "Removed from assembly"
-msgstr ""
+msgstr "Αφαιρέθηκε από τη συναρμολόγηση"
#: InvenTree/status_codes.py:275
msgid "Installed component item"
-msgstr ""
+msgstr "Εγκαταστάθηκε αντικείμενο"
#: InvenTree/status_codes.py:276
msgid "Removed component item"
-msgstr ""
+msgstr "Αφαιρέθηκε αντικείμενο"
#: InvenTree/status_codes.py:278
msgid "Split from parent item"
-msgstr ""
+msgstr "Έγινε διαχωρισμός από το γονεϊκό αρχείο"
#: InvenTree/status_codes.py:279
msgid "Split child item"
-msgstr ""
+msgstr "Διαχωρίστηκε θυγατρικό στοιχείο"
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080
msgid "Merged stock items"
-msgstr ""
+msgstr "Έγινε συγχώνευση αποθεμάτων"
#: InvenTree/status_codes.py:283
msgid "Converted to variant"
-msgstr ""
+msgstr "Μετατράπηκε σε παραλλαγή"
#: InvenTree/status_codes.py:285 templates/js/translated/table_filters.js:221
msgid "Sent to customer"
-msgstr ""
+msgstr "Απεστάλη στον πελάτη"
#: InvenTree/status_codes.py:286
msgid "Returned from customer"
-msgstr ""
+msgstr "Επιστράφηκε από πελάτη"
#: InvenTree/status_codes.py:288
msgid "Build order output created"
-msgstr ""
+msgstr "Δημιουργήθηκε η έξοδος παραγγελίας"
#: InvenTree/status_codes.py:289
msgid "Build order output completed"
-msgstr ""
+msgstr "Η έξοδος της σειράς κατασκευής ολοκληρώθηκε"
#: InvenTree/status_codes.py:290
msgid "Consumed by build order"
-msgstr ""
+msgstr "Κατανάλωση με εντολή κατασκευής"
#: InvenTree/status_codes.py:292
msgid "Received against purchase order"
-msgstr ""
+msgstr "Λήφθηκε έναντι εντολής αγοράς"
#: InvenTree/status_codes.py:307
msgid "Production"
-msgstr ""
+msgstr "Παραγωγή"
#: InvenTree/validators.py:18
msgid "Not a valid currency code"
-msgstr ""
+msgstr "Μη έγκυρος κωδικός συναλλάγματος"
#: InvenTree/validators.py:45
msgid "Invalid character in part name"
-msgstr ""
+msgstr "Μη έγκυρος χαρακτήρας στο όνομα εξαρτήματος"
#: InvenTree/validators.py:57
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
-msgstr ""
+msgstr "Το IPN πρέπει να ταιριάζει με το μοτίβο regex {pat}"
#: InvenTree/validators.py:68 InvenTree/validators.py:79
#, python-brace-format
msgid "Reference must match pattern {pattern}"
-msgstr ""
+msgstr "Η αναφορά πρέπει να ταιριάζει με το μοτίβο {pattern}"
#: InvenTree/validators.py:102 InvenTree/validators.py:118
msgid "Overage value must not be negative"
-msgstr ""
+msgstr "Η μέση τιμή δεν πρέπει να είναι αρνητική"
#: InvenTree/validators.py:120
msgid "Overage must not exceed 100%"
-msgstr ""
+msgstr "Η μέση τιμή δεν πρέπει να υπερβαίνει το 100%"
#: InvenTree/validators.py:127
msgid "Invalid value for overage"
-msgstr ""
+msgstr "Μη έγκυρη τιμή για υπέρβαση"
#: InvenTree/views.py:520 templates/InvenTree/settings/user.html:22
msgid "Edit User Information"
-msgstr ""
+msgstr "Τροποποίηση πληροφοριών χρήστη"
#: InvenTree/views.py:532 templates/InvenTree/settings/user.html:19
msgid "Set Password"
-msgstr ""
+msgstr "Ορισμός Κωδικού Πρόσβασης"
#: InvenTree/views.py:554
msgid "Password fields must match"
-msgstr ""
+msgstr "Τα πεδία κωδικού πρόσβασης πρέπει να ταιριάζουν"
#: InvenTree/views.py:563
msgid "Wrong password provided"
-msgstr ""
+msgstr "Δόθηκε λάθος κωδικός πρόσβασης"
#: InvenTree/views.py:773 templates/navbar.html:152
msgid "System Information"
-msgstr ""
+msgstr "Πληροφορίες συστήματος"
#: InvenTree/views.py:780 templates/navbar.html:163
msgid "About InvenTree"
-msgstr ""
+msgstr "Σχετικά με το InvenTree"
-#: build/api.py:217
+#: build/api.py:219
msgid "Build must be cancelled before it can be deleted"
-msgstr ""
+msgstr "Η έκδοση πρέπει να ακυρωθεί πριν διαγραφεί"
#: build/models.py:105
msgid "Invalid choice for parent build"
-msgstr ""
+msgstr "Μη έγκυρη επιλογή για γονική κατασκευή"
#: build/models.py:110 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
@@ -732,7 +733,7 @@ msgstr ""
#: templates/email/overdue_build_order.html:15
#: templates/js/translated/build.js:764
msgid "Build Order"
-msgstr ""
+msgstr "Σειρά Κατασκευής"
#: build/models.py:111 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
@@ -742,44 +743,44 @@ msgstr ""
#: templates/InvenTree/search.html:141
#: templates/InvenTree/settings/sidebar.html:47 users/models.py:41
msgid "Build Orders"
-msgstr ""
+msgstr "Δημιουργία Παραγγελιών"
#: build/models.py:165
msgid "Build Order Reference"
-msgstr ""
+msgstr "Αναφορά Παραγγελίας Κατασκευής"
-#: build/models.py:166 order/models.py:240 order/models.py:623
-#: order/models.py:904 part/models.py:2663
+#: build/models.py:166 order/models.py:240 order/models.py:627
+#: order/models.py:908 part/models.py:2671
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853
-#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089
-#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629
-#: templates/js/translated/order.js:4137
+#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2251
+#: templates/js/translated/order.js:2484 templates/js/translated/order.js:3823
+#: templates/js/translated/order.js:4331
msgid "Reference"
-msgstr ""
+msgstr "Αναφορά"
#: build/models.py:177
msgid "Brief description of the build"
-msgstr ""
+msgstr "Σύντομη περιγραφή της κατασκευής"
#: build/models.py:185 build/templates/build/build_base.html:172
#: build/templates/build/detail.html:87
msgid "Parent Build"
-msgstr ""
+msgstr "Γονική Κατασκευή"
#: build/models.py:186
msgid "BuildOrder to which this build is allocated"
-msgstr ""
+msgstr "BuildOrder στην οποία έχει δοθεί αυτή η κατασκευή"
#: build/models.py:191 build/templates/build/build_base.html:80
-#: build/templates/build/detail.html:29 company/models.py:670
-#: order/models.py:1001 order/models.py:1112 order/models.py:1113
-#: part/models.py:343 part/models.py:2185 part/models.py:2200
-#: part/models.py:2219 part/models.py:2237 part/models.py:2336
-#: part/models.py:2463 part/models.py:2553 part/models.py:2638
-#: part/models.py:2914 part/serializers.py:814
+#: build/templates/build/detail.html:29 company/models.py:679
+#: order/models.py:1005 order/models.py:1116 order/models.py:1117
+#: part/models.py:343 part/models.py:2193 part/models.py:2208
+#: part/models.py:2227 part/models.py:2245 part/models.py:2344
+#: part/models.py:2471 part/models.py:2561 part/models.py:2646
+#: part/models.py:2922 part/serializers.py:814
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -795,220 +796,220 @@ msgstr ""
#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800
#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682
#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517
-#: templates/js/translated/company.js:266
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:608
-#: templates/js/translated/company.js:868 templates/js/translated/order.js:105
-#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493
-#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613
-#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224
-#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586
+#: templates/js/translated/company.js:301
+#: templates/js/translated/company.js:531
+#: templates/js/translated/company.js:643
+#: templates/js/translated/company.js:904 templates/js/translated/order.js:106
+#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1638
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:3185
+#: templates/js/translated/order.js:3581 templates/js/translated/order.js:3807
+#: templates/js/translated/part.js:1172 templates/js/translated/part.js:1244
+#: templates/js/translated/part.js:1441 templates/js/translated/stock.js:586
#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504
-#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833
+#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2500
+#: templates/js/translated/stock.js:2695 templates/js/translated/stock.js:2829
msgid "Part"
-msgstr ""
+msgstr "Εξάρτημα"
#: build/models.py:199
msgid "Select part to build"
-msgstr ""
+msgstr "Επιλέξτε τμήμα για κατασκευή"
#: build/models.py:204
msgid "Sales Order Reference"
-msgstr ""
+msgstr "Κωδικός Παραγγελίας Πωλήσεων"
#: build/models.py:208
msgid "SalesOrder to which this build is allocated"
-msgstr ""
+msgstr "SalesOrder στην οποία έχει διατεθεί αυτό το build"
#: build/models.py:213 build/serializers.py:800
-#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979
+#: templates/js/translated/build.js:2114 templates/js/translated/order.js:3173
msgid "Source Location"
-msgstr ""
+msgstr "Τοποθεσία Προέλευσης"
#: build/models.py:217
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
-msgstr ""
+msgstr "Επιλέξτε τοποθεσία από την οποία θα γίνει απόθεμα, για αυτή την κατασκευή (αφήστε κενό για να πάρετε από οποιαδήποτε θέση αποθήκευσης)"
#: build/models.py:222
msgid "Destination Location"
-msgstr ""
+msgstr "Τοποθεσία Προορισμού"
#: build/models.py:226
msgid "Select location where the completed items will be stored"
-msgstr ""
+msgstr "Επιλέξτε την τοποθεσία όπου θα αποθηκευτούν τα ολοκληρωμένα στοιχεία"
#: build/models.py:230
msgid "Build Quantity"
-msgstr ""
+msgstr "Ποσότητα Κατασκευής"
#: build/models.py:233
msgid "Number of stock items to build"
-msgstr ""
+msgstr "Αριθμός αντικειμένων για κατασκευή"
#: build/models.py:237
msgid "Completed items"
-msgstr ""
+msgstr "Ολοκληρωμένα αντικείμενα"
#: build/models.py:239
msgid "Number of stock items which have been completed"
-msgstr ""
+msgstr "Αριθμός αντικειμένων αποθέματος που έχουν ολοκληρωθεί"
#: build/models.py:243
msgid "Build Status"
-msgstr ""
+msgstr "Κατάσταση Κατασκευής"
#: build/models.py:247
msgid "Build status code"
-msgstr ""
+msgstr "Κωδικός κατάστασης κατασκευής"
-#: build/models.py:251 build/serializers.py:225 order/serializers.py:447
-#: stock/models.py:662 templates/js/translated/order.js:1353
+#: build/models.py:251 build/serializers.py:225 order/serializers.py:464
+#: stock/models.py:662 templates/js/translated/order.js:1496
msgid "Batch Code"
-msgstr ""
+msgstr "Κωδικός Παρτίδας"
#: build/models.py:255 build/serializers.py:226
msgid "Batch code for this build output"
-msgstr ""
+msgstr "Κωδικός παρτίδας για αυτήν την κατασκευή"
#: build/models.py:258 order/models.py:86 part/models.py:938
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2844
msgid "Creation Date"
-msgstr ""
+msgstr "Ημερομηνία Δημιουργίας"
-#: build/models.py:262 order/models.py:648
+#: build/models.py:262 order/models.py:652
msgid "Target completion date"
-msgstr ""
+msgstr "Ημερομηνία ολοκλήρωσης στόχου"
#: build/models.py:263
msgid "Target date for build completion. Build will be overdue after this date."
-msgstr ""
+msgstr "Ημερομηνία ολοκλήρωσης της κατασκευής. Η κατασκευή θα καθυστερήσει μετά από αυτή την ημερομηνία."
#: build/models.py:266 order/models.py:286
#: templates/js/translated/build.js:2594
msgid "Completion Date"
-msgstr ""
+msgstr "Ημερομηνία ολοκλήρωσης"
#: build/models.py:272
msgid "completed by"
-msgstr ""
+msgstr "ολοκληρώθηκε από"
#: build/models.py:280 templates/js/translated/build.js:2562
msgid "Issued by"
-msgstr ""
+msgstr "Εκδόθηκε από"
#: build/models.py:281
msgid "User who issued this build order"
-msgstr ""
+msgstr "Χρήστης που εξέδωσε αυτήν την παραγγελία κατασκευής"
#: build/models.py:289 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:100
-#: order/templates/order/order_base.html:179
+#: order/templates/order/order_base.html:185
#: order/templates/order/sales_order_base.html:183 part/models.py:942
#: report/templates/report/inventree_build_order_base.html:158
-#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860
+#: templates/js/translated/build.js:2574 templates/js/translated/order.js:2022
msgid "Responsible"
-msgstr ""
+msgstr "Υπεύθυνος"
#: build/models.py:290
msgid "User responsible for this build order"
-msgstr ""
+msgstr "Υπεύθυνος για αυτή την παραγγελία κατασκευής"
#: build/models.py:295 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
-#: company/templates/company/supplier_part.html:153
+#: company/templates/company/supplier_part.html:165
#: part/templates/part/part_base.html:346 stock/models.py:656
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:203
msgid "External Link"
-msgstr ""
+msgstr "Εξωτερικοί σύνδεσμοι"
#: build/models.py:300
msgid "Extra build notes"
-msgstr ""
+msgstr "Επιπλέον σημειώσεις"
#: build/models.py:538
#, python-brace-format
msgid "Build order {build} has been completed"
-msgstr ""
+msgstr "Η παραγγελία κατασκευής {build} έχει ολοκληρωθεί"
#: build/models.py:544
msgid "A build order has been completed"
-msgstr ""
+msgstr "Η παραγγελία κατασκευής έχει ολοκληρωθεί"
#: build/models.py:723
msgid "No build output specified"
-msgstr ""
+msgstr "Δεν καθορίστηκε έξοδος κατασκευής"
#: build/models.py:726
msgid "Build output is already completed"
-msgstr ""
+msgstr "Η παραγγελία κατασκευής έχει ολοκληρωθεί"
#: build/models.py:729
msgid "Build output does not match Build Order"
-msgstr ""
+msgstr "Η έξοδος κατασκευής δεν ταιριάζει με την παραγγελία κατασκευής"
#: build/models.py:1169
msgid "Build item must specify a build output, as master part is marked as trackable"
-msgstr ""
+msgstr "Το στοιχείο κατασκευής πρέπει να ορίζει μια έξοδο κατασκευής, καθώς το κύριο τμήμα επισημαίνεται ως ανιχνεύσιμο"
#: build/models.py:1178
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
-msgstr ""
+msgstr "Η καταχωρημένη ποσότητα ({q}) δεν πρέπει να υπερβαίνει τη διαθέσιμη ποσότητα αποθέματος ({a})"
-#: build/models.py:1188 order/models.py:1379
+#: build/models.py:1188 order/models.py:1383
msgid "Stock item is over-allocated"
-msgstr ""
+msgstr "Στοιχείο αποθέματος είναι υπερ-κατανεμημένο"
-#: build/models.py:1194 order/models.py:1382
+#: build/models.py:1194 order/models.py:1386
msgid "Allocation quantity must be greater than zero"
-msgstr ""
+msgstr "Η ποσότητα πρέπει να είναι μεγαλύτερη από 0"
#: build/models.py:1200
msgid "Quantity must be 1 for serialized stock"
-msgstr ""
+msgstr "Η ποσότητα πρέπει να είναι 1 για σειριακό απόθεμα"
#: build/models.py:1257
msgid "Selected stock item not found in BOM"
-msgstr ""
+msgstr "Το επιλεγμένο αντικείμενο αποθέματος δεν βρέθηκε στο BOM"
-#: build/models.py:1326 stock/templates/stock/item_base.html:172
+#: build/models.py:1326 stock/templates/stock/item_base.html:175
#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496
#: templates/navbar.html:38
msgid "Build"
-msgstr ""
+msgstr "Κατασκευή"
#: build/models.py:1327
msgid "Build to allocate parts"
-msgstr ""
+msgstr "Κατασκευή για εκχώρηση τμημάτων"
-#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015
-#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754
+#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1035
+#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754
#: stock/serializers.py:880 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:197
#: templates/js/translated/build.js:774 templates/js/translated/build.js:779
#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679
-#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992
-#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299
-#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486
+#: templates/js/translated/order.js:107 templates/js/translated/order.js:3186
+#: templates/js/translated/order.js:3488 templates/js/translated/order.js:3493
+#: templates/js/translated/order.js:3588 templates/js/translated/order.js:3680
#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752
-#: templates/js/translated/stock.js:2577
+#: templates/js/translated/stock.js:2573
msgid "Stock Item"
-msgstr ""
+msgstr "Στοιχείο Αποθέματος"
#: build/models.py:1344
msgid "Source stock item"
-msgstr ""
+msgstr "Στοιχείο πηγαίου αποθέματος"
#: build/models.py:1356 build/serializers.py:193
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1697
-#: company/templates/company/supplier_part.html:279 order/models.py:897
-#: order/models.py:1423 order/serializers.py:1155
+#: build/templates/build/detail.html:34 common/models.py:1701
+#: company/templates/company/supplier_part.html:291 order/models.py:901
+#: order/models.py:1427 order/serializers.py:1209
#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40
-#: part/models.py:2654 part/templates/part/detail.html:951
+#: part/models.py:2662 part/templates/part/detail.html:951
#: part/templates/part/detail.html:1037
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -1017,8 +1018,8 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:291 stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
+#: stock/serializers.py:291 stock/templates/stock/item_base.html:290
+#: stock/templates/stock/item_base.html:298
#: templates/email/build_order_completed.html:18
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691
#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458
@@ -1026,84 +1027,84 @@ msgstr ""
#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708
#: templates/js/translated/build.js:2129
#: templates/js/translated/model_renderers.js:120
-#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043
-#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313
-#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492
-#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143
-#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176
-#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686
-#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458
+#: templates/js/translated/order.js:123 templates/js/translated/order.js:1137
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:2490
+#: templates/js/translated/order.js:3187 templates/js/translated/order.js:3507
+#: templates/js/translated/order.js:3594 templates/js/translated/order.js:3686
+#: templates/js/translated/order.js:3829 templates/js/translated/order.js:4337
+#: templates/js/translated/part.js:1036 templates/js/translated/part.js:2205
+#: templates/js/translated/part.js:2674 templates/js/translated/part.js:2715
+#: templates/js/translated/part.js:2793 templates/js/translated/stock.js:458
#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782
-#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2707
msgid "Quantity"
-msgstr ""
+msgstr "Ποσότητα"
#: build/models.py:1357
msgid "Stock quantity to allocate to build"
-msgstr ""
+msgstr "Ποσότητα αποθέματος για διάθεση για κατασκευή"
#: build/models.py:1365
msgid "Install into"
-msgstr ""
+msgstr "Εγκατάσταση σε"
#: build/models.py:1366
msgid "Destination stock item"
-msgstr ""
+msgstr "Αποθήκη προορισμού"
#: build/serializers.py:138 build/serializers.py:674
#: templates/js/translated/build.js:1199
msgid "Build Output"
-msgstr ""
+msgstr "Κατασκευή Εξόδου"
#: build/serializers.py:150
msgid "Build output does not match the parent build"
-msgstr ""
+msgstr "Η έξοδος κατασκευής δεν ταιριάζει με την παραγγελία κατασκευής"
#: build/serializers.py:154
msgid "Output part does not match BuildOrder part"
-msgstr ""
+msgstr "Το εξερχόμενο μέρος δεν ταιριάζει με το μέρος BuildOrder"
#: build/serializers.py:158
msgid "This build output has already been completed"
-msgstr ""
+msgstr "Η παραγγελία κατασκευής έχει ολοκληρωθεί"
#: build/serializers.py:169
msgid "This build output is not fully allocated"
-msgstr ""
+msgstr "Αυτή η έξοδος κατασκευής δεν έχει εκχωρηθεί πλήρως"
#: build/serializers.py:194
msgid "Enter quantity for build output"
-msgstr ""
+msgstr "Εισάγετε ποσότητα για την έξοδο κατασκευής"
#: build/serializers.py:208 build/serializers.py:665 order/models.py:318
-#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545
+#: order/serializers.py:304 order/serializers.py:459 part/serializers.py:545
#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251
#: stock/serializers.py:300
msgid "Quantity must be greater than zero"
-msgstr ""
+msgstr "Η ποσότητα πρέπει να είναι μεγαλύτερη από 0"
#: build/serializers.py:215
msgid "Integer quantity required for trackable parts"
-msgstr ""
+msgstr "Ακέραιη ποσότητα που απαιτείται για ανιχνεύσιμα μέρη"
#: build/serializers.py:218
msgid "Integer quantity required, as the bill of materials contains trackable parts"
-msgstr ""
+msgstr "Ακέραιη ποσότητα που απαιτείται, καθώς ο λογαριασμός των υλικών περιέχει ανιχνεύσιμα μέρη"
-#: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159
-#: stock/serializers.py:309 templates/js/translated/order.js:1364
+#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213
+#: stock/serializers.py:309 templates/js/translated/order.js:1507
#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459
msgid "Serial Numbers"
-msgstr ""
+msgstr "Σειριακοί αριθμοί"
#: build/serializers.py:233
msgid "Enter serial numbers for build outputs"
-msgstr ""
+msgstr "Εισάγετε ποσότητα για την έξοδο κατασκευής"
#: build/serializers.py:246
msgid "Auto Allocate Serial Numbers"
-msgstr ""
+msgstr "Αυτόματη Κατανομή Σειριακών Αριθμών"
#: build/serializers.py:247
msgid "Automatically allocate required items with matching serial numbers"
@@ -1117,18 +1118,18 @@ msgstr ""
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532
+#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552
#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532
#: stock/serializers.py:915 stock/serializers.py:1148
-#: stock/templates/stock/item_base.html:385
+#: stock/templates/stock/item_base.html:388
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786
-#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391
-#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411
-#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500
+#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1534
+#: templates/js/translated/order.js:3500 templates/js/translated/order.js:3605
+#: templates/js/translated/order.js:3613 templates/js/translated/order.js:3694
#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588
#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960
-#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2514
msgid "Location"
msgstr ""
@@ -1137,12 +1138,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:373 build/templates/build/build_base.html:145
-#: build/templates/build/detail.html:62 order/models.py:642
-#: order/serializers.py:465 stock/templates/stock/item_base.html:418
+#: build/templates/build/detail.html:62 order/models.py:646
+#: order/serializers.py:482 stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546
-#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830
-#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829
-#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727
+#: templates/js/translated/order.js:1643 templates/js/translated/order.js:1992
+#: templates/js/translated/order.js:2836 templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:2591 templates/js/translated/stock.js:2723
msgid "Status"
msgstr ""
@@ -1202,7 +1203,7 @@ msgstr ""
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:527
+#: build/serializers.py:527 order/serializers.py:208 order/serializers.py:1103
msgid "Accept Incomplete"
msgstr ""
@@ -1218,8 +1219,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772
-#: part/models.py:2906
+#: build/serializers.py:577 build/serializers.py:622 part/models.py:2780
+#: part/models.py:2914
msgid "BOM Item"
msgstr ""
@@ -1239,7 +1240,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:709 order/serializers.py:1073
+#: build/serializers.py:709 order/serializers.py:1093
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1256,7 +1257,7 @@ msgstr ""
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:750 order/serializers.py:1319
+#: build/serializers.py:750 order/serializers.py:1373
msgid "Allocation items must be provided"
msgstr ""
@@ -1371,13 +1372,13 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:154
-#: build/templates/build/detail.html:131 order/models.py:910
-#: order/templates/order/order_base.html:165
+#: build/templates/build/detail.html:131 order/models.py:914
+#: order/templates/order/order_base.html:171
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:125
-#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847
-#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658
-#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042
+#: templates/js/translated/build.js:2586 templates/js/translated/order.js:2009
+#: templates/js/translated/order.js:2351 templates/js/translated/order.js:2852
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1051
msgid "Target Date"
msgstr ""
@@ -1388,7 +1389,7 @@ msgstr ""
#: build/templates/build/build_base.html:159
#: build/templates/build/build_base.html:204
-#: order/templates/order/order_base.html:101
+#: order/templates/order/order_base.html:107
#: order/templates/order/sales_order_base.html:94
#: templates/js/translated/table_filters.js:320
#: templates/js/translated/table_filters.js:361
@@ -1404,15 +1405,15 @@ msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:179
-#: build/templates/build/detail.html:94 order/models.py:1105
-#: order/models.py:1199 order/models.py:1330
+#: build/templates/build/detail.html:94 order/models.py:1109
+#: order/models.py:1203 order/models.py:1334
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:365
+#: stock/templates/stock/item_base.html:368
#: templates/email/overdue_sales_order.html:15
-#: templates/js/translated/order.js:2604
+#: templates/js/translated/order.js:2798
msgid "Sales Order"
msgstr ""
@@ -1438,8 +1439,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1023
-#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199
+#: build/templates/build/detail.html:49 order/models.py:1027
+#: templates/js/translated/order.js:1644 templates/js/translated/order.js:2393
msgid "Destination"
msgstr ""
@@ -1452,18 +1453,18 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:165
+#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1215
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843
-#: templates/js/translated/stock.js:2734
+#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1839
+#: templates/js/translated/stock.js:2730
#: templates/js/translated/table_filters.js:159
#: templates/js/translated/table_filters.js:250
msgid "Batch"
msgstr ""
#: build/templates/build/detail.html:126
-#: order/templates/order/order_base.html:152
+#: order/templates/order/order_base.html:158
#: order/templates/order/sales_order_base.html:158
#: templates/js/translated/build.js:2554
msgid "Created"
@@ -1516,7 +1517,7 @@ msgstr ""
#: build/templates/build/detail.html:187
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:85
-#: part/templates/part/category.html:183 templates/js/translated/order.js:1083
+#: part/templates/part/category.html:183 templates/js/translated/order.js:1177
msgid "Order Parts"
msgstr ""
@@ -1851,7 +1852,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:951 part/models.py:2465 report/models.py:158
+#: common/models.py:951 part/models.py:2473 report/models.py:158
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:484
msgid "Template"
@@ -1861,7 +1862,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446
+#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1454
#: templates/js/translated/table_filters.js:176
#: templates/js/translated/table_filters.js:447
msgid "Assembly"
@@ -2275,349 +2276,349 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1342 common/models.py:1658
+#: common/models.py:1344 common/models.py:1662
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1364
+#: common/models.py:1366
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1365
+#: common/models.py:1367
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1371
+#: common/models.py:1373
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1372
+#: common/models.py:1374
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1378
+#: common/models.py:1380
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1379
+#: common/models.py:1381
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1385
+#: common/models.py:1387
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1386
+#: common/models.py:1388
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1392
+#: common/models.py:1394
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1393
+#: common/models.py:1395
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1399
+#: common/models.py:1401
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1400
+#: common/models.py:1402
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1406
+#: common/models.py:1408
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1407
+#: common/models.py:1409
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1413
+#: common/models.py:1415
msgid "Show low stock"
msgstr ""
-#: common/models.py:1414
+#: common/models.py:1416
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1420
+#: common/models.py:1422
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1421
+#: common/models.py:1423
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1427
+#: common/models.py:1429
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1430
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1434
+#: common/models.py:1436
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1435
+#: common/models.py:1437
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1441
+#: common/models.py:1443
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1442
+#: common/models.py:1444
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1448
+#: common/models.py:1450
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1449
+#: common/models.py:1451
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1455
+#: common/models.py:1457
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1456
+#: common/models.py:1458
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1462
+#: common/models.py:1464
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1463
+#: common/models.py:1465
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1469
+#: common/models.py:1471
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1470
+#: common/models.py:1472
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1476
+#: common/models.py:1478
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1477
+#: common/models.py:1479
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1483
+#: common/models.py:1485
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1484
+#: common/models.py:1486
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1490
+#: common/models.py:1492
msgid "Inline label display"
msgstr ""
-#: common/models.py:1491
+#: common/models.py:1493
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1499
msgid "Inline report display"
msgstr ""
-#: common/models.py:1498
+#: common/models.py:1500
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1506
msgid "Search Parts"
msgstr ""
-#: common/models.py:1505
+#: common/models.py:1507
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1513
msgid "Seach Supplier Parts"
msgstr ""
-#: common/models.py:1512
+#: common/models.py:1514
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1520
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:1519
+#: common/models.py:1521
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:1525
+#: common/models.py:1527
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1526
+#: common/models.py:1528
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1532
+#: common/models.py:1534
msgid "Search Categories"
msgstr ""
-#: common/models.py:1533
+#: common/models.py:1535
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1539
+#: common/models.py:1541
msgid "Search Stock"
msgstr ""
-#: common/models.py:1540
+#: common/models.py:1542
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1546
+#: common/models.py:1548
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1547
+#: common/models.py:1549
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1553
+#: common/models.py:1555
msgid "Search Locations"
msgstr ""
-#: common/models.py:1554
+#: common/models.py:1556
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1560
+#: common/models.py:1562
msgid "Search Companies"
msgstr ""
-#: common/models.py:1561
+#: common/models.py:1563
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1567
+#: common/models.py:1569
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1568
+#: common/models.py:1570
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1574
+#: common/models.py:1576
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1575
+#: common/models.py:1577
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1581
+#: common/models.py:1583
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1582
+#: common/models.py:1584
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1588
+#: common/models.py:1590
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1591
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1595
+#: common/models.py:1597
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1598
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1602
+#: common/models.py:1604
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1605
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1609
+#: common/models.py:1611
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1610
+#: common/models.py:1612
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1616
+#: common/models.py:1618
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1617
+#: common/models.py:1619
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1623
+#: common/models.py:1625
msgid "Date Format"
msgstr ""
-#: common/models.py:1624
+#: common/models.py:1626
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1638 part/templates/part/detail.html:41
+#: common/models.py:1640 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1641
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1698
+#: common/models.py:1702
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1705 company/serializers.py:366
-#: company/templates/company/supplier_part.html:284 order/models.py:938
-#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181
+#: common/models.py:1709 company/serializers.py:372
+#: company/templates/company/supplier_part.html:296 order/models.py:942
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:2210
msgid "Price"
msgstr ""
-#: common/models.py:1706
+#: common/models.py:1710
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1866 common/models.py:2044
+#: common/models.py:1870 common/models.py:2048
msgid "Endpoint"
msgstr ""
-#: common/models.py:1867
+#: common/models.py:1871
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1876
+#: common/models.py:1880
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1881 part/models.py:921 plugin/models.py:100
+#: common/models.py:1885 part/models.py:921 plugin/models.py:100
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:104
#: templates/js/translated/table_filters.js:316
@@ -2625,67 +2626,67 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1886
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1896
+#: common/models.py:1900
msgid "Token"
msgstr ""
-#: common/models.py:1897
+#: common/models.py:1901
msgid "Token for access"
msgstr ""
-#: common/models.py:1904
+#: common/models.py:1908
msgid "Secret"
msgstr ""
-#: common/models.py:1905
+#: common/models.py:1909
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2011
+#: common/models.py:2015
msgid "Message ID"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2016
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2020
+#: common/models.py:2024
msgid "Host"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2025
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2032
msgid "Header"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2033
msgid "Header of this message"
msgstr ""
-#: common/models.py:2035
+#: common/models.py:2039
msgid "Body"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2040
msgid "Body of this message"
msgstr ""
-#: common/models.py:2045
+#: common/models.py:2049
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2054
msgid "Worked on"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2055
msgid "Was the work on this message finished?"
msgstr ""
@@ -2747,7 +2748,7 @@ msgstr ""
#: company/models.py:105 company/templates/company/company_base.html:100
#: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:413
+#: templates/js/translated/company.js:448
msgid "Website"
msgstr ""
@@ -2824,7 +2825,7 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:148 company/serializers.py:372
+#: company/models.py:148 company/serializers.py:378
#: company/templates/company/company_base.html:106 part/serializers.py:153
#: part/serializers.py:184 stock/serializers.py:178
msgid "Currency"
@@ -2834,24 +2835,24 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:248 company/models.py:481 stock/models.py:598
+#: company/models.py:248 company/models.py:482 stock/models.py:598
#: stock/serializers.py:85 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:542
msgid "Base Part"
msgstr ""
-#: company/models.py:252 company/models.py:485
+#: company/models.py:252 company/models.py:486
msgid "Select part"
msgstr ""
#: company/models.py:263 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:124
-#: stock/templates/stock/item_base.html:207
-#: templates/js/translated/company.js:397
-#: templates/js/translated/company.js:498
-#: templates/js/translated/company.js:633
-#: templates/js/translated/company.js:919 templates/js/translated/part.js:236
+#: company/templates/company/supplier_part.html:129
+#: stock/templates/stock/item_base.html:210
+#: templates/js/translated/company.js:432
+#: templates/js/translated/company.js:533
+#: templates/js/translated/company.js:668
+#: templates/js/translated/company.js:956 templates/js/translated/part.js:236
#: templates/js/translated/table_filters.js:419
msgid "Manufacturer"
msgstr ""
@@ -2861,12 +2862,12 @@ msgid "Select manufacturer"
msgstr ""
#: company/models.py:270 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:132
-#: templates/js/translated/company.js:269
-#: templates/js/translated/company.js:497
-#: templates/js/translated/company.js:649
-#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077
-#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027
+#: company/templates/company/supplier_part.html:137
+#: templates/js/translated/company.js:304
+#: templates/js/translated/company.js:532
+#: templates/js/translated/company.js:684
+#: templates/js/translated/company.js:975 templates/js/translated/order.js:2239
+#: templates/js/translated/part.js:247 templates/js/translated/part.js:1025
msgid "MPN"
msgstr ""
@@ -2882,10 +2883,10 @@ msgstr ""
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:328 company/models.py:352 company/models.py:504
+#: company/models.py:328 company/models.py:352 company/models.py:505
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:220
msgid "Manufacturer Part"
msgstr ""
@@ -2895,8 +2896,8 @@ msgstr ""
#: company/models.py:365
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2095 templates/js/translated/company.js:546
-#: templates/js/translated/company.js:764 templates/js/translated/part.js:849
+#: stock/models.py:2095 templates/js/translated/company.js:581
+#: templates/js/translated/company.js:799 templates/js/translated/part.js:847
#: templates/js/translated/stock.js:1360
msgid "Value"
msgstr ""
@@ -2905,10 +2906,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:372 part/models.py:888 part/models.py:2425
+#: company/models.py:372 part/models.py:888 part/models.py:2433
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:352
-#: templates/js/translated/company.js:770 templates/js/translated/part.js:855
+#: templates/js/translated/company.js:805 templates/js/translated/part.js:853
msgid "Units"
msgstr ""
@@ -2916,106 +2917,119 @@ msgstr ""
msgid "Parameter units"
msgstr ""
-#: company/models.py:449
+#: company/models.py:450
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:491 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:108 order/models.py:258
-#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:224
+#: company/models.py:492 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:113 order/models.py:258
+#: order/templates/order/order_base.html:121 part/bom.py:237 part/bom.py:265
+#: stock/templates/stock/item_base.html:227
#: templates/email/overdue_purchase_order.html:16
-#: templates/js/translated/company.js:268
-#: templates/js/translated/company.js:401
-#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813
-#: templates/js/translated/part.js:217 templates/js/translated/part.js:995
+#: templates/js/translated/company.js:303
+#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:929 templates/js/translated/order.js:1975
+#: templates/js/translated/part.js:217 templates/js/translated/part.js:993
#: templates/js/translated/table_filters.js:423
msgid "Supplier"
msgstr ""
-#: company/models.py:492 templates/js/translated/part.js:218
+#: company/models.py:493 templates/js/translated/part.js:218
msgid "Select supplier"
msgstr ""
-#: company/models.py:497 company/templates/company/supplier_part.html:118
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267
-#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228
-#: templates/js/translated/part.js:1013
+#: company/models.py:498 company/templates/company/supplier_part.html:123
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:302
+#: templates/js/translated/order.js:2226 templates/js/translated/part.js:228
+#: templates/js/translated/part.js:1011
msgid "SKU"
msgstr ""
-#: company/models.py:498 templates/js/translated/part.js:229
+#: company/models.py:499 templates/js/translated/part.js:229
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:505
+#: company/models.py:506
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:511
+#: company/models.py:512
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:517
+#: company/models.py:518
msgid "Supplier part description"
msgstr ""
-#: company/models.py:522 company/templates/company/supplier_part.html:146
-#: part/models.py:2666 part/templates/part/upload_bom.html:59
+#: company/models.py:523 company/templates/company/supplier_part.html:158
+#: part/models.py:2674 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399
msgid "Note"
msgstr ""
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "base cost"
msgstr ""
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:528 company/templates/company/supplier_part.html:139
-#: stock/models.py:624 stock/templates/stock/item_base.html:240
-#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976
+#: company/models.py:529 company/templates/company/supplier_part.html:144
+#: stock/models.py:624 stock/templates/stock/item_base.html:243
+#: templates/js/translated/company.js:991 templates/js/translated/stock.js:1972
msgid "Packaging"
msgstr ""
-#: company/models.py:528
+#: company/models.py:529
msgid "Part packaging"
msgstr ""
-#: company/models.py:530 part/models.py:1783
+#: company/models.py:532 company/serializers.py:242
+#: company/templates/company/supplier_part.html:151
+#: templates/js/translated/company.js:996 templates/js/translated/order.js:820
+#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:2270 templates/js/translated/order.js:2287
+#: templates/js/translated/part.js:1043 templates/js/translated/part.js:1095
+msgid "Pack Quantity"
+msgstr ""
+
+#: company/models.py:533
+msgid "Unit quantity supplied in a single pack"
+msgstr ""
+
+#: company/models.py:539 part/models.py:1783
msgid "multiple"
msgstr ""
-#: company/models.py:530
+#: company/models.py:539
msgid "Order multiple"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part.html:94
+#: company/models.py:547 company/templates/company/supplier_part.html:99
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823
-#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979
-#: templates/js/translated/part.js:600 templates/js/translated/part.js:603
+#: templates/js/translated/bom.js:915 templates/js/translated/build.js:1823
+#: templates/js/translated/build.js:2686 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:601
#: templates/js/translated/table_filters.js:186
msgid "Available"
msgstr ""
-#: company/models.py:539
+#: company/models.py:548
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:543
+#: company/models.py:552
msgid "Availability Updated"
msgstr ""
-#: company/models.py:544
+#: company/models.py:553
msgid "Date of last update of availability data"
msgstr ""
-#: company/models.py:672
+#: company/models.py:681
msgid "last updated"
msgstr ""
@@ -3029,12 +3043,12 @@ msgstr ""
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386
+#: templates/InvenTree/search.html:179 templates/js/translated/company.js:421
msgid "Company"
msgstr ""
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:624
+#: templates/js/translated/order.js:689
msgid "Create Purchase Order"
msgstr ""
@@ -3047,7 +3061,7 @@ msgid "Edit company information"
msgstr ""
#: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:329
+#: templates/js/translated/company.js:364
msgid "Edit Company"
msgstr ""
@@ -3070,13 +3084,13 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:86 order/models.py:637
+#: company/templates/company/company_base.html:86 order/models.py:641
#: order/templates/order/sales_order_base.html:116 stock/models.py:643
#: stock/models.py:644 stock/serializers.py:809
-#: stock/templates/stock/item_base.html:396
+#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
-#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619
-#: templates/js/translated/stock.js:2559
+#: templates/js/translated/company.js:428 templates/js/translated/order.js:2813
+#: templates/js/translated/stock.js:2555
#: templates/js/translated/table_filters.js:427
msgid "Customer"
msgstr ""
@@ -3211,23 +3225,23 @@ msgid "Manufacturers"
msgstr ""
#: company/templates/company/manufacturer_part.html:35
-#: company/templates/company/supplier_part.html:186
+#: company/templates/company/supplier_part.html:198
#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80
msgid "Order part"
msgstr ""
#: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:681
+#: templates/js/translated/company.js:716
msgid "Edit manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:682
+#: templates/js/translated/company.js:717
msgid "Delete manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:65
-#: company/templates/company/supplier_part.html:77
+#: company/templates/company/supplier_part.html:82
msgid "Internal Part"
msgstr ""
@@ -3250,8 +3264,8 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:371 part/templates/part/detail.html:401
-#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34
-#: users/models.py:220
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:34
+#: users/models.py:222
msgid "Delete"
msgstr ""
@@ -3296,9 +3310,9 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:607
-#: stock/templates/stock/item_base.html:233
-#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041
-#: templates/js/translated/stock.js:1933
+#: stock/templates/stock/item_base.html:236
+#: templates/js/translated/company.js:945 templates/js/translated/order.js:1135
+#: templates/js/translated/stock.js:1929
msgid "Supplier Part"
msgstr ""
@@ -3308,7 +3322,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:40
#: company/templates/company/supplier_part.html:41
-#: company/templates/company/supplier_part.html:187
+#: company/templates/company/supplier_part.html:199
#: part/templates/part/detail.html:88
msgid "Order Part"
msgstr ""
@@ -3320,81 +3334,87 @@ msgstr ""
#: company/templates/company/supplier_part.html:48
#: company/templates/company/supplier_part.html:49
-#: templates/js/translated/company.js:212
+#: templates/js/translated/company.js:247
msgid "Edit Supplier Part"
msgstr ""
#: company/templates/company/supplier_part.html:53
+#: company/templates/company/supplier_part.html:54
+#: templates/js/translated/company.js:222
+msgid "Duplicate Supplier Part"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:58
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:54
+#: company/templates/company/supplier_part.html:59
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:112
+#: company/templates/company/supplier_part.html:117
msgid "No supplier information available"
msgstr ""
-#: company/templates/company/supplier_part.html:165
+#: company/templates/company/supplier_part.html:177
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr ""
-#: company/templates/company/supplier_part.html:168
+#: company/templates/company/supplier_part.html:180
#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181
msgid "Create new stock item"
msgstr ""
-#: company/templates/company/supplier_part.html:169
+#: company/templates/company/supplier_part.html:181
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182
#: templates/js/translated/stock.js:435
msgid "New Stock Item"
msgstr ""
-#: company/templates/company/supplier_part.html:182
+#: company/templates/company/supplier_part.html:194
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr ""
-#: company/templates/company/supplier_part.html:207
+#: company/templates/company/supplier_part.html:219
#: part/templates/part/prices.html:10
msgid "Pricing Information"
msgstr ""
-#: company/templates/company/supplier_part.html:212
-#: company/templates/company/supplier_part.html:326
-#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253
+#: company/templates/company/supplier_part.html:224
+#: company/templates/company/supplier_part.html:338
+#: part/templates/part/prices.html:276 templates/js/translated/part.js:2282
msgid "Add Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:250
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:252
-#: templates/js/translated/part.js:2263
+#: company/templates/company/supplier_part.html:264
+#: templates/js/translated/part.js:2292
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:266
-#: templates/js/translated/part.js:2277
+#: company/templates/company/supplier_part.html:278
+#: templates/js/translated/part.js:2306
msgid "Edit Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:291
+#: company/templates/company/supplier_part.html:303
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part.html:292
+#: company/templates/company/supplier_part.html:304
msgid "Delete price break"
msgstr ""
-#: company/templates/company/supplier_part.html:301
+#: company/templates/company/supplier_part.html:313
msgid "Last updated"
msgstr ""
-#: company/templates/company/supplier_part.html:382
+#: company/templates/company/supplier_part.html:394
msgid "Update Part Availability"
msgstr ""
@@ -3404,8 +3424,8 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313
-#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959
+#: templates/js/translated/part.js:749 templates/js/translated/part.js:1334
+#: templates/js/translated/part.js:1495 templates/js/translated/stock.js:959
#: templates/js/translated/stock.js:1754 templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -3432,7 +3452,7 @@ msgstr ""
#: stock/templates/stock/location.html:178
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2436 users/models.py:40
+#: templates/js/translated/stock.js:2432 users/models.py:40
msgid "Stock Items"
msgstr ""
@@ -3534,7 +3554,7 @@ msgstr ""
msgid "Order description"
msgstr ""
-#: order/models.py:84 order/models.py:1246
+#: order/models.py:84 order/models.py:1250
msgid "Link to external page"
msgstr ""
@@ -3550,11 +3570,11 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:241 order/models.py:624
+#: order/models.py:241 order/models.py:628
msgid "Order reference"
msgstr ""
-#: order/models.py:249 order/models.py:642
+#: order/models.py:249 order/models.py:646
msgid "Purchase order status"
msgstr ""
@@ -3562,8 +3582,8 @@ msgstr ""
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:262 order/templates/order/order_base.html:127
-#: templates/js/translated/order.js:1822
+#: order/models.py:262 order/templates/order/order_base.html:133
+#: templates/js/translated/order.js:1984
msgid "Supplier Reference"
msgstr ""
@@ -3603,245 +3623,245 @@ msgstr ""
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:638
+#: order/models.py:642
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer Reference "
msgstr ""
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:649
+#: order/models.py:653
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:652 order/models.py:1204
-#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828
+#: order/models.py:656 order/models.py:1208
+#: templates/js/translated/order.js:2860 templates/js/translated/order.js:3022
msgid "Shipment Date"
msgstr ""
-#: order/models.py:659
+#: order/models.py:663
msgid "shipped by"
msgstr ""
-#: order/models.py:714
+#: order/models.py:718
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:718
+#: order/models.py:722
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:721
+#: order/models.py:725 templates/js/translated/order.js:419
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:724
+#: order/models.py:728
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:898
+#: order/models.py:902
msgid "Item quantity"
msgstr ""
-#: order/models.py:904
+#: order/models.py:908
msgid "Line item reference"
msgstr ""
-#: order/models.py:906
+#: order/models.py:910
msgid "Line item notes"
msgstr ""
-#: order/models.py:911
+#: order/models.py:915
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:929
+#: order/models.py:933
msgid "Context"
msgstr ""
-#: order/models.py:930
+#: order/models.py:934
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:939
+#: order/models.py:943
msgid "Unit price"
msgstr ""
-#: order/models.py:969
+#: order/models.py:973
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:977
+#: order/models.py:981
msgid "deleted"
msgstr ""
-#: order/models.py:983 order/models.py:1063 order/models.py:1104
-#: order/models.py:1198 order/models.py:1330
-#: templates/js/translated/order.js:3284
+#: order/models.py:987 order/models.py:1067 order/models.py:1108
+#: order/models.py:1202 order/models.py:1334
+#: templates/js/translated/order.js:3478
msgid "Order"
msgstr ""
-#: order/models.py:984 order/models.py:1063
+#: order/models.py:988 order/models.py:1067
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:179
+#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
-#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042
-#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972
-#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540
+#: templates/js/translated/order.js:619 templates/js/translated/order.js:1136
+#: templates/js/translated/order.js:1959 templates/js/translated/part.js:970
+#: templates/js/translated/stock.js:1909 templates/js/translated/stock.js:2536
msgid "Purchase Order"
msgstr ""
-#: order/models.py:1002
+#: order/models.py:1006
msgid "Supplier part"
msgstr ""
-#: order/models.py:1009 order/templates/order/order_base.html:172
-#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105
+#: order/models.py:1013 order/templates/order/order_base.html:178
+#: templates/js/translated/order.js:1641 templates/js/translated/order.js:2373
+#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1125
#: templates/js/translated/table_filters.js:338
msgid "Received"
msgstr ""
-#: order/models.py:1010
+#: order/models.py:1014
msgid "Number of items received"
msgstr ""
-#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734
-#: stock/serializers.py:169 stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1964
+#: order/models.py:1021 part/templates/part/prices.html:181 stock/models.py:734
+#: stock/serializers.py:169 stock/templates/stock/item_base.html:189
+#: templates/js/translated/stock.js:1960
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1018
+#: order/models.py:1022
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1026
+#: order/models.py:1030
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1092
+#: order/models.py:1096
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1097
+#: order/models.py:1101
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1123 part/templates/part/part_pricing.html:115
+#: order/models.py:1127 part/templates/part/part_pricing.html:115
#: part/templates/part/prices.html:121 part/templates/part/prices.html:290
msgid "Sale Price"
msgstr ""
-#: order/models.py:1124
+#: order/models.py:1128
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1129
+#: order/models.py:1133
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1205
+#: order/models.py:1209
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1212
+#: order/models.py:1216
msgid "Checked By"
msgstr ""
-#: order/models.py:1213
+#: order/models.py:1217
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1220 order/models.py:1405 order/serializers.py:1170
-#: order/serializers.py:1294 templates/js/translated/model_renderers.js:314
+#: order/models.py:1224 order/models.py:1409 order/serializers.py:1224
+#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314
msgid "Shipment"
msgstr ""
-#: order/models.py:1221
+#: order/models.py:1225
msgid "Shipment number"
msgstr ""
-#: order/models.py:1225
+#: order/models.py:1229
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1231
+#: order/models.py:1235
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1232
+#: order/models.py:1236
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1239
+#: order/models.py:1243
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1240
+#: order/models.py:1244
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1258
+#: order/models.py:1262
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1261
+#: order/models.py:1265
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1364 order/models.py:1366
+#: order/models.py:1368 order/models.py:1370
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1370
+#: order/models.py:1374
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1372
+#: order/models.py:1376
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1375
+#: order/models.py:1379
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1385 order/serializers.py:1066
+#: order/models.py:1389 order/serializers.py:1086
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1388
+#: order/models.py:1392
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1389
+#: order/models.py:1393
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1397
+#: order/models.py:1401
msgid "Line"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1410
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1419 templates/js/translated/notification.js:55
+#: order/models.py:1423 templates/js/translated/notification.js:55
msgid "Item"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1424
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1423
+#: order/models.py:1427
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3853,111 +3873,119 @@ msgstr ""
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:294
+#: order/serializers.py:209 order/serializers.py:1104
+msgid "Allow order to be closed with incomplete line items"
+msgstr ""
+
+#: order/serializers.py:220 order/serializers.py:1115
+msgid "Order has incomplete line items"
+msgstr ""
+
+#: order/serializers.py:311
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:318
+#: order/serializers.py:335
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:354
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:342
+#: order/serializers.py:359
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:348
+#: order/serializers.py:365
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:349
+#: order/serializers.py:366
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:413 order/serializers.py:1138
+#: order/serializers.py:430 order/serializers.py:1192
msgid "Line Item"
msgstr ""
-#: order/serializers.py:419
+#: order/serializers.py:436
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:429 order/serializers.py:533
+#: order/serializers.py:446 order/serializers.py:553
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:448 templates/js/translated/order.js:1354
+#: order/serializers.py:465 templates/js/translated/order.js:1497
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:456 templates/js/translated/order.js:1365
+#: order/serializers.py:473 templates/js/translated/order.js:1508
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:469
+#: order/serializers.py:486
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:470
+#: order/serializers.py:487
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:484
+#: order/serializers.py:501
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:507
+#: order/serializers.py:527
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:549
+#: order/serializers.py:569
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:566
+#: order/serializers.py:586
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:577
+#: order/serializers.py:597
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:883
+#: order/serializers.py:903
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:964
+#: order/serializers.py:984
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1027 order/serializers.py:1147
+#: order/serializers.py:1047 order/serializers.py:1201
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1049
+#: order/serializers.py:1069
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1160
+#: order/serializers.py:1214
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1182 order/serializers.py:1302
+#: order/serializers.py:1236 order/serializers.py:1356
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1185 order/serializers.py:1305
+#: order/serializers.py:1239 order/serializers.py:1359
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1235
+#: order/serializers.py:1289
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1245
+#: order/serializers.py:1299
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3993,83 +4021,83 @@ msgstr ""
msgid "Order actions"
msgstr ""
-#: order/templates/order/order_base.html:45
+#: order/templates/order/order_base.html:46
#: order/templates/order/sales_order_base.html:58
msgid "Edit order"
msgstr ""
-#: order/templates/order/order_base.html:47
+#: order/templates/order/order_base.html:50
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr ""
-#: order/templates/order/order_base.html:50
+#: order/templates/order/order_base.html:55
msgid "Duplicate order"
msgstr ""
-#: order/templates/order/order_base.html:55
+#: order/templates/order/order_base.html:61
msgid "Place order"
msgstr ""
-#: order/templates/order/order_base.html:59
+#: order/templates/order/order_base.html:65
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:61
+#: order/templates/order/order_base.html:67
#: order/templates/order/purchase_order_detail.html:30
msgid "Receive Items"
msgstr ""
-#: order/templates/order/order_base.html:63
+#: order/templates/order/order_base.html:69
msgid "Mark order as complete"
msgstr ""
-#: order/templates/order/order_base.html:65
+#: order/templates/order/order_base.html:71
#: order/templates/order/sales_order_base.html:68
msgid "Complete Order"
msgstr ""
-#: order/templates/order/order_base.html:87
+#: order/templates/order/order_base.html:93
#: order/templates/order/sales_order_base.html:80
msgid "Order Reference"
msgstr ""
-#: order/templates/order/order_base.html:92
+#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:85
msgid "Order Description"
msgstr ""
-#: order/templates/order/order_base.html:97
+#: order/templates/order/order_base.html:103
#: order/templates/order/sales_order_base.html:90
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:120
+#: order/templates/order/order_base.html:126
msgid "No suppplier information available"
msgstr ""
-#: order/templates/order/order_base.html:133
+#: order/templates/order/order_base.html:139
#: order/templates/order/sales_order_base.html:129
msgid "Completed Line Items"
msgstr ""
-#: order/templates/order/order_base.html:139
+#: order/templates/order/order_base.html:145
#: order/templates/order/sales_order_base.html:135
#: order/templates/order/sales_order_base.html:145
msgid "Incomplete"
msgstr ""
-#: order/templates/order/order_base.html:158
+#: order/templates/order/order_base.html:164
#: report/templates/report/inventree_build_order_base.html:121
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:186
+#: order/templates/order/order_base.html:192
#: order/templates/order/sales_order_base.html:190
msgid "Total cost"
msgstr ""
-#: order/templates/order/order_base.html:190
+#: order/templates/order/order_base.html:196
#: order/templates/order/sales_order_base.html:194
msgid "Total cost could not be calculated"
msgstr ""
@@ -4102,8 +4130,8 @@ msgstr ""
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463
#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015
-#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443
-#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625
+#: templates/js/translated/order.js:1084 templates/js/translated/order.js:1586
+#: templates/js/translated/order.js:3097 templates/js/translated/stock.js:625
#: templates/js/translated/stock.js:793
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
@@ -4139,7 +4167,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:26
#: order/templates/order/sales_order_detail.html:22
#: order/templates/order/sales_order_detail.html:255
-#: templates/js/translated/order.js:663
+#: templates/js/translated/order.js:728
msgid "Add Line Item"
msgstr ""
@@ -4167,7 +4195,7 @@ msgstr ""
msgid "Order Notes"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:228
+#: order/templates/order/purchase_order_detail.html:232
msgid "Add Order Line"
msgstr ""
@@ -4185,12 +4213,12 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:231
+#: templates/js/translated/order.js:232
msgid "Complete Shipments"
msgstr ""
#: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:258
+#: templates/js/translated/order.js:397
msgid "Complete Sales Order"
msgstr ""
@@ -4199,7 +4227,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2632
+#: templates/js/translated/order.js:2826
msgid "Customer Reference"
msgstr ""
@@ -4223,7 +4251,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:72
-#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1116
#: templates/js/translated/build.js:1923
msgid "Actions"
msgstr ""
@@ -4308,14 +4336,14 @@ msgid "Total Stock"
msgstr ""
#: part/bom.py:129 part/templates/part/part_base.html:189
-#: templates/js/translated/order.js:3724
+#: templates/js/translated/order.js:3918
msgid "Available Stock"
msgstr ""
#: part/bom.py:130 part/templates/part/part_base.html:207
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853
-#: templates/js/translated/part.js:590 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503
+#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1853
+#: templates/js/translated/part.js:588 templates/js/translated/part.js:608
+#: templates/js/translated/part.js:1337 templates/js/translated/part.js:1520
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr ""
@@ -4344,7 +4372,7 @@ msgstr ""
msgid "Icon (optional)"
msgstr ""
-#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16
+#: part/models.py:122 part/models.py:2516 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -4361,7 +4389,7 @@ msgstr ""
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146
+#: templates/js/translated/part.js:2004 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr ""
@@ -4391,7 +4419,7 @@ msgstr ""
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:745 part/models.py:2562
+#: part/models.py:745 part/models.py:2570
msgid "Part name"
msgstr ""
@@ -4424,11 +4452,11 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:783 part/models.py:2257 part/models.py:2507
+#: part/models.py:783 part/models.py:2265 part/models.py:2515
#: part/templates/part/part_base.html:257
#: templates/InvenTree/settings/settings.html:232
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688
+#: templates/js/translated/part.js:1477 templates/js/translated/part.js:1717
msgid "Category"
msgstr ""
@@ -4437,7 +4465,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:789 part/templates/part/part_base.html:266
-#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:1430
#: templates/js/translated/stock.js:1726
msgid "IPN"
msgstr ""
@@ -4451,7 +4479,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:797 part/templates/part/part_base.html:273
-#: report/models.py:171 templates/js/translated/part.js:743
+#: report/models.py:171 templates/js/translated/part.js:741
msgid "Revision"
msgstr ""
@@ -4543,245 +4571,245 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2304
+#: part/models.py:2312
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2321
+#: part/models.py:2329
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2341 templates/js/translated/part.js:2026
+#: part/models.py:2349 templates/js/translated/part.js:2055
#: templates/js/translated/stock.js:1340
msgid "Test Name"
msgstr ""
-#: part/models.py:2342
+#: part/models.py:2350
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2347
+#: part/models.py:2355
msgid "Test Description"
msgstr ""
-#: part/models.py:2348
+#: part/models.py:2356
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2353 templates/js/translated/part.js:2035
+#: part/models.py:2361 templates/js/translated/part.js:2064
#: templates/js/translated/table_filters.js:302
msgid "Required"
msgstr ""
-#: part/models.py:2354
+#: part/models.py:2362
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2359 templates/js/translated/part.js:2043
+#: part/models.py:2367 templates/js/translated/part.js:2072
msgid "Requires Value"
msgstr ""
-#: part/models.py:2360
+#: part/models.py:2368
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2365 templates/js/translated/part.js:2050
+#: part/models.py:2373 templates/js/translated/part.js:2079
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2366
+#: part/models.py:2374
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2374
+#: part/models.py:2382
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2410
+#: part/models.py:2418
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2418
+#: part/models.py:2426
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2433
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2430
+#: part/models.py:2438
msgid "Parameter description"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2471
msgid "Parent Part"
msgstr ""
-#: part/models.py:2465 part/models.py:2513 part/models.py:2514
+#: part/models.py:2473 part/models.py:2521 part/models.py:2522
#: templates/InvenTree/settings/settings.html:227
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Data"
msgstr ""
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2518 templates/InvenTree/settings/settings.html:236
+#: part/models.py:2526 templates/InvenTree/settings/settings.html:236
msgid "Default Value"
msgstr ""
-#: part/models.py:2519
+#: part/models.py:2527
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2554
+#: part/models.py:2562
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2557 templates/js/translated/model_renderers.js:212
+#: part/models.py:2565 templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr ""
-#: part/models.py:2558
+#: part/models.py:2566
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2561
+#: part/models.py:2569
msgid "Part Name"
msgstr ""
-#: part/models.py:2565
+#: part/models.py:2573
msgid "Part IPN"
msgstr ""
-#: part/models.py:2566
+#: part/models.py:2574
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2569
+#: part/models.py:2577
msgid "Level"
msgstr ""
-#: part/models.py:2570
+#: part/models.py:2578
msgid "BOM level"
msgstr ""
-#: part/models.py:2639
+#: part/models.py:2647
msgid "Select parent part"
msgstr ""
-#: part/models.py:2647
+#: part/models.py:2655
msgid "Sub part"
msgstr ""
-#: part/models.py:2648
+#: part/models.py:2656
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2654
+#: part/models.py:2662
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2656 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997
+#: part/models.py:2664 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:876 templates/js/translated/bom.js:1005
#: templates/js/translated/table_filters.js:100
msgid "Optional"
msgstr ""
-#: part/models.py:2656
+#: part/models.py:2664
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2659 part/templates/part/upload_bom.html:55
+#: part/models.py:2667 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2660
+#: part/models.py:2668
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2671
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2666
+#: part/models.py:2674
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "Checksum"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2672 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1014
+#: part/models.py:2680 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:1022
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:96
msgid "Inherited"
msgstr ""
-#: part/models.py:2673
+#: part/models.py:2681
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2678 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1006
+#: part/models.py:2686 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:1014
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2679
+#: part/models.py:2687
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2757 stock/models.py:468
+#: part/models.py:2765 stock/models.py:468
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2766 part/models.py:2768
+#: part/models.py:2774 part/models.py:2776
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2873
+#: part/models.py:2881
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2902
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2915
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2923
msgid "Substitute part"
msgstr ""
-#: part/models.py:2930
+#: part/models.py:2938
msgid "Part 1"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Part 2"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2960
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:2956
+#: part/models.py:2964
msgid "Duplicate relationship already exists"
msgstr ""
@@ -5309,10 +5337,10 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:624
-#: templates/js/translated/company.js:884
+#: templates/js/translated/company.js:659
+#: templates/js/translated/company.js:920
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:654 templates/js/translated/part.js:731
+#: templates/js/translated/part.js:652 templates/js/translated/part.js:729
msgid "Inactive"
msgstr ""
@@ -5327,28 +5355,28 @@ msgid "This part is a variant of %(link)s"
msgstr ""
#: part/templates/part/part_base.html:194
-#: templates/js/translated/company.js:974
+#: templates/js/translated/company.js:1027
#: templates/js/translated/table_filters.js:201
msgid "In Stock"
msgstr ""
#: part/templates/part/part_base.html:215
-#: stock/templates/stock/item_base.html:379
+#: stock/templates/stock/item_base.html:382
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:224
-#: stock/templates/stock/item_base.html:372
+#: stock/templates/stock/item_base.html:375
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1043
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320
-#: templates/js/translated/part.js:1510
+#: part/templates/part/part_base.html:238 templates/js/translated/part.js:591
+#: templates/js/translated/part.js:611 templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1527
msgid "Building"
msgstr ""
@@ -5361,7 +5389,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:328
+#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
@@ -5400,7 +5428,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:989
+#: templates/js/translated/bom.js:997
msgid "No supplier pricing available"
msgstr ""
@@ -5439,7 +5467,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:53
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468
+#: templates/js/translated/order.js:2001 templates/js/translated/stock.js:2464
msgid "Date"
msgstr ""
@@ -5495,7 +5523,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983
+#: part/templates/part/prices.html:160 templates/js/translated/bom.js:991
msgid "Supplier Cost"
msgstr ""
@@ -5533,8 +5561,8 @@ msgstr ""
msgid "No sale pice history available for this part."
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616
-#: templates/js/translated/part.js:1308
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:614
+#: templates/js/translated/part.js:1329 templates/js/translated/part.js:1331
msgid "No Stock"
msgstr ""
@@ -5735,19 +5763,19 @@ msgstr ""
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:186
+#: plugin/models.py:188
msgid "Plugin"
msgstr ""
-#: plugin/models.py:249
+#: plugin/models.py:253
msgid "Method"
msgstr ""
-#: plugin/plugin.py:251
+#: plugin/plugin.py:252
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:263
+#: plugin/plugin.py:264
msgid "No date found"
msgstr ""
@@ -5925,12 +5953,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:648 stock/templates/stock/item_base.html:317
+#: stock/models.py:648 stock/templates/stock/item_base.html:320
#: templates/js/translated/build.js:456 templates/js/translated/build.js:608
#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706
#: templates/js/translated/model_renderers.js:118
-#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403
-#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490
+#: templates/js/translated/order.js:121 templates/js/translated/order.js:3597
+#: templates/js/translated/order.js:3684 templates/js/translated/stock.js:490
msgid "Serial Number"
msgstr ""
@@ -5963,7 +5991,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780
-#: templates/js/translated/stock.js:2717
+#: templates/js/translated/stock.js:2713
msgid "Serial"
msgstr ""
@@ -5980,7 +6008,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
#: stock/models.py:89 stock/models.py:739
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:250
msgid "Owner"
msgstr ""
@@ -6046,7 +6074,7 @@ msgstr ""
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:631 stock/templates/stock/item_base.html:356
+#: stock/models.py:631 stock/templates/stock/item_base.html:359
msgid "Installed In"
msgstr ""
@@ -6086,8 +6114,8 @@ msgstr ""
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:706 stock/templates/stock/item_base.html:424
-#: templates/js/translated/stock.js:1883
+#: stock/models.py:706 stock/templates/stock/item_base.html:427
+#: templates/js/translated/stock.js:1879
msgid "Expiry Date"
msgstr ""
@@ -6379,7 +6407,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2857
msgid "Install Stock Item"
msgstr ""
@@ -6479,134 +6507,135 @@ msgstr ""
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:158
+#: stock/templates/stock/item_base.html:161
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:193
+#: stock/templates/stock/item_base.html:196
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:214
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:254
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/location.html:132
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:268
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:266
+#: stock/templates/stock/item_base.html:269
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:279
+#: stock/templates/stock/item_base.html:282
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:290
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:298
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:301
+#: stock/templates/stock/item_base.html:304
msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
msgstr ""
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:345
+#: stock/templates/stock/item_base.html:348
msgid "Available Quantity"
msgstr ""
-#: stock/templates/stock/item_base.html:389
+#: stock/templates/stock/item_base.html:392
#: templates/js/translated/build.js:1729
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:404
+#: stock/templates/stock/item_base.html:407
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#: templates/js/translated/table_filters.js:269
msgid "Expired"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:275
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:437
-#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899
+#: stock/templates/stock/item_base.html:440
+#: templates/js/translated/company.js:1038
+#: templates/js/translated/stock.js:1895
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:442
+#: stock/templates/stock/item_base.html:445
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:516
+#: stock/templates/stock/item_base.html:519
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:589
+#: stock/templates/stock/item_base.html:592
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:592
+#: stock/templates/stock/item_base.html:595
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:593
+#: stock/templates/stock/item_base.html:596
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:601
+#: stock/templates/stock/item_base.html:604
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:629
+#: stock/templates/stock/item_base.html:632
msgid "Return to Stock"
msgstr ""
@@ -6739,11 +6768,11 @@ msgstr ""
msgid "Refer to the error log in the admin interface for further details"
msgstr ""
-#: templates/503.html:11 templates/503.html:36
+#: templates/503.html:11 templates/503.html:34
msgid "Site is in Maintenance"
msgstr ""
-#: templates/503.html:42
+#: templates/503.html:40
msgid "The site is currently in maintenance and should be up again soon!"
msgstr ""
@@ -7509,7 +7538,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:644
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr ""
@@ -7728,7 +7757,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1481
+#: templates/js/translated/bom.js:1489
msgid "Required Quantity"
msgstr ""
@@ -7742,7 +7771,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2522
+#: templates/js/translated/part.js:2551
msgid "Minimum Quantity"
msgstr ""
@@ -7947,7 +7976,7 @@ msgstr ""
#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620
#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601
#: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003
-#: templates/js/translated/order.js:1085 templates/modals.html:15
+#: templates/js/translated/order.js:1179 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -7957,12 +7986,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145
+#: templates/js/translated/order.js:960 templates/js/translated/tables.js:145
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:867
+#: templates/js/translated/order.js:961
msgid "Select file format"
msgstr ""
@@ -8058,73 +8087,73 @@ msgstr ""
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857
-#: templates/js/translated/order.js:3738
+#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1857
+#: templates/js/translated/order.js:3932
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861
+#: templates/js/translated/bom.js:940 templates/js/translated/build.js:1861
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516
+#: templates/js/translated/bom.js:942 templates/js/translated/build.js:1863
+#: templates/js/translated/part.js:761 templates/js/translated/part.js:1533
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865
+#: templates/js/translated/bom.js:944 templates/js/translated/build.js:1865
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:954
+#: templates/js/translated/bom.js:962
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:969
+#: templates/js/translated/bom.js:977
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:976
+#: templates/js/translated/bom.js:984
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145
+#: templates/js/translated/bom.js:1033 templates/js/translated/bom.js:1153
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1052
+#: templates/js/translated/bom.js:1060
msgid "Including On Order"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1124
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1118
+#: templates/js/translated/bom.js:1126
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1120
+#: templates/js/translated/bom.js:1128
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284
+#: templates/js/translated/bom.js:1130 templates/js/translated/bom.js:1292
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1124
+#: templates/js/translated/bom.js:1132
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650
+#: templates/js/translated/bom.js:1228 templates/js/translated/build.js:1650
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789
+#: templates/js/translated/bom.js:1472 templates/js/translated/build.js:1789
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1486
+#: templates/js/translated/bom.js:1498
msgid "Inherited from parent BOM"
msgstr ""
@@ -8267,12 +8296,12 @@ msgid "No required tests for this build"
msgstr ""
#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697
-#: templates/js/translated/order.js:3438
+#: templates/js/translated/order.js:3632
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698
-#: templates/js/translated/order.js:3439
+#: templates/js/translated/order.js:3633
msgid "Delete stock allocation"
msgstr ""
@@ -8292,20 +8321,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745
+#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3939
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743
+#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3937
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127
-#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757
+#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3951
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837
+#: templates/js/translated/build.js:1930 templates/js/translated/order.js:4031
msgid "Build stock"
msgstr ""
@@ -8313,21 +8342,21 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830
+#: templates/js/translated/build.js:1937 templates/js/translated/order.js:4024
msgid "Allocate stock"
msgstr ""
#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965
+#: templates/js/translated/order.js:1007 templates/js/translated/order.js:3159
#: templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966
+#: templates/js/translated/build.js:1977 templates/js/translated/order.js:3160
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914
+#: templates/js/translated/build.js:2026 templates/js/translated/order.js:3108
msgid "Specify stock allocation quantity"
msgstr ""
@@ -8339,7 +8368,7 @@ msgstr ""
msgid "All selected parts have been fully allocated"
msgstr ""
-#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980
+#: templates/js/translated/build.js:2115 templates/js/translated/order.js:3174
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
@@ -8347,11 +8376,11 @@ msgstr ""
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077
+#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3271
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154
+#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3348
msgid "No matching stock items"
msgstr ""
@@ -8383,9 +8412,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401
-#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1422
+#: templates/js/translated/part.js:1948 templates/js/translated/stock.js:1686
+#: templates/js/translated/stock.js:2382
msgid "Select"
msgstr ""
@@ -8397,7 +8426,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647
+#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2643
msgid "No user information"
msgstr ""
@@ -8405,111 +8434,115 @@ msgstr ""
msgid "No parts allocated for"
msgstr ""
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:179
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:181
msgid "Add Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
msgid "Edit Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:167 templates/js/translated/order.js:511
+#: templates/js/translated/company.js:169 templates/js/translated/order.js:576
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:195 templates/js/translated/order.js:734
+#: templates/js/translated/company.js:197 templates/js/translated/order.js:828
msgid "Add Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:262
+#: templates/js/translated/company.js:297
msgid "All selected supplier parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:278
+#: templates/js/translated/company.js:313
msgid "Delete Supplier Parts"
msgstr ""
-#: templates/js/translated/company.js:350
+#: templates/js/translated/company.js:385
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:427
+#: templates/js/translated/company.js:462
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:471
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:451
+#: templates/js/translated/company.js:486
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:492
+#: templates/js/translated/company.js:527
msgid "All selected manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:507
+#: templates/js/translated/company.js:542
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:541
+#: templates/js/translated/company.js:576
msgid "All selected parameters will be deleted"
msgstr ""
-#: templates/js/translated/company.js:555
+#: templates/js/translated/company.js:590
msgid "Delete Parameters"
msgstr ""
-#: templates/js/translated/company.js:596
+#: templates/js/translated/company.js:631
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:616
-#: templates/js/translated/company.js:876 templates/js/translated/part.js:638
-#: templates/js/translated/part.js:723
+#: templates/js/translated/company.js:651
+#: templates/js/translated/company.js:912 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:721
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:620
-#: templates/js/translated/company.js:880 templates/js/translated/part.js:642
-#: templates/js/translated/part.js:727
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:916 templates/js/translated/part.js:640
+#: templates/js/translated/part.js:725
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:748 templates/js/translated/part.js:830
+#: templates/js/translated/company.js:783 templates/js/translated/part.js:828
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:785 templates/js/translated/part.js:872
+#: templates/js/translated/company.js:820 templates/js/translated/part.js:870
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:786 templates/js/translated/part.js:873
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:871
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:805 templates/js/translated/part.js:890
+#: templates/js/translated/company.js:840 templates/js/translated/part.js:888
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:816 templates/js/translated/part.js:902
+#: templates/js/translated/company.js:851 templates/js/translated/part.js:900
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:856
+#: templates/js/translated/company.js:891
msgid "No supplier parts found"
msgstr ""
-#: templates/js/translated/company.js:1002
+#: templates/js/translated/company.js:1032
+msgid "Availability"
+msgstr ""
+
+#: templates/js/translated/company.js:1055
msgid "Edit supplier part"
msgstr ""
-#: templates/js/translated/company.js:1003
+#: templates/js/translated/company.js:1056
msgid "Delete supplier part"
msgstr ""
@@ -8547,61 +8580,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:367 templates/js/translated/forms.js:382
-#: templates/js/translated/forms.js:396 templates/js/translated/forms.js:410
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:369
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:384
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:398
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:670
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:771
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1269 templates/modals.html:19
+#: templates/js/translated/forms.js:1274 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1702
+#: templates/js/translated/forms.js:1707
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1917 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2170
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2648
+#: templates/js/translated/forms.js:2653
msgid "Select Columns"
msgstr ""
@@ -8792,409 +8825,422 @@ msgstr ""
msgid "Notifications will load here"
msgstr ""
-#: templates/js/translated/order.js:96
+#: templates/js/translated/order.js:97
msgid "No stock items have been allocated to this shipment"
msgstr ""
-#: templates/js/translated/order.js:101
+#: templates/js/translated/order.js:102
msgid "The following stock items will be shipped"
msgstr ""
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:142
msgid "Complete Shipment"
msgstr ""
-#: templates/js/translated/order.js:161
+#: templates/js/translated/order.js:162
msgid "Confirm Shipment"
msgstr ""
-#: templates/js/translated/order.js:217
+#: templates/js/translated/order.js:218
msgid "No pending shipments found"
msgstr ""
-#: templates/js/translated/order.js:221
+#: templates/js/translated/order.js:222
msgid "No stock items have been allocated to pending shipments"
msgstr ""
-#: templates/js/translated/order.js:253
+#: templates/js/translated/order.js:254
msgid "Skip"
msgstr ""
-#: templates/js/translated/order.js:283
+#: templates/js/translated/order.js:284
msgid "Complete Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:289
+#: templates/js/translated/order.js:301 templates/js/translated/order.js:413
msgid "Mark this order as complete?"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:307
msgid "All line items have been received"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:312
msgid "This order has line items which have not been marked as received."
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:313 templates/js/translated/order.js:427
msgid "Completing this order means that the order and line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:324
+#: templates/js/translated/order.js:336
msgid "Cancel Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:329
+#: templates/js/translated/order.js:341
msgid "Are you sure you wish to cancel this purchase order?"
msgstr ""
-#: templates/js/translated/order.js:335
+#: templates/js/translated/order.js:347
msgid "This purchase order can not be cancelled"
msgstr ""
-#: templates/js/translated/order.js:358
+#: templates/js/translated/order.js:370
msgid "Issue Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:363
+#: templates/js/translated/order.js:375
msgid "After placing this purchase order, line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:385
+#: templates/js/translated/order.js:426
+msgid "This order has line items which have not been completed."
+msgstr ""
+
+#: templates/js/translated/order.js:450
msgid "Cancel Sales Order"
msgstr ""
-#: templates/js/translated/order.js:390
+#: templates/js/translated/order.js:455
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:444
+#: templates/js/translated/order.js:509
msgid "Create New Shipment"
msgstr ""
-#: templates/js/translated/order.js:469
+#: templates/js/translated/order.js:534
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:494
+#: templates/js/translated/order.js:559
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:555
+#: templates/js/translated/order.js:620
msgid "Select purchase order to duplicate"
msgstr ""
-#: templates/js/translated/order.js:562
+#: templates/js/translated/order.js:627
msgid "Duplicate Line Items"
msgstr ""
-#: templates/js/translated/order.js:563
+#: templates/js/translated/order.js:628
msgid "Duplicate all line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:570
+#: templates/js/translated/order.js:635
msgid "Duplicate Extra Lines"
msgstr ""
-#: templates/js/translated/order.js:571
+#: templates/js/translated/order.js:636
msgid "Duplicate extra line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:588
+#: templates/js/translated/order.js:653
msgid "Edit Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:605
+#: templates/js/translated/order.js:670
msgid "Duplication Options"
msgstr ""
-#: templates/js/translated/order.js:863
+#: templates/js/translated/order.js:957
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:914
+#: templates/js/translated/order.js:1008
msgid "At least one purchaseable part must be selected"
msgstr ""
-#: templates/js/translated/order.js:939
+#: templates/js/translated/order.js:1033
msgid "Quantity to order"
msgstr ""
-#: templates/js/translated/order.js:948
+#: templates/js/translated/order.js:1042
msgid "New supplier part"
msgstr ""
-#: templates/js/translated/order.js:966
+#: templates/js/translated/order.js:1060
msgid "New purchase order"
msgstr ""
-#: templates/js/translated/order.js:999
+#: templates/js/translated/order.js:1093
msgid "Add to purchase order"
msgstr ""
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1233
msgid "No matching supplier parts"
msgstr ""
-#: templates/js/translated/order.js:1123
+#: templates/js/translated/order.js:1252
msgid "No matching purchase orders"
msgstr ""
-#: templates/js/translated/order.js:1300
+#: templates/js/translated/order.js:1429
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1430
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420
+#: templates/js/translated/order.js:1450 templates/js/translated/order.js:1563
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431
+#: templates/js/translated/order.js:1456 templates/js/translated/order.js:1574
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1339
+#: templates/js/translated/order.js:1471
+msgid "Received Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:1482
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144
+#: templates/js/translated/order.js:1546 templates/js/translated/stock.js:2140
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:1494
+#: templates/js/translated/order.js:1639
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:1495
+#: templates/js/translated/order.js:1640
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:1497
+#: templates/js/translated/order.js:1642
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:1516
+#: templates/js/translated/order.js:1661
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:1517
+#: templates/js/translated/order.js:1662
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943
+#: templates/js/translated/order.js:1940 templates/js/translated/part.js:941
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2803
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674
-#: templates/js/translated/order.js:2815
+#: templates/js/translated/order.js:2017 templates/js/translated/order.js:2868
+#: templates/js/translated/order.js:3009
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889
+#: templates/js/translated/order.js:2115 templates/js/translated/order.js:4083
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911
+#: templates/js/translated/order.js:2132 templates/js/translated/order.js:4105
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:4116
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:2026
+#: templates/js/translated/order.js:2188
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:2215 templates/js/translated/order.js:3817
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309
-#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156
-#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753
+#: templates/js/translated/order.js:2270 templates/js/translated/part.js:1043
+#: templates/js/translated/part.js:1095
+msgid "Total Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:2301 templates/js/translated/order.js:2503
+#: templates/js/translated/order.js:3842 templates/js/translated/order.js:4350
+#: templates/js/translated/part.js:2184 templates/js/translated/part.js:2782
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325
-#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172
+#: templates/js/translated/order.js:2316 templates/js/translated/order.js:2519
+#: templates/js/translated/order.js:3858 templates/js/translated/order.js:4366
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706
-#: templates/js/translated/part.js:1070
+#: templates/js/translated/order.js:2357 templates/js/translated/order.js:3900
+#: templates/js/translated/part.js:1079
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110
+#: templates/js/translated/order.js:2416 templates/js/translated/part.js:1130
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2420 templates/js/translated/order.js:4037
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844
+#: templates/js/translated/order.js:2421 templates/js/translated/order.js:4038
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848
+#: templates/js/translated/order.js:2422 templates/js/translated/order.js:4042
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221
+#: templates/js/translated/order.js:2568 templates/js/translated/order.js:4415
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222
+#: templates/js/translated/order.js:2569 templates/js/translated/order.js:4416
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223
+#: templates/js/translated/order.js:2570 templates/js/translated/order.js:4417
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253
+#: templates/js/translated/order.js:2600 templates/js/translated/order.js:4447
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274
+#: templates/js/translated/order.js:2621 templates/js/translated/order.js:4468
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285
+#: templates/js/translated/order.js:2632 templates/js/translated/order.js:4479
msgid "Delete Line"
msgstr ""
-#: templates/js/translated/order.js:2449
+#: templates/js/translated/order.js:2643
msgid "No matching line"
msgstr ""
-#: templates/js/translated/order.js:2560
+#: templates/js/translated/order.js:2754
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:2623
+#: templates/js/translated/order.js:2817
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:2721
+#: templates/js/translated/order.js:2915
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:2724
+#: templates/js/translated/order.js:2918
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:2729
+#: templates/js/translated/order.js:2923
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:2749
+#: templates/js/translated/order.js:2943
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:2766
+#: templates/js/translated/order.js:2960
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:2800
+#: templates/js/translated/order.js:2994
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:2810
+#: templates/js/translated/order.js:3004
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:2834
+#: templates/js/translated/order.js:3028
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:2840
+#: templates/js/translated/order.js:3034
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:2844
+#: templates/js/translated/order.js:3038
msgid "Invoice"
msgstr ""
-#: templates/js/translated/order.js:3013
+#: templates/js/translated/order.js:3207
msgid "Add Shipment"
msgstr ""
-#: templates/js/translated/order.js:3064
+#: templates/js/translated/order.js:3258
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/order.js:3065
+#: templates/js/translated/order.js:3259
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:3273
+#: templates/js/translated/order.js:3467
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:3352
+#: templates/js/translated/order.js:3546
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3369
+#: templates/js/translated/order.js:3563
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:3370
+#: templates/js/translated/order.js:3564
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504
+#: templates/js/translated/order.js:3609 templates/js/translated/order.js:3698
#: templates/js/translated/stock.js:1602
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513
+#: templates/js/translated/order.js:3617 templates/js/translated/order.js:3707
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3827
+#: templates/js/translated/order.js:4021
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3833
+#: templates/js/translated/order.js:4027
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038
+#: templates/js/translated/order.js:4034 templates/js/translated/order.js:4232
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3852
+#: templates/js/translated/order.js:4046
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3855
+#: templates/js/translated/order.js:4049
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3937
+#: templates/js/translated/order.js:4131
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:4046
+#: templates/js/translated/order.js:4240
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:4060
+#: templates/js/translated/order.js:4254
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4296
+#: templates/js/translated/order.js:4490
msgid "No matching lines"
msgstr ""
@@ -9374,173 +9420,177 @@ msgstr ""
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498
+#: templates/js/translated/part.js:584 templates/js/translated/part.js:1515
#: templates/js/translated/table_filters.js:468
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:596
+#: templates/js/translated/part.js:594
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:715
+#: templates/js/translated/part.js:628 templates/js/translated/part.js:713
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:634 templates/js/translated/part.js:719
+#: templates/js/translated/part.js:632 templates/js/translated/part.js:717
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:646
+#: templates/js/translated/part.js:644
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:650
+#: templates/js/translated/part.js:648
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:778
+#: templates/js/translated/part.js:776
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1180
+#: templates/js/translated/part.js:1200
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1204
+#: templates/js/translated/part.js:1224
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573
+#: templates/js/translated/part.js:1291 templates/js/translated/part.js:1602
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1310
-msgid "Not available"
-msgstr ""
-
-#: templates/js/translated/part.js:1461
+#: templates/js/translated/part.js:1482
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1496
+#: templates/js/translated/part.js:1513
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840
-#: templates/js/translated/stock.js:2347
+#: templates/js/translated/part.js:1537
+msgid "Allocated to build orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1541
+msgid "Allocated to sales orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1626 templates/js/translated/part.js:1869
+#: templates/js/translated/stock.js:2343
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1613
+#: templates/js/translated/part.js:1642
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1679
+#: templates/js/translated/part.js:1708
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1684
+#: templates/js/translated/part.js:1713
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:1689
+#: templates/js/translated/part.js:1718
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1702
+#: templates/js/translated/part.js:1731
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366
+#: templates/js/translated/part.js:1888 templates/js/translated/stock.js:2362
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1938
+#: templates/js/translated/part.js:1967
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:1954
+#: templates/js/translated/part.js:1983
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2012
+#: templates/js/translated/part.js:2041
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299
+#: templates/js/translated/part.js:2092 templates/js/translated/stock.js:1299
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300
+#: templates/js/translated/part.js:2093 templates/js/translated/stock.js:1300
#: templates/js/translated/stock.js:1560
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2070
+#: templates/js/translated/part.js:2099
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2092
+#: templates/js/translated/part.js:2121
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2106
+#: templates/js/translated/part.js:2135
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2131
+#: templates/js/translated/part.js:2160
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:2188
+#: templates/js/translated/part.js:2217
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2189
+#: templates/js/translated/part.js:2218
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355
+#: templates/js/translated/part.js:2383 templates/js/translated/part.js:2384
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2357
+#: templates/js/translated/part.js:2386
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2363
+#: templates/js/translated/part.js:2392
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2413
+#: templates/js/translated/part.js:2442
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2419
+#: templates/js/translated/part.js:2448
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2515
+#: templates/js/translated/part.js:2544
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2531
+#: templates/js/translated/part.js:2560
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2576
+#: templates/js/translated/part.js:2605
msgid "Minimum Stock Level"
msgstr ""
-#: templates/js/translated/part.js:2677
+#: templates/js/translated/part.js:2706
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:2696
+#: templates/js/translated/part.js:2725
msgid "Single Price Difference"
msgstr ""
@@ -9778,7 +9828,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:942 users/models.py:216
+#: templates/js/translated/stock.js:942 users/models.py:218
msgid "Add"
msgstr ""
@@ -9854,156 +9904,156 @@ msgstr ""
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1775
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1780
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1787
+#: templates/js/translated/stock.js:1783
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1790
+#: templates/js/translated/stock.js:1786
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1792
+#: templates/js/translated/stock.js:1788
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1794
+#: templates/js/translated/stock.js:1790
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1797
+#: templates/js/translated/stock.js:1793
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1797
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1803
+#: templates/js/translated/stock.js:1799
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1810
+#: templates/js/translated/stock.js:1806
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:1808
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1814
+#: templates/js/translated/stock.js:1810
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1818
+#: templates/js/translated/stock.js:1814
#: templates/js/translated/table_filters.js:196
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1869
+#: templates/js/translated/stock.js:1865
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1948
+#: templates/js/translated/stock.js:1944
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1986
+#: templates/js/translated/stock.js:1982
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2159
+#: templates/js/translated/stock.js:2155
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2173
+#: templates/js/translated/stock.js:2169
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2174
+#: templates/js/translated/stock.js:2170
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2404
+#: templates/js/translated/stock.js:2400
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2493
+#: templates/js/translated/stock.js:2489
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2509
+#: templates/js/translated/stock.js:2505
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2531
+#: templates/js/translated/stock.js:2527
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2550
+#: templates/js/translated/stock.js:2546
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2569
+#: templates/js/translated/stock.js:2565
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2587
+#: templates/js/translated/stock.js:2583
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2610
+#: templates/js/translated/stock.js:2606
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2618
+#: templates/js/translated/stock.js:2614
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2694
+#: templates/js/translated/stock.js:2690
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781
+#: templates/js/translated/stock.js:2741 templates/js/translated/stock.js:2777
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2790
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2815
+#: templates/js/translated/stock.js:2811
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2816
+#: templates/js/translated/stock.js:2812
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2818
+#: templates/js/translated/stock.js:2814
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2819
+#: templates/js/translated/stock.js:2815
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2820
+#: templates/js/translated/stock.js:2816
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2821
+#: templates/js/translated/stock.js:2817
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2834
+#: templates/js/translated/stock.js:2830
msgid "Select part to install"
msgstr ""
@@ -10525,35 +10575,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:203
+#: users/models.py:205
msgid "Permission set"
msgstr ""
-#: users/models.py:211
+#: users/models.py:213
msgid "Group"
msgstr ""
-#: users/models.py:214
+#: users/models.py:216
msgid "View"
msgstr ""
-#: users/models.py:214
+#: users/models.py:216
msgid "Permission to view items"
msgstr ""
-#: users/models.py:216
+#: users/models.py:218
msgid "Permission to add items"
msgstr ""
-#: users/models.py:218
+#: users/models.py:220
msgid "Change"
msgstr ""
-#: users/models.py:218
+#: users/models.py:220
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:222
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po
index a048464cc0..45494f7b7e 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: 2022-08-24 21:34+0000\n"
+"POT-Creation-Date: 2022-09-05 11:39+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -42,9 +42,9 @@ msgstr ""
#: stock/serializers.py:922 stock/serializers.py:1054
#: stock/templates/stock/stock_sidebar.html:25
#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099
-#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210
-#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859
-#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208
+#: templates/js/translated/company.js:964 templates/js/translated/order.js:2275
+#: templates/js/translated/order.js:2426 templates/js/translated/order.js:2924
+#: templates/js/translated/order.js:3875 templates/js/translated/order.js:4273
#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980
msgid "Notes"
msgstr ""
@@ -90,81 +90,81 @@ msgstr ""
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:173
+#: InvenTree/helpers.py:175
msgid "Connection error"
msgstr ""
-#: InvenTree/helpers.py:177 InvenTree/helpers.py:182
+#: InvenTree/helpers.py:179 InvenTree/helpers.py:184
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers.py:179
+#: InvenTree/helpers.py:181
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers.py:187
+#: InvenTree/helpers.py:189
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers.py:190
+#: InvenTree/helpers.py:192
msgid "Image size is too large"
msgstr ""
-#: InvenTree/helpers.py:202
+#: InvenTree/helpers.py:204
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers.py:207
+#: InvenTree/helpers.py:209
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers.py:215
+#: InvenTree/helpers.py:217
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: InvenTree/helpers.py:598
+#: InvenTree/helpers.py:600
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr ""
-#: InvenTree/helpers.py:605 order/models.py:320 order/models.py:472
+#: InvenTree/helpers.py:607 order/models.py:320 order/models.py:472
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:608
+#: InvenTree/helpers.py:610
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:640
+#: InvenTree/helpers.py:642
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:643
+#: InvenTree/helpers.py:645
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:671
+#: InvenTree/helpers.py:673
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:679
+#: InvenTree/helpers.py:681
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:685
+#: InvenTree/helpers.py:687
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:689
+#: InvenTree/helpers.py:691
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/mixins.py:72
+#: InvenTree/helpers.py:890
msgid "Remove HTML tags from this value"
msgstr ""
@@ -215,7 +215,7 @@ msgstr ""
#: part/models.py:802 part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848
+#: templates/js/translated/company.js:948 templates/js/translated/order.js:2913
#: templates/js/translated/part.js:1534
msgid "Link"
msgstr ""
@@ -234,10 +234,10 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665
-#: common/models.py:1666 common/models.py:1889 common/models.py:1890
-#: common/models.py:2152 common/models.py:2153 part/models.py:2239
-#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257
+#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1669
+#: common/models.py:1670 common/models.py:1893 common/models.py:1894
+#: common/models.py:2156 common/models.py:2157 part/models.py:2239
+#: part/models.py:2259 plugin/models.py:260 plugin/models.py:261
#: report/templates/report/inventree_test_report_base.html:96
#: templates/js/translated/stock.js:2641
msgid "User"
@@ -276,7 +276,7 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875
+#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1879
#: company/models.py:358 label/models.py:101 part/models.py:746
#: part/models.py:2417 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
@@ -308,8 +308,8 @@ msgstr ""
#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846
#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409
#: templates/js/translated/company.js:667
-#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637
+#: templates/js/translated/company.js:959 templates/js/translated/order.js:1891
+#: templates/js/translated/order.js:2123 templates/js/translated/order.js:2702
#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167
#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962
#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743
@@ -544,7 +544,7 @@ msgid "Returned"
msgstr ""
#: InvenTree/status_codes.py:141 order/models.py:1128
-#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785
+#: templates/js/translated/order.js:3501 templates/js/translated/order.js:3850
msgid "Shipped"
msgstr ""
@@ -694,31 +694,31 @@ msgstr ""
msgid "Invalid value for overage"
msgstr ""
-#: InvenTree/views.py:519 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:520 templates/InvenTree/settings/user.html:22
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:531 templates/InvenTree/settings/user.html:19
+#: InvenTree/views.py:532 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:553
+#: InvenTree/views.py:554
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:562
+#: InvenTree/views.py:563
msgid "Wrong password provided"
msgstr ""
-#: InvenTree/views.py:769 templates/navbar.html:152
+#: InvenTree/views.py:773 templates/navbar.html:152
msgid "System Information"
msgstr ""
-#: InvenTree/views.py:776 templates/navbar.html:163
+#: InvenTree/views.py:780 templates/navbar.html:163
msgid "About InvenTree"
msgstr ""
-#: build/api.py:217
+#: build/api.py:219
msgid "Build must be cancelled before it can be deleted"
msgstr ""
@@ -740,7 +740,7 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:120
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
-#: templates/InvenTree/search.html:139
+#: templates/InvenTree/search.html:141
#: templates/InvenTree/settings/sidebar.html:47 users/models.py:41
msgid "Build Orders"
msgstr ""
@@ -755,9 +755,9 @@ msgstr ""
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853
-#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089
-#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629
-#: templates/js/translated/order.js:4137
+#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2154
+#: templates/js/translated/order.js:2355 templates/js/translated/order.js:3694
+#: templates/js/translated/order.js:4202
msgid "Reference"
msgstr ""
@@ -787,7 +787,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:109
#: report/templates/report/inventree_po_report.html:89
#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86
-#: stock/serializers.py:490 templates/InvenTree/search.html:80
+#: stock/serializers.py:490 templates/InvenTree/search.html:82
#: templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
@@ -799,10 +799,10 @@ msgstr ""
#: templates/js/translated/company.js:266
#: templates/js/translated/company.js:496
#: templates/js/translated/company.js:608
-#: templates/js/translated/company.js:868 templates/js/translated/order.js:105
-#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493
-#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613
+#: templates/js/translated/company.js:868 templates/js/translated/order.js:106
+#: templates/js/translated/order.js:1105 templates/js/translated/order.js:1558
+#: templates/js/translated/order.js:2108 templates/js/translated/order.js:3056
+#: templates/js/translated/order.js:3452 templates/js/translated/order.js:3678
#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224
#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586
#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958
@@ -824,7 +824,7 @@ msgid "SalesOrder to which this build is allocated"
msgstr ""
#: build/models.py:213 build/serializers.py:800
-#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979
+#: templates/js/translated/build.js:2114 templates/js/translated/order.js:3044
msgid "Source Location"
msgstr ""
@@ -864,8 +864,8 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:251 build/serializers.py:225 order/serializers.py:447
-#: stock/models.py:662 templates/js/translated/order.js:1353
+#: build/models.py:251 build/serializers.py:225 order/serializers.py:464
+#: stock/models.py:662 templates/js/translated/order.js:1418
msgid "Batch Code"
msgstr ""
@@ -874,7 +874,7 @@ msgid "Batch code for this build output"
msgstr ""
#: build/models.py:258 order/models.py:86 part/models.py:938
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2715
msgid "Creation Date"
msgstr ""
@@ -908,7 +908,7 @@ msgstr ""
#: order/templates/order/order_base.html:179
#: order/templates/order/sales_order_base.html:183 part/models.py:942
#: report/templates/report/inventree_build_order_base.html:158
-#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860
+#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1925
msgid "Responsible"
msgstr ""
@@ -920,7 +920,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:153
#: part/templates/part/part_base.html:346 stock/models.py:656
-#: stock/templates/stock/item_base.html:199
+#: stock/templates/stock/item_base.html:200
msgid "External Link"
msgstr ""
@@ -974,8 +974,8 @@ msgstr ""
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1326 stock/templates/stock/item_base.html:171
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2496
+#: build/models.py:1326 stock/templates/stock/item_base.html:172
+#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496
#: templates/navbar.html:38
msgid "Build"
msgstr ""
@@ -984,16 +984,16 @@ msgstr ""
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015
-#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754
+#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1032
+#: order/serializers.py:1053 stock/serializers.py:394 stock/serializers.py:754
#: stock/serializers.py:880 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:193
+#: stock/templates/stock/item_base.html:194
#: templates/js/translated/build.js:774 templates/js/translated/build.js:779
#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679
-#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992
-#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299
-#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486
+#: templates/js/translated/order.js:107 templates/js/translated/order.js:3057
+#: templates/js/translated/order.js:3359 templates/js/translated/order.js:3364
+#: templates/js/translated/order.js:3459 templates/js/translated/order.js:3551
#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752
#: templates/js/translated/stock.js:2577
msgid "Stock Item"
@@ -1005,9 +1005,9 @@ msgstr ""
#: build/models.py:1356 build/serializers.py:193
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1697
+#: build/templates/build/detail.html:34 common/models.py:1701
#: company/templates/company/supplier_part.html:279 order/models.py:897
-#: order/models.py:1423 order/serializers.py:1155
+#: order/models.py:1423 order/serializers.py:1206
#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40
#: part/models.py:2654 part/templates/part/detail.html:951
#: part/templates/part/detail.html:1037
@@ -1018,8 +1018,8 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:291 stock/templates/stock/item_base.html:286
-#: stock/templates/stock/item_base.html:294
+#: stock/serializers.py:291 stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:295
#: templates/email/build_order_completed.html:18
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691
#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458
@@ -1027,11 +1027,11 @@ msgstr ""
#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708
#: templates/js/translated/build.js:2129
#: templates/js/translated/model_renderers.js:120
-#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043
-#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313
-#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492
-#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143
+#: templates/js/translated/order.js:123 templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:2160 templates/js/translated/order.js:2361
+#: templates/js/translated/order.js:3058 templates/js/translated/order.js:3378
+#: templates/js/translated/order.js:3465 templates/js/translated/order.js:3557
+#: templates/js/translated/order.js:3700 templates/js/translated/order.js:4208
#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176
#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686
#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458
@@ -1078,7 +1078,7 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:208 build/serializers.py:665 order/models.py:318
-#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545
+#: order/serializers.py:304 order/serializers.py:459 part/serializers.py:545
#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251
#: stock/serializers.py:300
msgid "Quantity must be greater than zero"
@@ -1092,8 +1092,8 @@ msgstr ""
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159
-#: stock/serializers.py:309 templates/js/translated/order.js:1364
+#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1210
+#: stock/serializers.py:309 templates/js/translated/order.js:1429
#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459
msgid "Serial Numbers"
msgstr ""
@@ -1118,15 +1118,15 @@ msgstr ""
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532
+#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:549
#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532
#: stock/serializers.py:915 stock/serializers.py:1148
-#: stock/templates/stock/item_base.html:384
+#: stock/templates/stock/item_base.html:385
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786
-#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391
-#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411
-#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500
+#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1456
+#: templates/js/translated/order.js:3371 templates/js/translated/order.js:3476
+#: templates/js/translated/order.js:3484 templates/js/translated/order.js:3565
#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588
#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960
#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518
@@ -1139,10 +1139,10 @@ msgstr ""
#: build/serializers.py:373 build/templates/build/build_base.html:145
#: build/templates/build/detail.html:62 order/models.py:642
-#: order/serializers.py:465 stock/templates/stock/item_base.html:417
+#: order/serializers.py:482 stock/templates/stock/item_base.html:418
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546
-#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830
-#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829
+#: templates/js/translated/order.js:1563 templates/js/translated/order.js:1895
+#: templates/js/translated/order.js:2707 templates/js/translated/stock.js:1829
#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727
msgid "Status"
msgstr ""
@@ -1203,7 +1203,7 @@ msgstr ""
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:527
+#: build/serializers.py:527 order/serializers.py:208 order/serializers.py:1100
msgid "Accept Incomplete"
msgstr ""
@@ -1240,7 +1240,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:709 order/serializers.py:1073
+#: build/serializers.py:709 order/serializers.py:1090
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1257,7 +1257,7 @@ msgstr ""
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:750 order/serializers.py:1319
+#: build/serializers.py:750 order/serializers.py:1370
msgid "Allocation items must be provided"
msgstr ""
@@ -1376,9 +1376,9 @@ msgstr ""
#: order/templates/order/order_base.html:165
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:125
-#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847
-#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658
-#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042
+#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1912
+#: templates/js/translated/order.js:2222 templates/js/translated/order.js:2723
+#: templates/js/translated/order.js:3763 templates/js/translated/part.js:1042
msgid "Target Date"
msgstr ""
@@ -1411,9 +1411,9 @@ msgstr ""
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:364
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
-#: templates/js/translated/order.js:2604
+#: templates/js/translated/order.js:2669
msgid "Sales Order"
msgstr ""
@@ -1440,7 +1440,7 @@ msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:49 order/models.py:1023
-#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199
+#: templates/js/translated/order.js:1564 templates/js/translated/order.js:2264
msgid "Destination"
msgstr ""
@@ -1453,7 +1453,7 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:164
+#: stock/templates/stock/item_base.html:165
#: templates/js/translated/build.js:1215
#: templates/js/translated/model_renderers.js:124
#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843
@@ -1517,7 +1517,7 @@ msgstr ""
#: build/templates/build/detail.html:187
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:85
-#: part/templates/part/category.html:183 templates/js/translated/order.js:1083
+#: part/templates/part/category.html:183 templates/js/translated/order.js:1148
msgid "Order Parts"
msgstr ""
@@ -2276,349 +2276,349 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1342 common/models.py:1658
+#: common/models.py:1344 common/models.py:1662
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1364
+#: common/models.py:1366
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1365
+#: common/models.py:1367
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1371
+#: common/models.py:1373
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1372
+#: common/models.py:1374
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1378
+#: common/models.py:1380
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1379
+#: common/models.py:1381
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1385
+#: common/models.py:1387
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1386
+#: common/models.py:1388
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1392
+#: common/models.py:1394
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1393
+#: common/models.py:1395
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1399
+#: common/models.py:1401
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1400
+#: common/models.py:1402
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1406
+#: common/models.py:1408
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1407
+#: common/models.py:1409
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1413
+#: common/models.py:1415
msgid "Show low stock"
msgstr ""
-#: common/models.py:1414
+#: common/models.py:1416
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1420
+#: common/models.py:1422
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1421
+#: common/models.py:1423
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1427
+#: common/models.py:1429
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1430
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1434
+#: common/models.py:1436
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1435
+#: common/models.py:1437
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1441
+#: common/models.py:1443
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1442
+#: common/models.py:1444
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1448
+#: common/models.py:1450
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1449
+#: common/models.py:1451
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1455
+#: common/models.py:1457
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1456
+#: common/models.py:1458
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1462
+#: common/models.py:1464
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1463
+#: common/models.py:1465
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1469
+#: common/models.py:1471
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1470
+#: common/models.py:1472
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1476
+#: common/models.py:1478
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1477
+#: common/models.py:1479
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1483
+#: common/models.py:1485
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1484
+#: common/models.py:1486
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1490
+#: common/models.py:1492
msgid "Inline label display"
msgstr ""
-#: common/models.py:1491
+#: common/models.py:1493
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1499
msgid "Inline report display"
msgstr ""
-#: common/models.py:1498
+#: common/models.py:1500
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1506
msgid "Search Parts"
msgstr ""
-#: common/models.py:1505
+#: common/models.py:1507
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1513
msgid "Seach Supplier Parts"
msgstr ""
-#: common/models.py:1512
+#: common/models.py:1514
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1520
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:1519
+#: common/models.py:1521
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:1525
+#: common/models.py:1527
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1526
+#: common/models.py:1528
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1532
+#: common/models.py:1534
msgid "Search Categories"
msgstr ""
-#: common/models.py:1533
+#: common/models.py:1535
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1539
+#: common/models.py:1541
msgid "Search Stock"
msgstr ""
-#: common/models.py:1540
+#: common/models.py:1542
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1546
+#: common/models.py:1548
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1547
+#: common/models.py:1549
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1553
+#: common/models.py:1555
msgid "Search Locations"
msgstr ""
-#: common/models.py:1554
+#: common/models.py:1556
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1560
+#: common/models.py:1562
msgid "Search Companies"
msgstr ""
-#: common/models.py:1561
+#: common/models.py:1563
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1567
+#: common/models.py:1569
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1568
+#: common/models.py:1570
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1574
+#: common/models.py:1576
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1575
+#: common/models.py:1577
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1581
+#: common/models.py:1583
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1582
+#: common/models.py:1584
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1588
+#: common/models.py:1590
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1591
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1595
+#: common/models.py:1597
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1598
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1602
+#: common/models.py:1604
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1605
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1609
+#: common/models.py:1611
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1610
+#: common/models.py:1612
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1616
+#: common/models.py:1618
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1617
+#: common/models.py:1619
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1623
+#: common/models.py:1625
msgid "Date Format"
msgstr ""
-#: common/models.py:1624
+#: common/models.py:1626
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1638 part/templates/part/detail.html:41
+#: common/models.py:1640 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1641
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1698
+#: common/models.py:1702
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1705 company/serializers.py:366
+#: common/models.py:1709 company/serializers.py:366
#: company/templates/company/supplier_part.html:284 order/models.py:938
#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181
msgid "Price"
msgstr ""
-#: common/models.py:1706
+#: common/models.py:1710
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1866 common/models.py:2044
+#: common/models.py:1870 common/models.py:2048
msgid "Endpoint"
msgstr ""
-#: common/models.py:1867
+#: common/models.py:1871
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1876
+#: common/models.py:1880
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1881 part/models.py:921 plugin/models.py:100
+#: common/models.py:1885 part/models.py:921 plugin/models.py:100
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:104
#: templates/js/translated/table_filters.js:316
@@ -2626,67 +2626,67 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1886
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1896
+#: common/models.py:1900
msgid "Token"
msgstr ""
-#: common/models.py:1897
+#: common/models.py:1901
msgid "Token for access"
msgstr ""
-#: common/models.py:1904
+#: common/models.py:1908
msgid "Secret"
msgstr ""
-#: common/models.py:1905
+#: common/models.py:1909
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2011
+#: common/models.py:2015
msgid "Message ID"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2016
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2020
+#: common/models.py:2024
msgid "Host"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2025
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2032
msgid "Header"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2033
msgid "Header of this message"
msgstr ""
-#: common/models.py:2035
+#: common/models.py:2039
msgid "Body"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2040
msgid "Body of this message"
msgstr ""
-#: common/models.py:2045
+#: common/models.py:2049
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2054
msgid "Worked on"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2055
msgid "Was the work on this message finished?"
msgstr ""
@@ -2836,7 +2836,7 @@ msgid "Default currency used for this company"
msgstr ""
#: company/models.py:248 company/models.py:481 stock/models.py:598
-#: stock/serializers.py:85 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:85 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:542
msgid "Base Part"
msgstr ""
@@ -2848,7 +2848,7 @@ msgstr ""
#: company/models.py:263 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
#: company/templates/company/supplier_part.html:124
-#: stock/templates/stock/item_base.html:206
+#: stock/templates/stock/item_base.html:207
#: templates/js/translated/company.js:397
#: templates/js/translated/company.js:498
#: templates/js/translated/company.js:633
@@ -2866,7 +2866,7 @@ msgstr ""
#: templates/js/translated/company.js:269
#: templates/js/translated/company.js:497
#: templates/js/translated/company.js:649
-#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077
+#: templates/js/translated/company.js:937 templates/js/translated/order.js:2142
#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027
msgid "MPN"
msgstr ""
@@ -2886,7 +2886,7 @@ msgstr ""
#: company/models.py:328 company/models.py:352 company/models.py:504
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:216
+#: stock/templates/stock/item_base.html:217
msgid "Manufacturer Part"
msgstr ""
@@ -2924,11 +2924,11 @@ msgstr ""
#: company/models.py:491 company/templates/company/company_base.html:81
#: company/templates/company/supplier_part.html:108 order/models.py:258
#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:223
+#: stock/templates/stock/item_base.html:224
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:268
#: templates/js/translated/company.js:401
-#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813
+#: templates/js/translated/company.js:893 templates/js/translated/order.js:1878
#: templates/js/translated/part.js:217 templates/js/translated/part.js:995
#: templates/js/translated/table_filters.js:423
msgid "Supplier"
@@ -2940,7 +2940,7 @@ msgstr ""
#: company/models.py:497 company/templates/company/supplier_part.html:118
#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267
-#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228
+#: templates/js/translated/order.js:2129 templates/js/translated/part.js:228
#: templates/js/translated/part.js:1013
msgid "SKU"
msgstr ""
@@ -2977,7 +2977,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:528 company/templates/company/supplier_part.html:139
-#: stock/models.py:624 stock/templates/stock/item_base.html:239
+#: stock/models.py:624 stock/templates/stock/item_base.html:240
#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976
msgid "Packaging"
msgstr ""
@@ -3030,12 +3030,12 @@ msgstr ""
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:177 templates/js/translated/company.js:386
+#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386
msgid "Company"
msgstr ""
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:624
+#: templates/js/translated/order.js:689
msgid "Create Purchase Order"
msgstr ""
@@ -3074,9 +3074,9 @@ msgstr ""
#: company/templates/company/company_base.html:86 order/models.py:637
#: order/templates/order/sales_order_base.html:116 stock/models.py:643
#: stock/models.py:644 stock/serializers.py:809
-#: stock/templates/stock/item_base.html:395
+#: stock/templates/stock/item_base.html:396
#: templates/email/overdue_sales_order.html:16
-#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619
+#: templates/js/translated/company.js:393 templates/js/translated/order.js:2684
#: templates/js/translated/stock.js:2559
#: templates/js/translated/table_filters.js:427
msgid "Customer"
@@ -3102,7 +3102,7 @@ msgstr ""
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_sidebar.html:7
-#: templates/InvenTree/search.html:118 templates/js/translated/search.js:172
+#: templates/InvenTree/search.html:120 templates/js/translated/search.js:172
msgid "Supplier Parts"
msgstr ""
@@ -3132,7 +3132,7 @@ msgstr ""
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103
+#: company/templates/company/detail.html:61 templates/InvenTree/search.html:105
#: templates/js/translated/search.js:185
msgid "Manufacturer Parts"
msgstr ""
@@ -3156,7 +3156,7 @@ msgstr ""
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
#: part/templates/part/detail.html:84 part/templates/part/part_sidebar.html:37
-#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200
#: templates/InvenTree/settings/sidebar.html:49
#: templates/js/translated/search.js:277 templates/navbar.html:50
#: users/models.py:42
@@ -3179,7 +3179,7 @@ msgstr ""
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:41
-#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220
#: templates/InvenTree/settings/sidebar.html:51
#: templates/js/translated/search.js:301 templates/navbar.html:61
#: users/models.py:43
@@ -3206,7 +3206,7 @@ msgid "Supplier List"
msgstr ""
#: company/templates/company/manufacturer_part.html:15 company/views.py:38
-#: part/templates/part/prices.html:172 templates/InvenTree/search.html:179
+#: part/templates/part/prices.html:172 templates/InvenTree/search.html:181
#: templates/navbar.html:49
msgid "Manufacturers"
msgstr ""
@@ -3239,7 +3239,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:119
#: company/templates/company/supplier_part.html:15 company/views.py:32
#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:168
-#: templates/InvenTree/search.html:189 templates/navbar.html:48
+#: templates/InvenTree/search.html:191 templates/navbar.html:48
msgid "Suppliers"
msgstr ""
@@ -3251,8 +3251,8 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:371 part/templates/part/detail.html:401
-#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34
-#: users/models.py:220
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:34
+#: users/models.py:222
msgid "Delete"
msgstr ""
@@ -3297,8 +3297,8 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:607
-#: stock/templates/stock/item_base.html:232
-#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041
+#: stock/templates/stock/item_base.html:233
+#: templates/js/translated/company.js:909 templates/js/translated/order.js:1106
#: templates/js/translated/stock.js:1933
msgid "Supplier Part"
msgstr ""
@@ -3403,7 +3403,7 @@ msgstr ""
#: part/templates/part/part_sidebar.html:14
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24
#: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:151
+#: templates/InvenTree/search.html:153
#: templates/InvenTree/settings/sidebar.html:45
#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313
#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959
@@ -3432,7 +3432,7 @@ msgstr ""
#: stock/templates/stock/location.html:166
#: stock/templates/stock/location.html:178
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:153 templates/js/translated/search.js:225
+#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
#: templates/js/translated/stock.js:2436 users/models.py:40
msgid "Stock Items"
msgstr ""
@@ -3445,7 +3445,7 @@ msgstr ""
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:44 templates/InvenTree/search.html:209
+#: company/views.py:44 templates/InvenTree/search.html:211
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
@@ -3564,7 +3564,7 @@ msgid "Company from which the items are being ordered"
msgstr ""
#: order/models.py:262 order/templates/order/order_base.html:127
-#: templates/js/translated/order.js:1822
+#: templates/js/translated/order.js:1887
msgid "Supplier Reference"
msgstr ""
@@ -3621,7 +3621,7 @@ msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
#: order/models.py:652 order/models.py:1204
-#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828
+#: templates/js/translated/order.js:2731 templates/js/translated/order.js:2893
msgid "Shipment Date"
msgstr ""
@@ -3637,7 +3637,7 @@ msgstr ""
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:721
+#: order/models.py:721 templates/js/translated/order.js:419
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
@@ -3683,7 +3683,7 @@ msgstr ""
#: order/models.py:983 order/models.py:1063 order/models.py:1104
#: order/models.py:1198 order/models.py:1330
-#: templates/js/translated/order.js:3284
+#: templates/js/translated/order.js:3349
msgid "Order"
msgstr ""
@@ -3691,10 +3691,10 @@ msgstr ""
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:178
+#: stock/templates/stock/item_base.html:179
#: templates/email/overdue_purchase_order.html:15
-#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042
-#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972
+#: templates/js/translated/order.js:619 templates/js/translated/order.js:1107
+#: templates/js/translated/order.js:1862 templates/js/translated/part.js:972
#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540
msgid "Purchase Order"
msgstr ""
@@ -3704,7 +3704,7 @@ msgid "Supplier part"
msgstr ""
#: order/models.py:1009 order/templates/order/order_base.html:172
-#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179
+#: templates/js/translated/order.js:1561 templates/js/translated/order.js:2244
#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105
#: templates/js/translated/table_filters.js:338
msgid "Received"
@@ -3715,7 +3715,7 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734
-#: stock/serializers.py:169 stock/templates/stock/item_base.html:185
+#: stock/serializers.py:169 stock/templates/stock/item_base.html:186
#: templates/js/translated/stock.js:1964
msgid "Purchase Price"
msgstr ""
@@ -3761,8 +3761,8 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1220 order/models.py:1405 order/serializers.py:1170
-#: order/serializers.py:1294 templates/js/translated/model_renderers.js:314
+#: order/models.py:1220 order/models.py:1405 order/serializers.py:1221
+#: order/serializers.py:1345 templates/js/translated/model_renderers.js:314
msgid "Shipment"
msgstr ""
@@ -3814,7 +3814,7 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1385 order/serializers.py:1066
+#: order/models.py:1385 order/serializers.py:1083
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -3854,111 +3854,119 @@ msgstr ""
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:294
+#: order/serializers.py:209 order/serializers.py:1101
+msgid "Allow order to be closed with incomplete line items"
+msgstr ""
+
+#: order/serializers.py:220 order/serializers.py:1112
+msgid "Order has incomplete line items"
+msgstr ""
+
+#: order/serializers.py:311
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:318
+#: order/serializers.py:335
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:354
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:342
+#: order/serializers.py:359
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:348
+#: order/serializers.py:365
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:349
+#: order/serializers.py:366
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:413 order/serializers.py:1138
+#: order/serializers.py:430 order/serializers.py:1189
msgid "Line Item"
msgstr ""
-#: order/serializers.py:419
+#: order/serializers.py:436
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:429 order/serializers.py:533
+#: order/serializers.py:446 order/serializers.py:550
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:448 templates/js/translated/order.js:1354
+#: order/serializers.py:465 templates/js/translated/order.js:1419
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:456 templates/js/translated/order.js:1365
+#: order/serializers.py:473 templates/js/translated/order.js:1430
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:469
+#: order/serializers.py:486
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:470
+#: order/serializers.py:487
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:484
+#: order/serializers.py:501
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:507
+#: order/serializers.py:524
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:549
+#: order/serializers.py:566
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:566
+#: order/serializers.py:583
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:577
+#: order/serializers.py:594
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:883
+#: order/serializers.py:900
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:964
+#: order/serializers.py:981
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1027 order/serializers.py:1147
+#: order/serializers.py:1044 order/serializers.py:1198
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1049
+#: order/serializers.py:1066
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1160
+#: order/serializers.py:1211
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1182 order/serializers.py:1302
+#: order/serializers.py:1233 order/serializers.py:1353
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1185 order/serializers.py:1305
+#: order/serializers.py:1236 order/serializers.py:1356
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1235
+#: order/serializers.py:1286
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1245
+#: order/serializers.py:1296
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -4103,8 +4111,8 @@ msgstr ""
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463
#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015
-#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443
-#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625
+#: templates/js/translated/order.js:1055 templates/js/translated/order.js:1508
+#: templates/js/translated/order.js:2968 templates/js/translated/stock.js:625
#: templates/js/translated/stock.js:793
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
@@ -4140,7 +4148,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:26
#: order/templates/order/sales_order_detail.html:22
#: order/templates/order/sales_order_detail.html:255
-#: templates/js/translated/order.js:663
+#: templates/js/translated/order.js:728
msgid "Add Line Item"
msgstr ""
@@ -4186,12 +4194,12 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:231
+#: templates/js/translated/order.js:232
msgid "Complete Shipments"
msgstr ""
#: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:258
+#: templates/js/translated/order.js:397
msgid "Complete Sales Order"
msgstr ""
@@ -4200,7 +4208,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2632
+#: templates/js/translated/order.js:2697
msgid "Customer Reference"
msgstr ""
@@ -4309,7 +4317,7 @@ msgid "Total Stock"
msgstr ""
#: part/bom.py:129 part/templates/part/part_base.html:189
-#: templates/js/translated/order.js:3724
+#: templates/js/translated/order.js:3789
msgid "Available Stock"
msgstr ""
@@ -4351,7 +4359,7 @@ msgid "Part Category"
msgstr ""
#: part/models.py:123 part/templates/part/category.html:134
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:200
+#: templates/InvenTree/search.html:97 templates/js/translated/search.js:200
#: users/models.py:37
msgid "Part Categories"
msgstr ""
@@ -4360,7 +4368,7 @@ msgstr ""
#: part/templates/part/category.html:23 part/templates/part/category.html:139
#: part/templates/part/category.html:159
#: part/templates/part/category_sidebar.html:9
-#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
#: templates/InvenTree/settings/sidebar.html:41
#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
@@ -5032,7 +5040,7 @@ msgstr ""
msgid "Refresh scheduling data"
msgstr ""
-#: part/templates/part/detail.html:45 templates/js/translated/tables.js:558
+#: part/templates/part/detail.html:45 templates/js/translated/tables.js:560
msgid "Refresh"
msgstr ""
@@ -5251,7 +5259,7 @@ msgid "Show pricing information"
msgstr ""
#: part/templates/part/part_base.html:60
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:111
#: stock/templates/stock/location.html:61
msgid "Stock actions"
msgstr ""
@@ -5334,12 +5342,12 @@ msgid "In Stock"
msgstr ""
#: part/templates/part/part_base.html:215
-#: stock/templates/stock/item_base.html:378
+#: stock/templates/stock/item_base.html:379
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:224
-#: stock/templates/stock/item_base.html:371
+#: stock/templates/stock/item_base.html:372
msgid "Allocated to Sales Orders"
msgstr ""
@@ -5362,7 +5370,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:327
+#: stock/templates/stock/item_base.html:328
msgid "Search for serial number"
msgstr ""
@@ -5440,7 +5448,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:53
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468
+#: templates/js/translated/order.js:1904 templates/js/translated/stock.js:2468
msgid "Date"
msgstr ""
@@ -5736,19 +5744,19 @@ msgstr ""
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:186
+#: plugin/models.py:188
msgid "Plugin"
msgstr ""
-#: plugin/models.py:249
+#: plugin/models.py:253
msgid "Method"
msgstr ""
-#: plugin/plugin.py:251
+#: plugin/plugin.py:252
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:263
+#: plugin/plugin.py:264
msgid "No date found"
msgstr ""
@@ -5926,12 +5934,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:648 stock/templates/stock/item_base.html:316
+#: stock/models.py:648 stock/templates/stock/item_base.html:317
#: templates/js/translated/build.js:456 templates/js/translated/build.js:608
#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706
#: templates/js/translated/model_renderers.js:118
-#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403
-#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490
+#: templates/js/translated/order.js:121 templates/js/translated/order.js:3468
+#: templates/js/translated/order.js:3555 templates/js/translated/stock.js:490
msgid "Serial Number"
msgstr ""
@@ -5981,7 +5989,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
#: stock/models.py:89 stock/models.py:739
-#: stock/templates/stock/item_base.html:246
+#: stock/templates/stock/item_base.html:247
msgid "Owner"
msgstr ""
@@ -6047,7 +6055,7 @@ msgstr ""
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:631 stock/templates/stock/item_base.html:355
+#: stock/models.py:631 stock/templates/stock/item_base.html:356
msgid "Installed In"
msgstr ""
@@ -6087,7 +6095,7 @@ msgstr ""
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:706 stock/templates/stock/item_base.html:423
+#: stock/models.py:706 stock/templates/stock/item_base.html:424
#: templates/js/translated/stock.js:1883
msgid "Expiry Date"
msgstr ""
@@ -6427,183 +6435,187 @@ msgstr ""
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:83 templates/stock_table.html:46
+msgid "Remove stock"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:86
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:89
#: stock/templates/stock/location.html:74 templates/stock_table.html:48
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:91 templates/stock_table.html:51
+#: stock/templates/stock/item_base.html:92 templates/stock_table.html:51
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:95
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:98
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:98
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:102
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:102
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:116
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:119
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:121
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:124
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:157
+#: stock/templates/stock/item_base.html:158
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:192
+#: stock/templates/stock/item_base.html:193
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:210
+#: stock/templates/stock/item_base.html:211
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:250
+#: stock/templates/stock/item_base.html:251
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:252
#: stock/templates/stock/location.html:132
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:264
+#: stock/templates/stock/item_base.html:265
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:266
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:278
+#: stock/templates/stock/item_base.html:279
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:286
+#: stock/templates/stock/item_base.html:287
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:294
+#: stock/templates/stock/item_base.html:295
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:300
+#: stock/templates/stock/item_base.html:301
msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
msgstr ""
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:323
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:323
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:331
+#: stock/templates/stock/item_base.html:332
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:331
+#: stock/templates/stock/item_base.html:332
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:344
+#: stock/templates/stock/item_base.html:345
msgid "Available Quantity"
msgstr ""
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:389
#: templates/js/translated/build.js:1729
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:403
+#: stock/templates/stock/item_base.html:404
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:428
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:428
#: templates/js/translated/table_filters.js:269
msgid "Expired"
msgstr ""
-#: stock/templates/stock/item_base.html:429
+#: stock/templates/stock/item_base.html:430
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:429
+#: stock/templates/stock/item_base.html:430
#: templates/js/translated/table_filters.js:275
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:436
+#: stock/templates/stock/item_base.html:437
#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:441
+#: stock/templates/stock/item_base.html:442
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:445
+#: stock/templates/stock/item_base.html:446
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:515
+#: stock/templates/stock/item_base.html:516
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:588
+#: stock/templates/stock/item_base.html:589
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:591
+#: stock/templates/stock/item_base.html:592
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:592
+#: stock/templates/stock/item_base.html:593
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:600
+#: stock/templates/stock/item_base.html:601
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:628
+#: stock/templates/stock/item_base.html:629
msgid "Return to Stock"
msgstr ""
@@ -6666,7 +6678,7 @@ msgstr ""
msgid "Sublocations"
msgstr ""
-#: stock/templates/stock/location.html:161 templates/InvenTree/search.html:165
+#: stock/templates/stock/location.html:161 templates/InvenTree/search.html:167
#: templates/js/translated/search.js:240 users/models.py:39
msgid "Stock Locations"
msgstr ""
@@ -7506,7 +7518,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:644
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr ""
@@ -7946,7 +7958,7 @@ msgstr ""
#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620
#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601
#: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003
-#: templates/js/translated/order.js:1085 templates/modals.html:15
+#: templates/js/translated/order.js:1150 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -7956,12 +7968,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145
+#: templates/js/translated/order.js:931 templates/js/translated/tables.js:145
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:867
+#: templates/js/translated/order.js:932
msgid "Select file format"
msgstr ""
@@ -8058,7 +8070,7 @@ msgid "Variant stock allowed"
msgstr ""
#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857
-#: templates/js/translated/order.js:3738
+#: templates/js/translated/order.js:3803
msgid "No Stock Available"
msgstr ""
@@ -8266,12 +8278,12 @@ msgid "No required tests for this build"
msgstr ""
#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697
-#: templates/js/translated/order.js:3438
+#: templates/js/translated/order.js:3503
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698
-#: templates/js/translated/order.js:3439
+#: templates/js/translated/order.js:3504
msgid "Delete stock allocation"
msgstr ""
@@ -8291,20 +8303,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745
+#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3810
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743
+#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3808
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127
-#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757
+#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3822
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837
+#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3902
msgid "Build stock"
msgstr ""
@@ -8312,21 +8324,21 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830
+#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3895
msgid "Allocate stock"
msgstr ""
#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965
+#: templates/js/translated/order.js:978 templates/js/translated/order.js:3030
#: templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966
+#: templates/js/translated/build.js:1977 templates/js/translated/order.js:3031
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914
+#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2979
msgid "Specify stock allocation quantity"
msgstr ""
@@ -8338,7 +8350,7 @@ msgstr ""
msgid "All selected parts have been fully allocated"
msgstr ""
-#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980
+#: templates/js/translated/build.js:2115 templates/js/translated/order.js:3045
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
@@ -8346,11 +8358,11 @@ msgstr ""
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077
+#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3142
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154
+#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3219
msgid "No matching stock items"
msgstr ""
@@ -8416,11 +8428,11 @@ msgstr ""
msgid "Edit Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:167 templates/js/translated/order.js:511
+#: templates/js/translated/company.js:167 templates/js/translated/order.js:576
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:195 templates/js/translated/order.js:734
+#: templates/js/translated/company.js:195 templates/js/translated/order.js:799
msgid "Add Supplier Part"
msgstr ""
@@ -8546,61 +8558,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:367 templates/js/translated/forms.js:382
-#: templates/js/translated/forms.js:396 templates/js/translated/forms.js:410
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:369
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:384
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:398
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:670
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:771
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1269 templates/modals.html:19
+#: templates/js/translated/forms.js:1274 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1702
+#: templates/js/translated/forms.js:1707
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1917 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2170
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2648
+#: templates/js/translated/forms.js:2653
msgid "Select Columns"
msgstr ""
@@ -8791,409 +8803,413 @@ msgstr ""
msgid "Notifications will load here"
msgstr ""
-#: templates/js/translated/order.js:96
+#: templates/js/translated/order.js:97
msgid "No stock items have been allocated to this shipment"
msgstr ""
-#: templates/js/translated/order.js:101
+#: templates/js/translated/order.js:102
msgid "The following stock items will be shipped"
msgstr ""
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:142
msgid "Complete Shipment"
msgstr ""
-#: templates/js/translated/order.js:161
+#: templates/js/translated/order.js:162
msgid "Confirm Shipment"
msgstr ""
-#: templates/js/translated/order.js:217
+#: templates/js/translated/order.js:218
msgid "No pending shipments found"
msgstr ""
-#: templates/js/translated/order.js:221
+#: templates/js/translated/order.js:222
msgid "No stock items have been allocated to pending shipments"
msgstr ""
-#: templates/js/translated/order.js:253
+#: templates/js/translated/order.js:254
msgid "Skip"
msgstr ""
-#: templates/js/translated/order.js:283
+#: templates/js/translated/order.js:284
msgid "Complete Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:289
+#: templates/js/translated/order.js:301 templates/js/translated/order.js:413
msgid "Mark this order as complete?"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:307
msgid "All line items have been received"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:312
msgid "This order has line items which have not been marked as received."
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:313 templates/js/translated/order.js:427
msgid "Completing this order means that the order and line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:324
+#: templates/js/translated/order.js:336
msgid "Cancel Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:329
+#: templates/js/translated/order.js:341
msgid "Are you sure you wish to cancel this purchase order?"
msgstr ""
-#: templates/js/translated/order.js:335
+#: templates/js/translated/order.js:347
msgid "This purchase order can not be cancelled"
msgstr ""
-#: templates/js/translated/order.js:358
+#: templates/js/translated/order.js:370
msgid "Issue Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:363
+#: templates/js/translated/order.js:375
msgid "After placing this purchase order, line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:385
+#: templates/js/translated/order.js:426
+msgid "This order has line items which have not been completed."
+msgstr ""
+
+#: templates/js/translated/order.js:450
msgid "Cancel Sales Order"
msgstr ""
-#: templates/js/translated/order.js:390
+#: templates/js/translated/order.js:455
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:444
+#: templates/js/translated/order.js:509
msgid "Create New Shipment"
msgstr ""
-#: templates/js/translated/order.js:469
+#: templates/js/translated/order.js:534
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:494
+#: templates/js/translated/order.js:559
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:555
+#: templates/js/translated/order.js:620
msgid "Select purchase order to duplicate"
msgstr ""
-#: templates/js/translated/order.js:562
+#: templates/js/translated/order.js:627
msgid "Duplicate Line Items"
msgstr ""
-#: templates/js/translated/order.js:563
+#: templates/js/translated/order.js:628
msgid "Duplicate all line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:570
+#: templates/js/translated/order.js:635
msgid "Duplicate Extra Lines"
msgstr ""
-#: templates/js/translated/order.js:571
+#: templates/js/translated/order.js:636
msgid "Duplicate extra line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:588
+#: templates/js/translated/order.js:653
msgid "Edit Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:605
+#: templates/js/translated/order.js:670
msgid "Duplication Options"
msgstr ""
-#: templates/js/translated/order.js:863
+#: templates/js/translated/order.js:928
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:914
+#: templates/js/translated/order.js:979
msgid "At least one purchaseable part must be selected"
msgstr ""
-#: templates/js/translated/order.js:939
+#: templates/js/translated/order.js:1004
msgid "Quantity to order"
msgstr ""
-#: templates/js/translated/order.js:948
+#: templates/js/translated/order.js:1013
msgid "New supplier part"
msgstr ""
-#: templates/js/translated/order.js:966
+#: templates/js/translated/order.js:1031
msgid "New purchase order"
msgstr ""
-#: templates/js/translated/order.js:999
+#: templates/js/translated/order.js:1064
msgid "Add to purchase order"
msgstr ""
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1173
msgid "No matching supplier parts"
msgstr ""
-#: templates/js/translated/order.js:1123
+#: templates/js/translated/order.js:1188
msgid "No matching purchase orders"
msgstr ""
-#: templates/js/translated/order.js:1300
+#: templates/js/translated/order.js:1365
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1366
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420
+#: templates/js/translated/order.js:1386 templates/js/translated/order.js:1485
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431
+#: templates/js/translated/order.js:1392 templates/js/translated/order.js:1496
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1339
+#: templates/js/translated/order.js:1404
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144
+#: templates/js/translated/order.js:1468 templates/js/translated/stock.js:2144
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:1494
+#: templates/js/translated/order.js:1559
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:1495
+#: templates/js/translated/order.js:1560
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:1497
+#: templates/js/translated/order.js:1562
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:1516
+#: templates/js/translated/order.js:1581
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:1517
+#: templates/js/translated/order.js:1582
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943
+#: templates/js/translated/order.js:1843 templates/js/translated/part.js:943
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609
+#: templates/js/translated/order.js:1870 templates/js/translated/order.js:2674
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674
-#: templates/js/translated/order.js:2815
+#: templates/js/translated/order.js:1920 templates/js/translated/order.js:2739
+#: templates/js/translated/order.js:2880
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889
+#: templates/js/translated/order.js:2018 templates/js/translated/order.js:3954
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911
+#: templates/js/translated/order.js:2035 templates/js/translated/order.js:3976
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922
+#: templates/js/translated/order.js:2048 templates/js/translated/order.js:3987
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:2026
+#: templates/js/translated/order.js:2091
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:2118 templates/js/translated/order.js:3688
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309
-#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156
+#: templates/js/translated/order.js:2172 templates/js/translated/order.js:2374
+#: templates/js/translated/order.js:3713 templates/js/translated/order.js:4221
#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325
-#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172
+#: templates/js/translated/order.js:2187 templates/js/translated/order.js:2390
+#: templates/js/translated/order.js:3729 templates/js/translated/order.js:4237
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706
+#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3771
#: templates/js/translated/part.js:1070
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110
+#: templates/js/translated/order.js:2287 templates/js/translated/part.js:1110
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2291 templates/js/translated/order.js:3908
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844
+#: templates/js/translated/order.js:2292 templates/js/translated/order.js:3909
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848
+#: templates/js/translated/order.js:2293 templates/js/translated/order.js:3913
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221
+#: templates/js/translated/order.js:2439 templates/js/translated/order.js:4286
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222
+#: templates/js/translated/order.js:2440 templates/js/translated/order.js:4287
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223
+#: templates/js/translated/order.js:2441 templates/js/translated/order.js:4288
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253
+#: templates/js/translated/order.js:2471 templates/js/translated/order.js:4318
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274
+#: templates/js/translated/order.js:2492 templates/js/translated/order.js:4339
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285
+#: templates/js/translated/order.js:2503 templates/js/translated/order.js:4350
msgid "Delete Line"
msgstr ""
-#: templates/js/translated/order.js:2449
+#: templates/js/translated/order.js:2514
msgid "No matching line"
msgstr ""
-#: templates/js/translated/order.js:2560
+#: templates/js/translated/order.js:2625
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:2623
+#: templates/js/translated/order.js:2688
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:2721
+#: templates/js/translated/order.js:2786
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:2724
+#: templates/js/translated/order.js:2789
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:2729
+#: templates/js/translated/order.js:2794
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:2749
+#: templates/js/translated/order.js:2814
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:2766
+#: templates/js/translated/order.js:2831
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:2800
+#: templates/js/translated/order.js:2865
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:2810
+#: templates/js/translated/order.js:2875
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:2834
+#: templates/js/translated/order.js:2899
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:2840
+#: templates/js/translated/order.js:2905
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:2844
+#: templates/js/translated/order.js:2909
msgid "Invoice"
msgstr ""
-#: templates/js/translated/order.js:3013
+#: templates/js/translated/order.js:3078
msgid "Add Shipment"
msgstr ""
-#: templates/js/translated/order.js:3064
+#: templates/js/translated/order.js:3129
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/order.js:3065
+#: templates/js/translated/order.js:3130
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:3273
+#: templates/js/translated/order.js:3338
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:3352
+#: templates/js/translated/order.js:3417
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3369
+#: templates/js/translated/order.js:3434
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:3370
+#: templates/js/translated/order.js:3435
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504
+#: templates/js/translated/order.js:3480 templates/js/translated/order.js:3569
#: templates/js/translated/stock.js:1602
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513
+#: templates/js/translated/order.js:3488 templates/js/translated/order.js:3578
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3827
+#: templates/js/translated/order.js:3892
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3833
+#: templates/js/translated/order.js:3898
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038
+#: templates/js/translated/order.js:3905 templates/js/translated/order.js:4103
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3852
+#: templates/js/translated/order.js:3917
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3855
+#: templates/js/translated/order.js:3920
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3937
+#: templates/js/translated/order.js:4002
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:4046
+#: templates/js/translated/order.js:4111
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:4060
+#: templates/js/translated/order.js:4125
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4296
+#: templates/js/translated/order.js:4361
msgid "No matching lines"
msgstr ""
@@ -9777,7 +9793,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:942 users/models.py:216
+#: templates/js/translated/stock.js:942 users/models.py:218
msgid "Add"
msgstr ""
@@ -10258,57 +10274,57 @@ msgstr ""
msgid "Select File Format"
msgstr ""
-#: templates/js/translated/tables.js:535
+#: templates/js/translated/tables.js:537
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:538
+#: templates/js/translated/tables.js:540
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:543
+#: templates/js/translated/tables.js:545
msgid "Showing all rows"
msgstr ""
-#: templates/js/translated/tables.js:545
+#: templates/js/translated/tables.js:547
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:545
+#: templates/js/translated/tables.js:547
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:545
+#: templates/js/translated/tables.js:547
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:545
+#: templates/js/translated/tables.js:547
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:549 templates/navbar.html:102
+#: templates/js/translated/tables.js:551 templates/navbar.html:102
#: templates/search.html:8 templates/search_form.html:6
#: templates/search_form.html:7
msgid "Search"
msgstr ""
-#: templates/js/translated/tables.js:552
+#: templates/js/translated/tables.js:554
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:555
+#: templates/js/translated/tables.js:557
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:561
+#: templates/js/translated/tables.js:563
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:564
+#: templates/js/translated/tables.js:566
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:567
+#: templates/js/translated/tables.js:569
msgid "All"
msgstr ""
@@ -10456,10 +10472,6 @@ msgstr ""
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:46
-msgid "Remove stock"
-msgstr ""
-
#: templates/stock_table.html:47
msgid "Stocktake selected stock items"
msgstr ""
@@ -10528,34 +10540,34 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:203
+#: users/models.py:205
msgid "Permission set"
msgstr ""
-#: users/models.py:211
+#: users/models.py:213
msgid "Group"
msgstr ""
-#: users/models.py:214
+#: users/models.py:216
msgid "View"
msgstr ""
-#: users/models.py:214
+#: users/models.py:216
msgid "Permission to view items"
msgstr ""
-#: users/models.py:216
+#: users/models.py:218
msgid "Permission to add items"
msgstr ""
-#: users/models.py:218
+#: users/models.py:220
msgid "Change"
msgstr ""
-#: users/models.py:218
+#: users/models.py:220
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:222
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po
index 7370b03181..1baf0baf96 100644
--- a/InvenTree/locale/es/LC_MESSAGES/django.po
+++ b/InvenTree/locale/es/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-08-25 10:08+0000\n"
-"PO-Revision-Date: 2022-08-26 01:55\n"
+"POT-Creation-Date: 2022-09-09 02:44+0000\n"
+"PO-Revision-Date: 2022-09-09 03:57\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
"Language: es_ES\n"
@@ -29,9 +29,9 @@ msgstr ""
msgid "Enter date"
msgstr ""
-#: InvenTree/fields.py:186 build/serializers.py:384
-#: build/templates/build/sidebar.html:21 company/models.py:523
-#: company/templates/company/sidebar.html:25 order/models.py:906
+#: InvenTree/fields.py:183 build/serializers.py:384
+#: build/templates/build/sidebar.html:21 company/models.py:524
+#: company/templates/company/sidebar.html:25 order/models.py:910
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17
#: part/templates/part/part_sidebar.html:59
@@ -40,11 +40,12 @@ msgstr ""
#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823
#: stock/serializers.py:922 stock/serializers.py:1054
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099
-#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210
-#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859
-#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208
-#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1107
+#: templates/js/translated/company.js:1022
+#: templates/js/translated/order.js:2404 templates/js/translated/order.js:2555
+#: templates/js/translated/order.js:3053 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:4402 templates/js/translated/stock.js:1374
+#: templates/js/translated/stock.js:1976
msgid "Notes"
msgstr ""
@@ -210,12 +211,12 @@ msgid "Select file to attach"
msgstr ""
#: InvenTree/models.py:402 company/models.py:124 company/models.py:276
-#: company/models.py:510 order/models.py:84 order/models.py:1245
+#: company/models.py:511 order/models.py:84 order/models.py:1249
#: part/models.py:802 part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
-#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848
-#: templates/js/translated/part.js:1534
+#: templates/js/translated/company.js:691
+#: templates/js/translated/company.js:1011
+#: templates/js/translated/order.js:3042 templates/js/translated/part.js:1563
msgid "Link"
msgstr ""
@@ -233,12 +234,12 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665
-#: common/models.py:1666 common/models.py:1889 common/models.py:1890
-#: common/models.py:2152 common/models.py:2153 part/models.py:2239
-#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257
+#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1669
+#: common/models.py:1670 common/models.py:1893 common/models.py:1894
+#: common/models.py:2156 common/models.py:2157 part/models.py:2247
+#: part/models.py:2267 plugin/models.py:260 plugin/models.py:261
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2641
+#: templates/js/translated/stock.js:2637
msgid "User"
msgstr ""
@@ -275,28 +276,28 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875
+#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1879
#: company/models.py:358 label/models.py:101 part/models.py:746
-#: part/models.py:2417 plugin/models.py:94 report/models.py:152
+#: part/models.py:2425 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin.html:134
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:347
-#: templates/js/translated/company.js:545
-#: templates/js/translated/company.js:758
+#: templates/js/translated/company.js:580
+#: templates/js/translated/company.js:793
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:688 templates/js/translated/part.js:840
-#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392
+#: templates/js/translated/part.js:686 templates/js/translated/part.js:838
+#: templates/js/translated/part.js:1955 templates/js/translated/stock.js:2388
msgid "Name"
msgstr ""
#: InvenTree/models.py:544 build/models.py:174
#: build/templates/build/detail.html:24 company/models.py:282
-#: company/models.py:516 company/templates/company/company_base.html:71
+#: company/models.py:517 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:87 label/models.py:108
-#: order/models.py:82 part/models.py:769 part/models.py:2429
+#: company/templates/company/supplier_part.html:92 label/models.py:108
+#: order/models.py:82 part/models.py:769 part/models.py:2437
#: part/templates/part/category.html:80 part/templates/part/part_base.html:167
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
@@ -305,14 +306,14 @@ msgstr ""
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/InvenTree/settings/settings.html:358
#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846
-#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409
-#: templates/js/translated/company.js:667
-#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637
-#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167
-#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962
-#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743
-#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478
+#: templates/js/translated/build.js:2512 templates/js/translated/company.js:444
+#: templates/js/translated/company.js:702
+#: templates/js/translated/company.js:986 templates/js/translated/order.js:1988
+#: templates/js/translated/order.js:2220 templates/js/translated/order.js:2831
+#: templates/js/translated/part.js:745 templates/js/translated/part.js:1187
+#: templates/js/translated/part.js:1463 templates/js/translated/part.js:1991
+#: templates/js/translated/part.js:2060 templates/js/translated/stock.js:1743
+#: templates/js/translated/stock.js:2420 templates/js/translated/stock.js:2474
msgid "Description"
msgstr ""
@@ -325,7 +326,7 @@ msgid "parent"
msgstr ""
#: InvenTree/models.py:560 InvenTree/models.py:561
-#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:2426
msgid "Path"
msgstr ""
@@ -337,7 +338,7 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2745
+#: InvenTree/serializers.py:55 part/models.py:2753
msgid "Must be a valid number"
msgstr ""
@@ -522,7 +523,7 @@ msgid "Placed"
msgstr ""
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr ""
@@ -542,8 +543,8 @@ msgstr ""
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:141 order/models.py:1128
-#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785
+#: InvenTree/status_codes.py:141 order/models.py:1132
+#: templates/js/translated/order.js:3630 templates/js/translated/order.js:3979
msgid "Shipped"
msgstr ""
@@ -627,7 +628,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080
msgid "Merged stock items"
msgstr ""
@@ -717,7 +718,7 @@ msgstr ""
msgid "About InvenTree"
msgstr ""
-#: build/api.py:217
+#: build/api.py:219
msgid "Build must be cancelled before it can be deleted"
msgstr ""
@@ -748,15 +749,15 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:166 order/models.py:240 order/models.py:623
-#: order/models.py:904 part/models.py:2663
+#: build/models.py:166 order/models.py:240 order/models.py:627
+#: order/models.py:908 part/models.py:2671
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853
-#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089
-#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629
-#: templates/js/translated/order.js:4137
+#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2251
+#: templates/js/translated/order.js:2484 templates/js/translated/order.js:3823
+#: templates/js/translated/order.js:4331
msgid "Reference"
msgstr ""
@@ -774,12 +775,12 @@ msgid "BuildOrder to which this build is allocated"
msgstr ""
#: build/models.py:191 build/templates/build/build_base.html:80
-#: build/templates/build/detail.html:29 company/models.py:670
-#: order/models.py:1001 order/models.py:1112 order/models.py:1113
-#: part/models.py:343 part/models.py:2185 part/models.py:2200
-#: part/models.py:2219 part/models.py:2237 part/models.py:2336
-#: part/models.py:2463 part/models.py:2553 part/models.py:2638
-#: part/models.py:2914 part/serializers.py:814
+#: build/templates/build/detail.html:29 company/models.py:679
+#: order/models.py:1005 order/models.py:1116 order/models.py:1117
+#: part/models.py:343 part/models.py:2193 part/models.py:2208
+#: part/models.py:2227 part/models.py:2245 part/models.py:2344
+#: part/models.py:2471 part/models.py:2561 part/models.py:2646
+#: part/models.py:2922 part/serializers.py:814
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -795,18 +796,18 @@ msgstr ""
#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800
#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682
#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517
-#: templates/js/translated/company.js:266
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:608
-#: templates/js/translated/company.js:868 templates/js/translated/order.js:105
-#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493
-#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613
-#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224
-#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586
+#: templates/js/translated/company.js:301
+#: templates/js/translated/company.js:531
+#: templates/js/translated/company.js:643
+#: templates/js/translated/company.js:904 templates/js/translated/order.js:106
+#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1638
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:3185
+#: templates/js/translated/order.js:3581 templates/js/translated/order.js:3807
+#: templates/js/translated/part.js:1172 templates/js/translated/part.js:1244
+#: templates/js/translated/part.js:1441 templates/js/translated/stock.js:586
#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504
-#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833
+#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2500
+#: templates/js/translated/stock.js:2695 templates/js/translated/stock.js:2829
msgid "Part"
msgstr ""
@@ -823,7 +824,7 @@ msgid "SalesOrder to which this build is allocated"
msgstr ""
#: build/models.py:213 build/serializers.py:800
-#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979
+#: templates/js/translated/build.js:2114 templates/js/translated/order.js:3173
msgid "Source Location"
msgstr ""
@@ -863,8 +864,8 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:251 build/serializers.py:225 order/serializers.py:447
-#: stock/models.py:662 templates/js/translated/order.js:1353
+#: build/models.py:251 build/serializers.py:225 order/serializers.py:464
+#: stock/models.py:662 templates/js/translated/order.js:1496
msgid "Batch Code"
msgstr ""
@@ -873,11 +874,11 @@ msgid "Batch code for this build output"
msgstr ""
#: build/models.py:258 order/models.py:86 part/models.py:938
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2844
msgid "Creation Date"
msgstr ""
-#: build/models.py:262 order/models.py:648
+#: build/models.py:262 order/models.py:652
msgid "Target completion date"
msgstr ""
@@ -904,10 +905,10 @@ msgstr ""
#: build/models.py:289 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:100
-#: order/templates/order/order_base.html:179
+#: order/templates/order/order_base.html:185
#: order/templates/order/sales_order_base.html:183 part/models.py:942
#: report/templates/report/inventree_build_order_base.html:158
-#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860
+#: templates/js/translated/build.js:2574 templates/js/translated/order.js:2022
msgid "Responsible"
msgstr ""
@@ -917,9 +918,9 @@ msgstr ""
#: build/models.py:295 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
-#: company/templates/company/supplier_part.html:153
+#: company/templates/company/supplier_part.html:165
#: part/templates/part/part_base.html:346 stock/models.py:656
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr ""
@@ -957,11 +958,11 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1188 order/models.py:1379
+#: build/models.py:1188 order/models.py:1383
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1194 order/models.py:1382
+#: build/models.py:1194 order/models.py:1386
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -973,7 +974,7 @@ msgstr ""
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1326 stock/templates/stock/item_base.html:172
+#: build/models.py:1326 stock/templates/stock/item_base.html:175
#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496
#: templates/navbar.html:38
msgid "Build"
@@ -983,18 +984,18 @@ msgstr ""
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015
-#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754
+#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1035
+#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754
#: stock/serializers.py:880 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:197
#: templates/js/translated/build.js:774 templates/js/translated/build.js:779
#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679
-#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992
-#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299
-#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486
+#: templates/js/translated/order.js:107 templates/js/translated/order.js:3186
+#: templates/js/translated/order.js:3488 templates/js/translated/order.js:3493
+#: templates/js/translated/order.js:3588 templates/js/translated/order.js:3680
#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752
-#: templates/js/translated/stock.js:2577
+#: templates/js/translated/stock.js:2573
msgid "Stock Item"
msgstr ""
@@ -1004,11 +1005,11 @@ msgstr ""
#: build/models.py:1356 build/serializers.py:193
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1697
-#: company/templates/company/supplier_part.html:279 order/models.py:897
-#: order/models.py:1423 order/serializers.py:1155
+#: build/templates/build/detail.html:34 common/models.py:1701
+#: company/templates/company/supplier_part.html:291 order/models.py:901
+#: order/models.py:1427 order/serializers.py:1209
#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40
-#: part/models.py:2654 part/templates/part/detail.html:951
+#: part/models.py:2662 part/templates/part/detail.html:951
#: part/templates/part/detail.html:1037
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -1017,8 +1018,8 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:291 stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
+#: stock/serializers.py:291 stock/templates/stock/item_base.html:290
+#: stock/templates/stock/item_base.html:298
#: templates/email/build_order_completed.html:18
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691
#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458
@@ -1026,16 +1027,16 @@ msgstr ""
#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708
#: templates/js/translated/build.js:2129
#: templates/js/translated/model_renderers.js:120
-#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043
-#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313
-#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492
-#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143
-#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176
-#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686
-#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458
+#: templates/js/translated/order.js:123 templates/js/translated/order.js:1137
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:2490
+#: templates/js/translated/order.js:3187 templates/js/translated/order.js:3507
+#: templates/js/translated/order.js:3594 templates/js/translated/order.js:3686
+#: templates/js/translated/order.js:3829 templates/js/translated/order.js:4337
+#: templates/js/translated/part.js:1036 templates/js/translated/part.js:2205
+#: templates/js/translated/part.js:2674 templates/js/translated/part.js:2715
+#: templates/js/translated/part.js:2793 templates/js/translated/stock.js:458
#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782
-#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2707
msgid "Quantity"
msgstr ""
@@ -1077,7 +1078,7 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:208 build/serializers.py:665 order/models.py:318
-#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545
+#: order/serializers.py:304 order/serializers.py:459 part/serializers.py:545
#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251
#: stock/serializers.py:300
msgid "Quantity must be greater than zero"
@@ -1091,8 +1092,8 @@ msgstr ""
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159
-#: stock/serializers.py:309 templates/js/translated/order.js:1364
+#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213
+#: stock/serializers.py:309 templates/js/translated/order.js:1507
#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459
msgid "Serial Numbers"
msgstr ""
@@ -1117,18 +1118,18 @@ msgstr ""
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532
+#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552
#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532
#: stock/serializers.py:915 stock/serializers.py:1148
-#: stock/templates/stock/item_base.html:385
+#: stock/templates/stock/item_base.html:388
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786
-#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391
-#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411
-#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500
+#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1534
+#: templates/js/translated/order.js:3500 templates/js/translated/order.js:3605
+#: templates/js/translated/order.js:3613 templates/js/translated/order.js:3694
#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588
#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960
-#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2514
msgid "Location"
msgstr ""
@@ -1137,12 +1138,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:373 build/templates/build/build_base.html:145
-#: build/templates/build/detail.html:62 order/models.py:642
-#: order/serializers.py:465 stock/templates/stock/item_base.html:418
+#: build/templates/build/detail.html:62 order/models.py:646
+#: order/serializers.py:482 stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546
-#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830
-#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829
-#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727
+#: templates/js/translated/order.js:1643 templates/js/translated/order.js:1992
+#: templates/js/translated/order.js:2836 templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:2591 templates/js/translated/stock.js:2723
msgid "Status"
msgstr ""
@@ -1202,7 +1203,7 @@ msgstr ""
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:527
+#: build/serializers.py:527 order/serializers.py:208 order/serializers.py:1103
msgid "Accept Incomplete"
msgstr ""
@@ -1218,8 +1219,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772
-#: part/models.py:2906
+#: build/serializers.py:577 build/serializers.py:622 part/models.py:2780
+#: part/models.py:2914
msgid "BOM Item"
msgstr ""
@@ -1239,7 +1240,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:709 order/serializers.py:1073
+#: build/serializers.py:709 order/serializers.py:1093
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1256,7 +1257,7 @@ msgstr ""
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:750 order/serializers.py:1319
+#: build/serializers.py:750 order/serializers.py:1373
msgid "Allocation items must be provided"
msgstr ""
@@ -1371,13 +1372,13 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:154
-#: build/templates/build/detail.html:131 order/models.py:910
-#: order/templates/order/order_base.html:165
+#: build/templates/build/detail.html:131 order/models.py:914
+#: order/templates/order/order_base.html:171
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:125
-#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847
-#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658
-#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042
+#: templates/js/translated/build.js:2586 templates/js/translated/order.js:2009
+#: templates/js/translated/order.js:2351 templates/js/translated/order.js:2852
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1051
msgid "Target Date"
msgstr ""
@@ -1388,7 +1389,7 @@ msgstr ""
#: build/templates/build/build_base.html:159
#: build/templates/build/build_base.html:204
-#: order/templates/order/order_base.html:101
+#: order/templates/order/order_base.html:107
#: order/templates/order/sales_order_base.html:94
#: templates/js/translated/table_filters.js:320
#: templates/js/translated/table_filters.js:361
@@ -1404,15 +1405,15 @@ msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:179
-#: build/templates/build/detail.html:94 order/models.py:1105
-#: order/models.py:1199 order/models.py:1330
+#: build/templates/build/detail.html:94 order/models.py:1109
+#: order/models.py:1203 order/models.py:1334
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:365
+#: stock/templates/stock/item_base.html:368
#: templates/email/overdue_sales_order.html:15
-#: templates/js/translated/order.js:2604
+#: templates/js/translated/order.js:2798
msgid "Sales Order"
msgstr ""
@@ -1438,8 +1439,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1023
-#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199
+#: build/templates/build/detail.html:49 order/models.py:1027
+#: templates/js/translated/order.js:1644 templates/js/translated/order.js:2393
msgid "Destination"
msgstr ""
@@ -1452,18 +1453,18 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:165
+#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1215
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843
-#: templates/js/translated/stock.js:2734
+#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1839
+#: templates/js/translated/stock.js:2730
#: templates/js/translated/table_filters.js:159
#: templates/js/translated/table_filters.js:250
msgid "Batch"
msgstr ""
#: build/templates/build/detail.html:126
-#: order/templates/order/order_base.html:152
+#: order/templates/order/order_base.html:158
#: order/templates/order/sales_order_base.html:158
#: templates/js/translated/build.js:2554
msgid "Created"
@@ -1516,7 +1517,7 @@ msgstr ""
#: build/templates/build/detail.html:187
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:85
-#: part/templates/part/category.html:183 templates/js/translated/order.js:1083
+#: part/templates/part/category.html:183 templates/js/translated/order.js:1177
msgid "Order Parts"
msgstr ""
@@ -1851,7 +1852,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:951 part/models.py:2465 report/models.py:158
+#: common/models.py:951 part/models.py:2473 report/models.py:158
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:484
msgid "Template"
@@ -1861,7 +1862,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446
+#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1454
#: templates/js/translated/table_filters.js:176
#: templates/js/translated/table_filters.js:447
msgid "Assembly"
@@ -2275,349 +2276,349 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1342 common/models.py:1658
+#: common/models.py:1344 common/models.py:1662
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1364
+#: common/models.py:1366
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1365
+#: common/models.py:1367
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1371
+#: common/models.py:1373
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1372
+#: common/models.py:1374
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1378
+#: common/models.py:1380
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1379
+#: common/models.py:1381
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1385
+#: common/models.py:1387
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1386
+#: common/models.py:1388
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1392
+#: common/models.py:1394
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1393
+#: common/models.py:1395
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1399
+#: common/models.py:1401
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1400
+#: common/models.py:1402
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1406
+#: common/models.py:1408
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1407
+#: common/models.py:1409
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1413
+#: common/models.py:1415
msgid "Show low stock"
msgstr ""
-#: common/models.py:1414
+#: common/models.py:1416
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1420
+#: common/models.py:1422
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1421
+#: common/models.py:1423
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1427
+#: common/models.py:1429
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1430
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1434
+#: common/models.py:1436
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1435
+#: common/models.py:1437
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1441
+#: common/models.py:1443
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1442
+#: common/models.py:1444
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1448
+#: common/models.py:1450
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1449
+#: common/models.py:1451
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1455
+#: common/models.py:1457
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1456
+#: common/models.py:1458
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1462
+#: common/models.py:1464
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1463
+#: common/models.py:1465
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1469
+#: common/models.py:1471
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1470
+#: common/models.py:1472
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1476
+#: common/models.py:1478
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1477
+#: common/models.py:1479
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1483
+#: common/models.py:1485
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1484
+#: common/models.py:1486
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1490
+#: common/models.py:1492
msgid "Inline label display"
msgstr ""
-#: common/models.py:1491
+#: common/models.py:1493
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1499
msgid "Inline report display"
msgstr ""
-#: common/models.py:1498
+#: common/models.py:1500
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1506
msgid "Search Parts"
msgstr ""
-#: common/models.py:1505
+#: common/models.py:1507
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1513
msgid "Seach Supplier Parts"
msgstr ""
-#: common/models.py:1512
+#: common/models.py:1514
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1520
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:1519
+#: common/models.py:1521
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:1525
+#: common/models.py:1527
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1526
+#: common/models.py:1528
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1532
+#: common/models.py:1534
msgid "Search Categories"
msgstr ""
-#: common/models.py:1533
+#: common/models.py:1535
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1539
+#: common/models.py:1541
msgid "Search Stock"
msgstr ""
-#: common/models.py:1540
+#: common/models.py:1542
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1546
+#: common/models.py:1548
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1547
+#: common/models.py:1549
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1553
+#: common/models.py:1555
msgid "Search Locations"
msgstr ""
-#: common/models.py:1554
+#: common/models.py:1556
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1560
+#: common/models.py:1562
msgid "Search Companies"
msgstr ""
-#: common/models.py:1561
+#: common/models.py:1563
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1567
+#: common/models.py:1569
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1568
+#: common/models.py:1570
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1574
+#: common/models.py:1576
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1575
+#: common/models.py:1577
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1581
+#: common/models.py:1583
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1582
+#: common/models.py:1584
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1588
+#: common/models.py:1590
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1591
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1595
+#: common/models.py:1597
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1598
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1602
+#: common/models.py:1604
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1605
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1609
+#: common/models.py:1611
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1610
+#: common/models.py:1612
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1616
+#: common/models.py:1618
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1617
+#: common/models.py:1619
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1623
+#: common/models.py:1625
msgid "Date Format"
msgstr ""
-#: common/models.py:1624
+#: common/models.py:1626
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1638 part/templates/part/detail.html:41
+#: common/models.py:1640 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1641
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1698
+#: common/models.py:1702
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1705 company/serializers.py:366
-#: company/templates/company/supplier_part.html:284 order/models.py:938
-#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181
+#: common/models.py:1709 company/serializers.py:372
+#: company/templates/company/supplier_part.html:296 order/models.py:942
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:2210
msgid "Price"
msgstr ""
-#: common/models.py:1706
+#: common/models.py:1710
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1866 common/models.py:2044
+#: common/models.py:1870 common/models.py:2048
msgid "Endpoint"
msgstr ""
-#: common/models.py:1867
+#: common/models.py:1871
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1876
+#: common/models.py:1880
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1881 part/models.py:921 plugin/models.py:100
+#: common/models.py:1885 part/models.py:921 plugin/models.py:100
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:104
#: templates/js/translated/table_filters.js:316
@@ -2625,67 +2626,67 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1886
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1896
+#: common/models.py:1900
msgid "Token"
msgstr ""
-#: common/models.py:1897
+#: common/models.py:1901
msgid "Token for access"
msgstr ""
-#: common/models.py:1904
+#: common/models.py:1908
msgid "Secret"
msgstr ""
-#: common/models.py:1905
+#: common/models.py:1909
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2011
+#: common/models.py:2015
msgid "Message ID"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2016
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2020
+#: common/models.py:2024
msgid "Host"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2025
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2032
msgid "Header"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2033
msgid "Header of this message"
msgstr ""
-#: common/models.py:2035
+#: common/models.py:2039
msgid "Body"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2040
msgid "Body of this message"
msgstr ""
-#: common/models.py:2045
+#: common/models.py:2049
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2054
msgid "Worked on"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2055
msgid "Was the work on this message finished?"
msgstr ""
@@ -2747,7 +2748,7 @@ msgstr ""
#: company/models.py:105 company/templates/company/company_base.html:100
#: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:413
+#: templates/js/translated/company.js:448
msgid "Website"
msgstr ""
@@ -2824,7 +2825,7 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:148 company/serializers.py:372
+#: company/models.py:148 company/serializers.py:378
#: company/templates/company/company_base.html:106 part/serializers.py:153
#: part/serializers.py:184 stock/serializers.py:178
msgid "Currency"
@@ -2834,24 +2835,24 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:248 company/models.py:481 stock/models.py:598
+#: company/models.py:248 company/models.py:482 stock/models.py:598
#: stock/serializers.py:85 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:542
msgid "Base Part"
msgstr ""
-#: company/models.py:252 company/models.py:485
+#: company/models.py:252 company/models.py:486
msgid "Select part"
msgstr ""
#: company/models.py:263 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:124
-#: stock/templates/stock/item_base.html:207
-#: templates/js/translated/company.js:397
-#: templates/js/translated/company.js:498
-#: templates/js/translated/company.js:633
-#: templates/js/translated/company.js:919 templates/js/translated/part.js:236
+#: company/templates/company/supplier_part.html:129
+#: stock/templates/stock/item_base.html:210
+#: templates/js/translated/company.js:432
+#: templates/js/translated/company.js:533
+#: templates/js/translated/company.js:668
+#: templates/js/translated/company.js:956 templates/js/translated/part.js:236
#: templates/js/translated/table_filters.js:419
msgid "Manufacturer"
msgstr ""
@@ -2861,12 +2862,12 @@ msgid "Select manufacturer"
msgstr ""
#: company/models.py:270 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:132
-#: templates/js/translated/company.js:269
-#: templates/js/translated/company.js:497
-#: templates/js/translated/company.js:649
-#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077
-#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027
+#: company/templates/company/supplier_part.html:137
+#: templates/js/translated/company.js:304
+#: templates/js/translated/company.js:532
+#: templates/js/translated/company.js:684
+#: templates/js/translated/company.js:975 templates/js/translated/order.js:2239
+#: templates/js/translated/part.js:247 templates/js/translated/part.js:1025
msgid "MPN"
msgstr ""
@@ -2882,10 +2883,10 @@ msgstr ""
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:328 company/models.py:352 company/models.py:504
+#: company/models.py:328 company/models.py:352 company/models.py:505
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:220
msgid "Manufacturer Part"
msgstr ""
@@ -2895,8 +2896,8 @@ msgstr ""
#: company/models.py:365
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2095 templates/js/translated/company.js:546
-#: templates/js/translated/company.js:764 templates/js/translated/part.js:849
+#: stock/models.py:2095 templates/js/translated/company.js:581
+#: templates/js/translated/company.js:799 templates/js/translated/part.js:847
#: templates/js/translated/stock.js:1360
msgid "Value"
msgstr ""
@@ -2905,10 +2906,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:372 part/models.py:888 part/models.py:2425
+#: company/models.py:372 part/models.py:888 part/models.py:2433
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:352
-#: templates/js/translated/company.js:770 templates/js/translated/part.js:855
+#: templates/js/translated/company.js:805 templates/js/translated/part.js:853
msgid "Units"
msgstr ""
@@ -2916,106 +2917,119 @@ msgstr ""
msgid "Parameter units"
msgstr ""
-#: company/models.py:449
+#: company/models.py:450
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:491 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:108 order/models.py:258
-#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:224
+#: company/models.py:492 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:113 order/models.py:258
+#: order/templates/order/order_base.html:121 part/bom.py:237 part/bom.py:265
+#: stock/templates/stock/item_base.html:227
#: templates/email/overdue_purchase_order.html:16
-#: templates/js/translated/company.js:268
-#: templates/js/translated/company.js:401
-#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813
-#: templates/js/translated/part.js:217 templates/js/translated/part.js:995
+#: templates/js/translated/company.js:303
+#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:929 templates/js/translated/order.js:1975
+#: templates/js/translated/part.js:217 templates/js/translated/part.js:993
#: templates/js/translated/table_filters.js:423
msgid "Supplier"
msgstr ""
-#: company/models.py:492 templates/js/translated/part.js:218
+#: company/models.py:493 templates/js/translated/part.js:218
msgid "Select supplier"
msgstr ""
-#: company/models.py:497 company/templates/company/supplier_part.html:118
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267
-#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228
-#: templates/js/translated/part.js:1013
+#: company/models.py:498 company/templates/company/supplier_part.html:123
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:302
+#: templates/js/translated/order.js:2226 templates/js/translated/part.js:228
+#: templates/js/translated/part.js:1011
msgid "SKU"
msgstr ""
-#: company/models.py:498 templates/js/translated/part.js:229
+#: company/models.py:499 templates/js/translated/part.js:229
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:505
+#: company/models.py:506
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:511
+#: company/models.py:512
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:517
+#: company/models.py:518
msgid "Supplier part description"
msgstr ""
-#: company/models.py:522 company/templates/company/supplier_part.html:146
-#: part/models.py:2666 part/templates/part/upload_bom.html:59
+#: company/models.py:523 company/templates/company/supplier_part.html:158
+#: part/models.py:2674 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399
msgid "Note"
msgstr ""
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "base cost"
msgstr ""
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:528 company/templates/company/supplier_part.html:139
-#: stock/models.py:624 stock/templates/stock/item_base.html:240
-#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976
+#: company/models.py:529 company/templates/company/supplier_part.html:144
+#: stock/models.py:624 stock/templates/stock/item_base.html:243
+#: templates/js/translated/company.js:991 templates/js/translated/stock.js:1972
msgid "Packaging"
msgstr ""
-#: company/models.py:528
+#: company/models.py:529
msgid "Part packaging"
msgstr ""
-#: company/models.py:530 part/models.py:1783
+#: company/models.py:532 company/serializers.py:242
+#: company/templates/company/supplier_part.html:151
+#: templates/js/translated/company.js:996 templates/js/translated/order.js:820
+#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:2270 templates/js/translated/order.js:2287
+#: templates/js/translated/part.js:1043 templates/js/translated/part.js:1095
+msgid "Pack Quantity"
+msgstr ""
+
+#: company/models.py:533
+msgid "Unit quantity supplied in a single pack"
+msgstr ""
+
+#: company/models.py:539 part/models.py:1783
msgid "multiple"
msgstr ""
-#: company/models.py:530
+#: company/models.py:539
msgid "Order multiple"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part.html:94
+#: company/models.py:547 company/templates/company/supplier_part.html:99
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823
-#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979
-#: templates/js/translated/part.js:600 templates/js/translated/part.js:603
+#: templates/js/translated/bom.js:915 templates/js/translated/build.js:1823
+#: templates/js/translated/build.js:2686 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:601
#: templates/js/translated/table_filters.js:186
msgid "Available"
msgstr ""
-#: company/models.py:539
+#: company/models.py:548
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:543
+#: company/models.py:552
msgid "Availability Updated"
msgstr ""
-#: company/models.py:544
+#: company/models.py:553
msgid "Date of last update of availability data"
msgstr ""
-#: company/models.py:672
+#: company/models.py:681
msgid "last updated"
msgstr ""
@@ -3029,12 +3043,12 @@ msgstr ""
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386
+#: templates/InvenTree/search.html:179 templates/js/translated/company.js:421
msgid "Company"
msgstr ""
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:624
+#: templates/js/translated/order.js:689
msgid "Create Purchase Order"
msgstr ""
@@ -3047,7 +3061,7 @@ msgid "Edit company information"
msgstr ""
#: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:329
+#: templates/js/translated/company.js:364
msgid "Edit Company"
msgstr ""
@@ -3070,13 +3084,13 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:86 order/models.py:637
+#: company/templates/company/company_base.html:86 order/models.py:641
#: order/templates/order/sales_order_base.html:116 stock/models.py:643
#: stock/models.py:644 stock/serializers.py:809
-#: stock/templates/stock/item_base.html:396
+#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
-#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619
-#: templates/js/translated/stock.js:2559
+#: templates/js/translated/company.js:428 templates/js/translated/order.js:2813
+#: templates/js/translated/stock.js:2555
#: templates/js/translated/table_filters.js:427
msgid "Customer"
msgstr ""
@@ -3211,23 +3225,23 @@ msgid "Manufacturers"
msgstr ""
#: company/templates/company/manufacturer_part.html:35
-#: company/templates/company/supplier_part.html:186
+#: company/templates/company/supplier_part.html:198
#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80
msgid "Order part"
msgstr ""
#: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:681
+#: templates/js/translated/company.js:716
msgid "Edit manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:682
+#: templates/js/translated/company.js:717
msgid "Delete manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:65
-#: company/templates/company/supplier_part.html:77
+#: company/templates/company/supplier_part.html:82
msgid "Internal Part"
msgstr ""
@@ -3250,8 +3264,8 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:371 part/templates/part/detail.html:401
-#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34
-#: users/models.py:220
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:34
+#: users/models.py:222
msgid "Delete"
msgstr ""
@@ -3296,9 +3310,9 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:607
-#: stock/templates/stock/item_base.html:233
-#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041
-#: templates/js/translated/stock.js:1933
+#: stock/templates/stock/item_base.html:236
+#: templates/js/translated/company.js:945 templates/js/translated/order.js:1135
+#: templates/js/translated/stock.js:1929
msgid "Supplier Part"
msgstr ""
@@ -3308,7 +3322,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:40
#: company/templates/company/supplier_part.html:41
-#: company/templates/company/supplier_part.html:187
+#: company/templates/company/supplier_part.html:199
#: part/templates/part/detail.html:88
msgid "Order Part"
msgstr ""
@@ -3320,81 +3334,87 @@ msgstr ""
#: company/templates/company/supplier_part.html:48
#: company/templates/company/supplier_part.html:49
-#: templates/js/translated/company.js:212
+#: templates/js/translated/company.js:247
msgid "Edit Supplier Part"
msgstr ""
#: company/templates/company/supplier_part.html:53
+#: company/templates/company/supplier_part.html:54
+#: templates/js/translated/company.js:222
+msgid "Duplicate Supplier Part"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:58
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:54
+#: company/templates/company/supplier_part.html:59
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:112
+#: company/templates/company/supplier_part.html:117
msgid "No supplier information available"
msgstr ""
-#: company/templates/company/supplier_part.html:165
+#: company/templates/company/supplier_part.html:177
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr ""
-#: company/templates/company/supplier_part.html:168
+#: company/templates/company/supplier_part.html:180
#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181
msgid "Create new stock item"
msgstr ""
-#: company/templates/company/supplier_part.html:169
+#: company/templates/company/supplier_part.html:181
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182
#: templates/js/translated/stock.js:435
msgid "New Stock Item"
msgstr ""
-#: company/templates/company/supplier_part.html:182
+#: company/templates/company/supplier_part.html:194
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr ""
-#: company/templates/company/supplier_part.html:207
+#: company/templates/company/supplier_part.html:219
#: part/templates/part/prices.html:10
msgid "Pricing Information"
msgstr ""
-#: company/templates/company/supplier_part.html:212
-#: company/templates/company/supplier_part.html:326
-#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253
+#: company/templates/company/supplier_part.html:224
+#: company/templates/company/supplier_part.html:338
+#: part/templates/part/prices.html:276 templates/js/translated/part.js:2282
msgid "Add Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:250
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:252
-#: templates/js/translated/part.js:2263
+#: company/templates/company/supplier_part.html:264
+#: templates/js/translated/part.js:2292
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:266
-#: templates/js/translated/part.js:2277
+#: company/templates/company/supplier_part.html:278
+#: templates/js/translated/part.js:2306
msgid "Edit Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:291
+#: company/templates/company/supplier_part.html:303
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part.html:292
+#: company/templates/company/supplier_part.html:304
msgid "Delete price break"
msgstr ""
-#: company/templates/company/supplier_part.html:301
+#: company/templates/company/supplier_part.html:313
msgid "Last updated"
msgstr ""
-#: company/templates/company/supplier_part.html:382
+#: company/templates/company/supplier_part.html:394
msgid "Update Part Availability"
msgstr ""
@@ -3404,8 +3424,8 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313
-#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959
+#: templates/js/translated/part.js:749 templates/js/translated/part.js:1334
+#: templates/js/translated/part.js:1495 templates/js/translated/stock.js:959
#: templates/js/translated/stock.js:1754 templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -3432,7 +3452,7 @@ msgstr ""
#: stock/templates/stock/location.html:178
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2436 users/models.py:40
+#: templates/js/translated/stock.js:2432 users/models.py:40
msgid "Stock Items"
msgstr ""
@@ -3534,7 +3554,7 @@ msgstr ""
msgid "Order description"
msgstr ""
-#: order/models.py:84 order/models.py:1246
+#: order/models.py:84 order/models.py:1250
msgid "Link to external page"
msgstr ""
@@ -3550,11 +3570,11 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:241 order/models.py:624
+#: order/models.py:241 order/models.py:628
msgid "Order reference"
msgstr ""
-#: order/models.py:249 order/models.py:642
+#: order/models.py:249 order/models.py:646
msgid "Purchase order status"
msgstr ""
@@ -3562,8 +3582,8 @@ msgstr ""
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:262 order/templates/order/order_base.html:127
-#: templates/js/translated/order.js:1822
+#: order/models.py:262 order/templates/order/order_base.html:133
+#: templates/js/translated/order.js:1984
msgid "Supplier Reference"
msgstr ""
@@ -3603,245 +3623,245 @@ msgstr ""
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:638
+#: order/models.py:642
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer Reference "
msgstr ""
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:649
+#: order/models.py:653
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:652 order/models.py:1204
-#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828
+#: order/models.py:656 order/models.py:1208
+#: templates/js/translated/order.js:2860 templates/js/translated/order.js:3022
msgid "Shipment Date"
msgstr ""
-#: order/models.py:659
+#: order/models.py:663
msgid "shipped by"
msgstr ""
-#: order/models.py:714
+#: order/models.py:718
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:718
+#: order/models.py:722
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:721
+#: order/models.py:725 templates/js/translated/order.js:419
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:724
+#: order/models.py:728
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:898
+#: order/models.py:902
msgid "Item quantity"
msgstr ""
-#: order/models.py:904
+#: order/models.py:908
msgid "Line item reference"
msgstr ""
-#: order/models.py:906
+#: order/models.py:910
msgid "Line item notes"
msgstr ""
-#: order/models.py:911
+#: order/models.py:915
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:929
+#: order/models.py:933
msgid "Context"
msgstr ""
-#: order/models.py:930
+#: order/models.py:934
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:939
+#: order/models.py:943
msgid "Unit price"
msgstr ""
-#: order/models.py:969
+#: order/models.py:973
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:977
+#: order/models.py:981
msgid "deleted"
msgstr ""
-#: order/models.py:983 order/models.py:1063 order/models.py:1104
-#: order/models.py:1198 order/models.py:1330
-#: templates/js/translated/order.js:3284
+#: order/models.py:987 order/models.py:1067 order/models.py:1108
+#: order/models.py:1202 order/models.py:1334
+#: templates/js/translated/order.js:3478
msgid "Order"
msgstr ""
-#: order/models.py:984 order/models.py:1063
+#: order/models.py:988 order/models.py:1067
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:179
+#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
-#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042
-#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972
-#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540
+#: templates/js/translated/order.js:619 templates/js/translated/order.js:1136
+#: templates/js/translated/order.js:1959 templates/js/translated/part.js:970
+#: templates/js/translated/stock.js:1909 templates/js/translated/stock.js:2536
msgid "Purchase Order"
msgstr ""
-#: order/models.py:1002
+#: order/models.py:1006
msgid "Supplier part"
msgstr ""
-#: order/models.py:1009 order/templates/order/order_base.html:172
-#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105
+#: order/models.py:1013 order/templates/order/order_base.html:178
+#: templates/js/translated/order.js:1641 templates/js/translated/order.js:2373
+#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1125
#: templates/js/translated/table_filters.js:338
msgid "Received"
msgstr ""
-#: order/models.py:1010
+#: order/models.py:1014
msgid "Number of items received"
msgstr ""
-#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734
-#: stock/serializers.py:169 stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1964
+#: order/models.py:1021 part/templates/part/prices.html:181 stock/models.py:734
+#: stock/serializers.py:169 stock/templates/stock/item_base.html:189
+#: templates/js/translated/stock.js:1960
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1018
+#: order/models.py:1022
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1026
+#: order/models.py:1030
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1092
+#: order/models.py:1096
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1097
+#: order/models.py:1101
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1123 part/templates/part/part_pricing.html:115
+#: order/models.py:1127 part/templates/part/part_pricing.html:115
#: part/templates/part/prices.html:121 part/templates/part/prices.html:290
msgid "Sale Price"
msgstr ""
-#: order/models.py:1124
+#: order/models.py:1128
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1129
+#: order/models.py:1133
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1205
+#: order/models.py:1209
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1212
+#: order/models.py:1216
msgid "Checked By"
msgstr ""
-#: order/models.py:1213
+#: order/models.py:1217
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1220 order/models.py:1405 order/serializers.py:1170
-#: order/serializers.py:1294 templates/js/translated/model_renderers.js:314
+#: order/models.py:1224 order/models.py:1409 order/serializers.py:1224
+#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314
msgid "Shipment"
msgstr ""
-#: order/models.py:1221
+#: order/models.py:1225
msgid "Shipment number"
msgstr ""
-#: order/models.py:1225
+#: order/models.py:1229
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1231
+#: order/models.py:1235
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1232
+#: order/models.py:1236
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1239
+#: order/models.py:1243
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1240
+#: order/models.py:1244
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1258
+#: order/models.py:1262
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1261
+#: order/models.py:1265
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1364 order/models.py:1366
+#: order/models.py:1368 order/models.py:1370
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1370
+#: order/models.py:1374
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1372
+#: order/models.py:1376
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1375
+#: order/models.py:1379
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1385 order/serializers.py:1066
+#: order/models.py:1389 order/serializers.py:1086
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1388
+#: order/models.py:1392
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1389
+#: order/models.py:1393
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1397
+#: order/models.py:1401
msgid "Line"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1410
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1419 templates/js/translated/notification.js:55
+#: order/models.py:1423 templates/js/translated/notification.js:55
msgid "Item"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1424
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1423
+#: order/models.py:1427
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3853,111 +3873,119 @@ msgstr ""
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:294
+#: order/serializers.py:209 order/serializers.py:1104
+msgid "Allow order to be closed with incomplete line items"
+msgstr ""
+
+#: order/serializers.py:220 order/serializers.py:1115
+msgid "Order has incomplete line items"
+msgstr ""
+
+#: order/serializers.py:311
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:318
+#: order/serializers.py:335
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:354
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:342
+#: order/serializers.py:359
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:348
+#: order/serializers.py:365
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:349
+#: order/serializers.py:366
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:413 order/serializers.py:1138
+#: order/serializers.py:430 order/serializers.py:1192
msgid "Line Item"
msgstr ""
-#: order/serializers.py:419
+#: order/serializers.py:436
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:429 order/serializers.py:533
+#: order/serializers.py:446 order/serializers.py:553
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:448 templates/js/translated/order.js:1354
+#: order/serializers.py:465 templates/js/translated/order.js:1497
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:456 templates/js/translated/order.js:1365
+#: order/serializers.py:473 templates/js/translated/order.js:1508
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:469
+#: order/serializers.py:486
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:470
+#: order/serializers.py:487
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:484
+#: order/serializers.py:501
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:507
+#: order/serializers.py:527
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:549
+#: order/serializers.py:569
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:566
+#: order/serializers.py:586
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:577
+#: order/serializers.py:597
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:883
+#: order/serializers.py:903
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:964
+#: order/serializers.py:984
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1027 order/serializers.py:1147
+#: order/serializers.py:1047 order/serializers.py:1201
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1049
+#: order/serializers.py:1069
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1160
+#: order/serializers.py:1214
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1182 order/serializers.py:1302
+#: order/serializers.py:1236 order/serializers.py:1356
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1185 order/serializers.py:1305
+#: order/serializers.py:1239 order/serializers.py:1359
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1235
+#: order/serializers.py:1289
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1245
+#: order/serializers.py:1299
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3993,83 +4021,83 @@ msgstr ""
msgid "Order actions"
msgstr ""
-#: order/templates/order/order_base.html:45
+#: order/templates/order/order_base.html:46
#: order/templates/order/sales_order_base.html:58
msgid "Edit order"
msgstr ""
-#: order/templates/order/order_base.html:47
+#: order/templates/order/order_base.html:50
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr ""
-#: order/templates/order/order_base.html:50
+#: order/templates/order/order_base.html:55
msgid "Duplicate order"
msgstr ""
-#: order/templates/order/order_base.html:55
+#: order/templates/order/order_base.html:61
msgid "Place order"
msgstr ""
-#: order/templates/order/order_base.html:59
+#: order/templates/order/order_base.html:65
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:61
+#: order/templates/order/order_base.html:67
#: order/templates/order/purchase_order_detail.html:30
msgid "Receive Items"
msgstr ""
-#: order/templates/order/order_base.html:63
+#: order/templates/order/order_base.html:69
msgid "Mark order as complete"
msgstr ""
-#: order/templates/order/order_base.html:65
+#: order/templates/order/order_base.html:71
#: order/templates/order/sales_order_base.html:68
msgid "Complete Order"
msgstr ""
-#: order/templates/order/order_base.html:87
+#: order/templates/order/order_base.html:93
#: order/templates/order/sales_order_base.html:80
msgid "Order Reference"
msgstr ""
-#: order/templates/order/order_base.html:92
+#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:85
msgid "Order Description"
msgstr ""
-#: order/templates/order/order_base.html:97
+#: order/templates/order/order_base.html:103
#: order/templates/order/sales_order_base.html:90
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:120
+#: order/templates/order/order_base.html:126
msgid "No suppplier information available"
msgstr ""
-#: order/templates/order/order_base.html:133
+#: order/templates/order/order_base.html:139
#: order/templates/order/sales_order_base.html:129
msgid "Completed Line Items"
msgstr ""
-#: order/templates/order/order_base.html:139
+#: order/templates/order/order_base.html:145
#: order/templates/order/sales_order_base.html:135
#: order/templates/order/sales_order_base.html:145
msgid "Incomplete"
msgstr ""
-#: order/templates/order/order_base.html:158
+#: order/templates/order/order_base.html:164
#: report/templates/report/inventree_build_order_base.html:121
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:186
+#: order/templates/order/order_base.html:192
#: order/templates/order/sales_order_base.html:190
msgid "Total cost"
msgstr ""
-#: order/templates/order/order_base.html:190
+#: order/templates/order/order_base.html:196
#: order/templates/order/sales_order_base.html:194
msgid "Total cost could not be calculated"
msgstr ""
@@ -4102,8 +4130,8 @@ msgstr ""
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463
#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015
-#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443
-#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625
+#: templates/js/translated/order.js:1084 templates/js/translated/order.js:1586
+#: templates/js/translated/order.js:3097 templates/js/translated/stock.js:625
#: templates/js/translated/stock.js:793
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
@@ -4139,7 +4167,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:26
#: order/templates/order/sales_order_detail.html:22
#: order/templates/order/sales_order_detail.html:255
-#: templates/js/translated/order.js:663
+#: templates/js/translated/order.js:728
msgid "Add Line Item"
msgstr ""
@@ -4167,7 +4195,7 @@ msgstr ""
msgid "Order Notes"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:228
+#: order/templates/order/purchase_order_detail.html:232
msgid "Add Order Line"
msgstr ""
@@ -4185,12 +4213,12 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:231
+#: templates/js/translated/order.js:232
msgid "Complete Shipments"
msgstr ""
#: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:258
+#: templates/js/translated/order.js:397
msgid "Complete Sales Order"
msgstr ""
@@ -4199,7 +4227,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2632
+#: templates/js/translated/order.js:2826
msgid "Customer Reference"
msgstr ""
@@ -4223,7 +4251,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:72
-#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1116
#: templates/js/translated/build.js:1923
msgid "Actions"
msgstr ""
@@ -4308,14 +4336,14 @@ msgid "Total Stock"
msgstr ""
#: part/bom.py:129 part/templates/part/part_base.html:189
-#: templates/js/translated/order.js:3724
+#: templates/js/translated/order.js:3918
msgid "Available Stock"
msgstr ""
#: part/bom.py:130 part/templates/part/part_base.html:207
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853
-#: templates/js/translated/part.js:590 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503
+#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1853
+#: templates/js/translated/part.js:588 templates/js/translated/part.js:608
+#: templates/js/translated/part.js:1337 templates/js/translated/part.js:1520
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr ""
@@ -4344,7 +4372,7 @@ msgstr ""
msgid "Icon (optional)"
msgstr ""
-#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16
+#: part/models.py:122 part/models.py:2516 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -4361,7 +4389,7 @@ msgstr ""
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146
+#: templates/js/translated/part.js:2004 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr ""
@@ -4391,7 +4419,7 @@ msgstr ""
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:745 part/models.py:2562
+#: part/models.py:745 part/models.py:2570
msgid "Part name"
msgstr ""
@@ -4424,11 +4452,11 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:783 part/models.py:2257 part/models.py:2507
+#: part/models.py:783 part/models.py:2265 part/models.py:2515
#: part/templates/part/part_base.html:257
#: templates/InvenTree/settings/settings.html:232
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688
+#: templates/js/translated/part.js:1477 templates/js/translated/part.js:1717
msgid "Category"
msgstr ""
@@ -4437,7 +4465,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:789 part/templates/part/part_base.html:266
-#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:1430
#: templates/js/translated/stock.js:1726
msgid "IPN"
msgstr ""
@@ -4451,7 +4479,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:797 part/templates/part/part_base.html:273
-#: report/models.py:171 templates/js/translated/part.js:743
+#: report/models.py:171 templates/js/translated/part.js:741
msgid "Revision"
msgstr ""
@@ -4543,245 +4571,245 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2304
+#: part/models.py:2312
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2321
+#: part/models.py:2329
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2341 templates/js/translated/part.js:2026
+#: part/models.py:2349 templates/js/translated/part.js:2055
#: templates/js/translated/stock.js:1340
msgid "Test Name"
msgstr ""
-#: part/models.py:2342
+#: part/models.py:2350
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2347
+#: part/models.py:2355
msgid "Test Description"
msgstr ""
-#: part/models.py:2348
+#: part/models.py:2356
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2353 templates/js/translated/part.js:2035
+#: part/models.py:2361 templates/js/translated/part.js:2064
#: templates/js/translated/table_filters.js:302
msgid "Required"
msgstr ""
-#: part/models.py:2354
+#: part/models.py:2362
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2359 templates/js/translated/part.js:2043
+#: part/models.py:2367 templates/js/translated/part.js:2072
msgid "Requires Value"
msgstr ""
-#: part/models.py:2360
+#: part/models.py:2368
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2365 templates/js/translated/part.js:2050
+#: part/models.py:2373 templates/js/translated/part.js:2079
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2366
+#: part/models.py:2374
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2374
+#: part/models.py:2382
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2410
+#: part/models.py:2418
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2418
+#: part/models.py:2426
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2433
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2430
+#: part/models.py:2438
msgid "Parameter description"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2471
msgid "Parent Part"
msgstr ""
-#: part/models.py:2465 part/models.py:2513 part/models.py:2514
+#: part/models.py:2473 part/models.py:2521 part/models.py:2522
#: templates/InvenTree/settings/settings.html:227
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Data"
msgstr ""
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2518 templates/InvenTree/settings/settings.html:236
+#: part/models.py:2526 templates/InvenTree/settings/settings.html:236
msgid "Default Value"
msgstr ""
-#: part/models.py:2519
+#: part/models.py:2527
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2554
+#: part/models.py:2562
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2557 templates/js/translated/model_renderers.js:212
+#: part/models.py:2565 templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr ""
-#: part/models.py:2558
+#: part/models.py:2566
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2561
+#: part/models.py:2569
msgid "Part Name"
msgstr ""
-#: part/models.py:2565
+#: part/models.py:2573
msgid "Part IPN"
msgstr ""
-#: part/models.py:2566
+#: part/models.py:2574
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2569
+#: part/models.py:2577
msgid "Level"
msgstr ""
-#: part/models.py:2570
+#: part/models.py:2578
msgid "BOM level"
msgstr ""
-#: part/models.py:2639
+#: part/models.py:2647
msgid "Select parent part"
msgstr ""
-#: part/models.py:2647
+#: part/models.py:2655
msgid "Sub part"
msgstr ""
-#: part/models.py:2648
+#: part/models.py:2656
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2654
+#: part/models.py:2662
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2656 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997
+#: part/models.py:2664 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:876 templates/js/translated/bom.js:1005
#: templates/js/translated/table_filters.js:100
msgid "Optional"
msgstr ""
-#: part/models.py:2656
+#: part/models.py:2664
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2659 part/templates/part/upload_bom.html:55
+#: part/models.py:2667 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2660
+#: part/models.py:2668
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2671
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2666
+#: part/models.py:2674
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "Checksum"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2672 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1014
+#: part/models.py:2680 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:1022
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:96
msgid "Inherited"
msgstr ""
-#: part/models.py:2673
+#: part/models.py:2681
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2678 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1006
+#: part/models.py:2686 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:1014
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2679
+#: part/models.py:2687
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2757 stock/models.py:468
+#: part/models.py:2765 stock/models.py:468
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2766 part/models.py:2768
+#: part/models.py:2774 part/models.py:2776
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2873
+#: part/models.py:2881
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2902
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2915
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2923
msgid "Substitute part"
msgstr ""
-#: part/models.py:2930
+#: part/models.py:2938
msgid "Part 1"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Part 2"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2960
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:2956
+#: part/models.py:2964
msgid "Duplicate relationship already exists"
msgstr ""
@@ -5309,10 +5337,10 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:624
-#: templates/js/translated/company.js:884
+#: templates/js/translated/company.js:659
+#: templates/js/translated/company.js:920
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:654 templates/js/translated/part.js:731
+#: templates/js/translated/part.js:652 templates/js/translated/part.js:729
msgid "Inactive"
msgstr ""
@@ -5327,28 +5355,28 @@ msgid "This part is a variant of %(link)s"
msgstr ""
#: part/templates/part/part_base.html:194
-#: templates/js/translated/company.js:974
+#: templates/js/translated/company.js:1027
#: templates/js/translated/table_filters.js:201
msgid "In Stock"
msgstr ""
#: part/templates/part/part_base.html:215
-#: stock/templates/stock/item_base.html:379
+#: stock/templates/stock/item_base.html:382
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:224
-#: stock/templates/stock/item_base.html:372
+#: stock/templates/stock/item_base.html:375
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1043
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320
-#: templates/js/translated/part.js:1510
+#: part/templates/part/part_base.html:238 templates/js/translated/part.js:591
+#: templates/js/translated/part.js:611 templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1527
msgid "Building"
msgstr ""
@@ -5361,7 +5389,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:328
+#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
@@ -5400,7 +5428,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:989
+#: templates/js/translated/bom.js:997
msgid "No supplier pricing available"
msgstr ""
@@ -5439,7 +5467,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:53
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468
+#: templates/js/translated/order.js:2001 templates/js/translated/stock.js:2464
msgid "Date"
msgstr ""
@@ -5495,7 +5523,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983
+#: part/templates/part/prices.html:160 templates/js/translated/bom.js:991
msgid "Supplier Cost"
msgstr ""
@@ -5533,8 +5561,8 @@ msgstr ""
msgid "No sale pice history available for this part."
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616
-#: templates/js/translated/part.js:1308
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:614
+#: templates/js/translated/part.js:1329 templates/js/translated/part.js:1331
msgid "No Stock"
msgstr ""
@@ -5735,19 +5763,19 @@ msgstr ""
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:186
+#: plugin/models.py:188
msgid "Plugin"
msgstr ""
-#: plugin/models.py:249
+#: plugin/models.py:253
msgid "Method"
msgstr ""
-#: plugin/plugin.py:251
+#: plugin/plugin.py:252
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:263
+#: plugin/plugin.py:264
msgid "No date found"
msgstr ""
@@ -5925,12 +5953,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:648 stock/templates/stock/item_base.html:317
+#: stock/models.py:648 stock/templates/stock/item_base.html:320
#: templates/js/translated/build.js:456 templates/js/translated/build.js:608
#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706
#: templates/js/translated/model_renderers.js:118
-#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403
-#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490
+#: templates/js/translated/order.js:121 templates/js/translated/order.js:3597
+#: templates/js/translated/order.js:3684 templates/js/translated/stock.js:490
msgid "Serial Number"
msgstr ""
@@ -5963,7 +5991,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780
-#: templates/js/translated/stock.js:2717
+#: templates/js/translated/stock.js:2713
msgid "Serial"
msgstr ""
@@ -5980,7 +6008,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
#: stock/models.py:89 stock/models.py:739
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:250
msgid "Owner"
msgstr ""
@@ -6046,7 +6074,7 @@ msgstr ""
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:631 stock/templates/stock/item_base.html:356
+#: stock/models.py:631 stock/templates/stock/item_base.html:359
msgid "Installed In"
msgstr ""
@@ -6086,8 +6114,8 @@ msgstr ""
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:706 stock/templates/stock/item_base.html:424
-#: templates/js/translated/stock.js:1883
+#: stock/models.py:706 stock/templates/stock/item_base.html:427
+#: templates/js/translated/stock.js:1879
msgid "Expiry Date"
msgstr ""
@@ -6379,7 +6407,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2857
msgid "Install Stock Item"
msgstr ""
@@ -6479,134 +6507,135 @@ msgstr ""
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:158
+#: stock/templates/stock/item_base.html:161
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:193
+#: stock/templates/stock/item_base.html:196
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:214
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:254
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/location.html:132
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:268
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:266
+#: stock/templates/stock/item_base.html:269
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:279
+#: stock/templates/stock/item_base.html:282
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:290
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:298
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:301
+#: stock/templates/stock/item_base.html:304
msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
msgstr ""
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:345
+#: stock/templates/stock/item_base.html:348
msgid "Available Quantity"
msgstr ""
-#: stock/templates/stock/item_base.html:389
+#: stock/templates/stock/item_base.html:392
#: templates/js/translated/build.js:1729
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:404
+#: stock/templates/stock/item_base.html:407
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#: templates/js/translated/table_filters.js:269
msgid "Expired"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:275
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:437
-#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899
+#: stock/templates/stock/item_base.html:440
+#: templates/js/translated/company.js:1038
+#: templates/js/translated/stock.js:1895
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:442
+#: stock/templates/stock/item_base.html:445
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:516
+#: stock/templates/stock/item_base.html:519
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:589
+#: stock/templates/stock/item_base.html:592
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:592
+#: stock/templates/stock/item_base.html:595
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:593
+#: stock/templates/stock/item_base.html:596
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:601
+#: stock/templates/stock/item_base.html:604
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:629
+#: stock/templates/stock/item_base.html:632
msgid "Return to Stock"
msgstr ""
@@ -6739,11 +6768,11 @@ msgstr ""
msgid "Refer to the error log in the admin interface for further details"
msgstr ""
-#: templates/503.html:11 templates/503.html:36
+#: templates/503.html:11 templates/503.html:34
msgid "Site is in Maintenance"
msgstr ""
-#: templates/503.html:42
+#: templates/503.html:40
msgid "The site is currently in maintenance and should be up again soon!"
msgstr ""
@@ -7509,7 +7538,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:644
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr ""
@@ -7728,7 +7757,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1481
+#: templates/js/translated/bom.js:1489
msgid "Required Quantity"
msgstr ""
@@ -7742,7 +7771,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2522
+#: templates/js/translated/part.js:2551
msgid "Minimum Quantity"
msgstr ""
@@ -7947,7 +7976,7 @@ msgstr ""
#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620
#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601
#: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003
-#: templates/js/translated/order.js:1085 templates/modals.html:15
+#: templates/js/translated/order.js:1179 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -7957,12 +7986,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145
+#: templates/js/translated/order.js:960 templates/js/translated/tables.js:145
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:867
+#: templates/js/translated/order.js:961
msgid "Select file format"
msgstr ""
@@ -8058,73 +8087,73 @@ msgstr ""
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857
-#: templates/js/translated/order.js:3738
+#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1857
+#: templates/js/translated/order.js:3932
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861
+#: templates/js/translated/bom.js:940 templates/js/translated/build.js:1861
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516
+#: templates/js/translated/bom.js:942 templates/js/translated/build.js:1863
+#: templates/js/translated/part.js:761 templates/js/translated/part.js:1533
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865
+#: templates/js/translated/bom.js:944 templates/js/translated/build.js:1865
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:954
+#: templates/js/translated/bom.js:962
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:969
+#: templates/js/translated/bom.js:977
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:976
+#: templates/js/translated/bom.js:984
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145
+#: templates/js/translated/bom.js:1033 templates/js/translated/bom.js:1153
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1052
+#: templates/js/translated/bom.js:1060
msgid "Including On Order"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1124
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1118
+#: templates/js/translated/bom.js:1126
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1120
+#: templates/js/translated/bom.js:1128
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284
+#: templates/js/translated/bom.js:1130 templates/js/translated/bom.js:1292
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1124
+#: templates/js/translated/bom.js:1132
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650
+#: templates/js/translated/bom.js:1228 templates/js/translated/build.js:1650
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789
+#: templates/js/translated/bom.js:1472 templates/js/translated/build.js:1789
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1486
+#: templates/js/translated/bom.js:1498
msgid "Inherited from parent BOM"
msgstr ""
@@ -8267,12 +8296,12 @@ msgid "No required tests for this build"
msgstr ""
#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697
-#: templates/js/translated/order.js:3438
+#: templates/js/translated/order.js:3632
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698
-#: templates/js/translated/order.js:3439
+#: templates/js/translated/order.js:3633
msgid "Delete stock allocation"
msgstr ""
@@ -8292,20 +8321,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745
+#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3939
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743
+#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3937
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127
-#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757
+#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3951
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837
+#: templates/js/translated/build.js:1930 templates/js/translated/order.js:4031
msgid "Build stock"
msgstr ""
@@ -8313,21 +8342,21 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830
+#: templates/js/translated/build.js:1937 templates/js/translated/order.js:4024
msgid "Allocate stock"
msgstr ""
#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965
+#: templates/js/translated/order.js:1007 templates/js/translated/order.js:3159
#: templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966
+#: templates/js/translated/build.js:1977 templates/js/translated/order.js:3160
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914
+#: templates/js/translated/build.js:2026 templates/js/translated/order.js:3108
msgid "Specify stock allocation quantity"
msgstr ""
@@ -8339,7 +8368,7 @@ msgstr ""
msgid "All selected parts have been fully allocated"
msgstr ""
-#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980
+#: templates/js/translated/build.js:2115 templates/js/translated/order.js:3174
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
@@ -8347,11 +8376,11 @@ msgstr ""
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077
+#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3271
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154
+#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3348
msgid "No matching stock items"
msgstr ""
@@ -8383,9 +8412,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401
-#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1422
+#: templates/js/translated/part.js:1948 templates/js/translated/stock.js:1686
+#: templates/js/translated/stock.js:2382
msgid "Select"
msgstr ""
@@ -8397,7 +8426,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647
+#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2643
msgid "No user information"
msgstr ""
@@ -8405,111 +8434,115 @@ msgstr ""
msgid "No parts allocated for"
msgstr ""
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:179
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:181
msgid "Add Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
msgid "Edit Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:167 templates/js/translated/order.js:511
+#: templates/js/translated/company.js:169 templates/js/translated/order.js:576
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:195 templates/js/translated/order.js:734
+#: templates/js/translated/company.js:197 templates/js/translated/order.js:828
msgid "Add Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:262
+#: templates/js/translated/company.js:297
msgid "All selected supplier parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:278
+#: templates/js/translated/company.js:313
msgid "Delete Supplier Parts"
msgstr ""
-#: templates/js/translated/company.js:350
+#: templates/js/translated/company.js:385
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:427
+#: templates/js/translated/company.js:462
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:471
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:451
+#: templates/js/translated/company.js:486
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:492
+#: templates/js/translated/company.js:527
msgid "All selected manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:507
+#: templates/js/translated/company.js:542
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:541
+#: templates/js/translated/company.js:576
msgid "All selected parameters will be deleted"
msgstr ""
-#: templates/js/translated/company.js:555
+#: templates/js/translated/company.js:590
msgid "Delete Parameters"
msgstr ""
-#: templates/js/translated/company.js:596
+#: templates/js/translated/company.js:631
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:616
-#: templates/js/translated/company.js:876 templates/js/translated/part.js:638
-#: templates/js/translated/part.js:723
+#: templates/js/translated/company.js:651
+#: templates/js/translated/company.js:912 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:721
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:620
-#: templates/js/translated/company.js:880 templates/js/translated/part.js:642
-#: templates/js/translated/part.js:727
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:916 templates/js/translated/part.js:640
+#: templates/js/translated/part.js:725
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:748 templates/js/translated/part.js:830
+#: templates/js/translated/company.js:783 templates/js/translated/part.js:828
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:785 templates/js/translated/part.js:872
+#: templates/js/translated/company.js:820 templates/js/translated/part.js:870
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:786 templates/js/translated/part.js:873
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:871
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:805 templates/js/translated/part.js:890
+#: templates/js/translated/company.js:840 templates/js/translated/part.js:888
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:816 templates/js/translated/part.js:902
+#: templates/js/translated/company.js:851 templates/js/translated/part.js:900
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:856
+#: templates/js/translated/company.js:891
msgid "No supplier parts found"
msgstr ""
-#: templates/js/translated/company.js:1002
+#: templates/js/translated/company.js:1032
+msgid "Availability"
+msgstr ""
+
+#: templates/js/translated/company.js:1055
msgid "Edit supplier part"
msgstr ""
-#: templates/js/translated/company.js:1003
+#: templates/js/translated/company.js:1056
msgid "Delete supplier part"
msgstr ""
@@ -8547,61 +8580,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:367 templates/js/translated/forms.js:382
-#: templates/js/translated/forms.js:396 templates/js/translated/forms.js:410
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:369
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:384
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:398
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:670
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:771
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1269 templates/modals.html:19
+#: templates/js/translated/forms.js:1274 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1702
+#: templates/js/translated/forms.js:1707
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1917 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2170
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2648
+#: templates/js/translated/forms.js:2653
msgid "Select Columns"
msgstr ""
@@ -8792,409 +8825,422 @@ msgstr ""
msgid "Notifications will load here"
msgstr ""
-#: templates/js/translated/order.js:96
+#: templates/js/translated/order.js:97
msgid "No stock items have been allocated to this shipment"
msgstr ""
-#: templates/js/translated/order.js:101
+#: templates/js/translated/order.js:102
msgid "The following stock items will be shipped"
msgstr ""
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:142
msgid "Complete Shipment"
msgstr ""
-#: templates/js/translated/order.js:161
+#: templates/js/translated/order.js:162
msgid "Confirm Shipment"
msgstr ""
-#: templates/js/translated/order.js:217
+#: templates/js/translated/order.js:218
msgid "No pending shipments found"
msgstr ""
-#: templates/js/translated/order.js:221
+#: templates/js/translated/order.js:222
msgid "No stock items have been allocated to pending shipments"
msgstr ""
-#: templates/js/translated/order.js:253
+#: templates/js/translated/order.js:254
msgid "Skip"
msgstr ""
-#: templates/js/translated/order.js:283
+#: templates/js/translated/order.js:284
msgid "Complete Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:289
+#: templates/js/translated/order.js:301 templates/js/translated/order.js:413
msgid "Mark this order as complete?"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:307
msgid "All line items have been received"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:312
msgid "This order has line items which have not been marked as received."
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:313 templates/js/translated/order.js:427
msgid "Completing this order means that the order and line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:324
+#: templates/js/translated/order.js:336
msgid "Cancel Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:329
+#: templates/js/translated/order.js:341
msgid "Are you sure you wish to cancel this purchase order?"
msgstr ""
-#: templates/js/translated/order.js:335
+#: templates/js/translated/order.js:347
msgid "This purchase order can not be cancelled"
msgstr ""
-#: templates/js/translated/order.js:358
+#: templates/js/translated/order.js:370
msgid "Issue Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:363
+#: templates/js/translated/order.js:375
msgid "After placing this purchase order, line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:385
+#: templates/js/translated/order.js:426
+msgid "This order has line items which have not been completed."
+msgstr ""
+
+#: templates/js/translated/order.js:450
msgid "Cancel Sales Order"
msgstr ""
-#: templates/js/translated/order.js:390
+#: templates/js/translated/order.js:455
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:444
+#: templates/js/translated/order.js:509
msgid "Create New Shipment"
msgstr ""
-#: templates/js/translated/order.js:469
+#: templates/js/translated/order.js:534
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:494
+#: templates/js/translated/order.js:559
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:555
+#: templates/js/translated/order.js:620
msgid "Select purchase order to duplicate"
msgstr ""
-#: templates/js/translated/order.js:562
+#: templates/js/translated/order.js:627
msgid "Duplicate Line Items"
msgstr ""
-#: templates/js/translated/order.js:563
+#: templates/js/translated/order.js:628
msgid "Duplicate all line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:570
+#: templates/js/translated/order.js:635
msgid "Duplicate Extra Lines"
msgstr ""
-#: templates/js/translated/order.js:571
+#: templates/js/translated/order.js:636
msgid "Duplicate extra line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:588
+#: templates/js/translated/order.js:653
msgid "Edit Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:605
+#: templates/js/translated/order.js:670
msgid "Duplication Options"
msgstr ""
-#: templates/js/translated/order.js:863
+#: templates/js/translated/order.js:957
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:914
+#: templates/js/translated/order.js:1008
msgid "At least one purchaseable part must be selected"
msgstr ""
-#: templates/js/translated/order.js:939
+#: templates/js/translated/order.js:1033
msgid "Quantity to order"
msgstr ""
-#: templates/js/translated/order.js:948
+#: templates/js/translated/order.js:1042
msgid "New supplier part"
msgstr ""
-#: templates/js/translated/order.js:966
+#: templates/js/translated/order.js:1060
msgid "New purchase order"
msgstr ""
-#: templates/js/translated/order.js:999
+#: templates/js/translated/order.js:1093
msgid "Add to purchase order"
msgstr ""
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1233
msgid "No matching supplier parts"
msgstr ""
-#: templates/js/translated/order.js:1123
+#: templates/js/translated/order.js:1252
msgid "No matching purchase orders"
msgstr ""
-#: templates/js/translated/order.js:1300
+#: templates/js/translated/order.js:1429
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1430
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420
+#: templates/js/translated/order.js:1450 templates/js/translated/order.js:1563
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431
+#: templates/js/translated/order.js:1456 templates/js/translated/order.js:1574
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1339
+#: templates/js/translated/order.js:1471
+msgid "Received Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:1482
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144
+#: templates/js/translated/order.js:1546 templates/js/translated/stock.js:2140
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:1494
+#: templates/js/translated/order.js:1639
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:1495
+#: templates/js/translated/order.js:1640
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:1497
+#: templates/js/translated/order.js:1642
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:1516
+#: templates/js/translated/order.js:1661
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:1517
+#: templates/js/translated/order.js:1662
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943
+#: templates/js/translated/order.js:1940 templates/js/translated/part.js:941
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2803
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674
-#: templates/js/translated/order.js:2815
+#: templates/js/translated/order.js:2017 templates/js/translated/order.js:2868
+#: templates/js/translated/order.js:3009
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889
+#: templates/js/translated/order.js:2115 templates/js/translated/order.js:4083
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911
+#: templates/js/translated/order.js:2132 templates/js/translated/order.js:4105
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:4116
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:2026
+#: templates/js/translated/order.js:2188
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:2215 templates/js/translated/order.js:3817
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309
-#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156
-#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753
+#: templates/js/translated/order.js:2270 templates/js/translated/part.js:1043
+#: templates/js/translated/part.js:1095
+msgid "Total Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:2301 templates/js/translated/order.js:2503
+#: templates/js/translated/order.js:3842 templates/js/translated/order.js:4350
+#: templates/js/translated/part.js:2184 templates/js/translated/part.js:2782
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325
-#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172
+#: templates/js/translated/order.js:2316 templates/js/translated/order.js:2519
+#: templates/js/translated/order.js:3858 templates/js/translated/order.js:4366
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706
-#: templates/js/translated/part.js:1070
+#: templates/js/translated/order.js:2357 templates/js/translated/order.js:3900
+#: templates/js/translated/part.js:1079
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110
+#: templates/js/translated/order.js:2416 templates/js/translated/part.js:1130
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2420 templates/js/translated/order.js:4037
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844
+#: templates/js/translated/order.js:2421 templates/js/translated/order.js:4038
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848
+#: templates/js/translated/order.js:2422 templates/js/translated/order.js:4042
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221
+#: templates/js/translated/order.js:2568 templates/js/translated/order.js:4415
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222
+#: templates/js/translated/order.js:2569 templates/js/translated/order.js:4416
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223
+#: templates/js/translated/order.js:2570 templates/js/translated/order.js:4417
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253
+#: templates/js/translated/order.js:2600 templates/js/translated/order.js:4447
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274
+#: templates/js/translated/order.js:2621 templates/js/translated/order.js:4468
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285
+#: templates/js/translated/order.js:2632 templates/js/translated/order.js:4479
msgid "Delete Line"
msgstr ""
-#: templates/js/translated/order.js:2449
+#: templates/js/translated/order.js:2643
msgid "No matching line"
msgstr ""
-#: templates/js/translated/order.js:2560
+#: templates/js/translated/order.js:2754
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:2623
+#: templates/js/translated/order.js:2817
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:2721
+#: templates/js/translated/order.js:2915
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:2724
+#: templates/js/translated/order.js:2918
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:2729
+#: templates/js/translated/order.js:2923
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:2749
+#: templates/js/translated/order.js:2943
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:2766
+#: templates/js/translated/order.js:2960
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:2800
+#: templates/js/translated/order.js:2994
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:2810
+#: templates/js/translated/order.js:3004
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:2834
+#: templates/js/translated/order.js:3028
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:2840
+#: templates/js/translated/order.js:3034
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:2844
+#: templates/js/translated/order.js:3038
msgid "Invoice"
msgstr ""
-#: templates/js/translated/order.js:3013
+#: templates/js/translated/order.js:3207
msgid "Add Shipment"
msgstr ""
-#: templates/js/translated/order.js:3064
+#: templates/js/translated/order.js:3258
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/order.js:3065
+#: templates/js/translated/order.js:3259
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:3273
+#: templates/js/translated/order.js:3467
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:3352
+#: templates/js/translated/order.js:3546
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3369
+#: templates/js/translated/order.js:3563
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:3370
+#: templates/js/translated/order.js:3564
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504
+#: templates/js/translated/order.js:3609 templates/js/translated/order.js:3698
#: templates/js/translated/stock.js:1602
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513
+#: templates/js/translated/order.js:3617 templates/js/translated/order.js:3707
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3827
+#: templates/js/translated/order.js:4021
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3833
+#: templates/js/translated/order.js:4027
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038
+#: templates/js/translated/order.js:4034 templates/js/translated/order.js:4232
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3852
+#: templates/js/translated/order.js:4046
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3855
+#: templates/js/translated/order.js:4049
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3937
+#: templates/js/translated/order.js:4131
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:4046
+#: templates/js/translated/order.js:4240
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:4060
+#: templates/js/translated/order.js:4254
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4296
+#: templates/js/translated/order.js:4490
msgid "No matching lines"
msgstr ""
@@ -9374,173 +9420,177 @@ msgstr ""
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498
+#: templates/js/translated/part.js:584 templates/js/translated/part.js:1515
#: templates/js/translated/table_filters.js:468
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:596
+#: templates/js/translated/part.js:594
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:715
+#: templates/js/translated/part.js:628 templates/js/translated/part.js:713
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:634 templates/js/translated/part.js:719
+#: templates/js/translated/part.js:632 templates/js/translated/part.js:717
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:646
+#: templates/js/translated/part.js:644
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:650
+#: templates/js/translated/part.js:648
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:778
+#: templates/js/translated/part.js:776
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1180
+#: templates/js/translated/part.js:1200
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1204
+#: templates/js/translated/part.js:1224
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573
+#: templates/js/translated/part.js:1291 templates/js/translated/part.js:1602
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1310
-msgid "Not available"
-msgstr ""
-
-#: templates/js/translated/part.js:1461
+#: templates/js/translated/part.js:1482
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1496
+#: templates/js/translated/part.js:1513
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840
-#: templates/js/translated/stock.js:2347
+#: templates/js/translated/part.js:1537
+msgid "Allocated to build orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1541
+msgid "Allocated to sales orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1626 templates/js/translated/part.js:1869
+#: templates/js/translated/stock.js:2343
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1613
+#: templates/js/translated/part.js:1642
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1679
+#: templates/js/translated/part.js:1708
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1684
+#: templates/js/translated/part.js:1713
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:1689
+#: templates/js/translated/part.js:1718
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1702
+#: templates/js/translated/part.js:1731
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366
+#: templates/js/translated/part.js:1888 templates/js/translated/stock.js:2362
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1938
+#: templates/js/translated/part.js:1967
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:1954
+#: templates/js/translated/part.js:1983
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2012
+#: templates/js/translated/part.js:2041
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299
+#: templates/js/translated/part.js:2092 templates/js/translated/stock.js:1299
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300
+#: templates/js/translated/part.js:2093 templates/js/translated/stock.js:1300
#: templates/js/translated/stock.js:1560
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2070
+#: templates/js/translated/part.js:2099
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2092
+#: templates/js/translated/part.js:2121
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2106
+#: templates/js/translated/part.js:2135
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2131
+#: templates/js/translated/part.js:2160
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:2188
+#: templates/js/translated/part.js:2217
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2189
+#: templates/js/translated/part.js:2218
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355
+#: templates/js/translated/part.js:2383 templates/js/translated/part.js:2384
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2357
+#: templates/js/translated/part.js:2386
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2363
+#: templates/js/translated/part.js:2392
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2413
+#: templates/js/translated/part.js:2442
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2419
+#: templates/js/translated/part.js:2448
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2515
+#: templates/js/translated/part.js:2544
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2531
+#: templates/js/translated/part.js:2560
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2576
+#: templates/js/translated/part.js:2605
msgid "Minimum Stock Level"
msgstr ""
-#: templates/js/translated/part.js:2677
+#: templates/js/translated/part.js:2706
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:2696
+#: templates/js/translated/part.js:2725
msgid "Single Price Difference"
msgstr ""
@@ -9778,7 +9828,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:942 users/models.py:216
+#: templates/js/translated/stock.js:942 users/models.py:218
msgid "Add"
msgstr ""
@@ -9854,156 +9904,156 @@ msgstr ""
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1775
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1780
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1787
+#: templates/js/translated/stock.js:1783
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1790
+#: templates/js/translated/stock.js:1786
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1792
+#: templates/js/translated/stock.js:1788
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1794
+#: templates/js/translated/stock.js:1790
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1797
+#: templates/js/translated/stock.js:1793
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1797
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1803
+#: templates/js/translated/stock.js:1799
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1810
+#: templates/js/translated/stock.js:1806
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:1808
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1814
+#: templates/js/translated/stock.js:1810
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1818
+#: templates/js/translated/stock.js:1814
#: templates/js/translated/table_filters.js:196
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1869
+#: templates/js/translated/stock.js:1865
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1948
+#: templates/js/translated/stock.js:1944
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1986
+#: templates/js/translated/stock.js:1982
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2159
+#: templates/js/translated/stock.js:2155
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2173
+#: templates/js/translated/stock.js:2169
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2174
+#: templates/js/translated/stock.js:2170
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2404
+#: templates/js/translated/stock.js:2400
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2493
+#: templates/js/translated/stock.js:2489
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2509
+#: templates/js/translated/stock.js:2505
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2531
+#: templates/js/translated/stock.js:2527
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2550
+#: templates/js/translated/stock.js:2546
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2569
+#: templates/js/translated/stock.js:2565
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2587
+#: templates/js/translated/stock.js:2583
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2610
+#: templates/js/translated/stock.js:2606
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2618
+#: templates/js/translated/stock.js:2614
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2694
+#: templates/js/translated/stock.js:2690
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781
+#: templates/js/translated/stock.js:2741 templates/js/translated/stock.js:2777
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2790
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2815
+#: templates/js/translated/stock.js:2811
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2816
+#: templates/js/translated/stock.js:2812
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2818
+#: templates/js/translated/stock.js:2814
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2819
+#: templates/js/translated/stock.js:2815
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2820
+#: templates/js/translated/stock.js:2816
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2821
+#: templates/js/translated/stock.js:2817
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2834
+#: templates/js/translated/stock.js:2830
msgid "Select part to install"
msgstr ""
@@ -10525,35 +10575,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:203
+#: users/models.py:205
msgid "Permission set"
msgstr ""
-#: users/models.py:211
+#: users/models.py:213
msgid "Group"
msgstr ""
-#: users/models.py:214
+#: users/models.py:216
msgid "View"
msgstr ""
-#: users/models.py:214
+#: users/models.py:216
msgid "Permission to view items"
msgstr ""
-#: users/models.py:216
+#: users/models.py:218
msgid "Permission to add items"
msgstr ""
-#: users/models.py:218
+#: users/models.py:220
msgid "Change"
msgstr ""
-#: users/models.py:218
+#: users/models.py:220
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:222
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/es_MX/LC_MESSAGES/django.po b/InvenTree/locale/es_MX/LC_MESSAGES/django.po
index a048464cc0..45494f7b7e 100644
--- a/InvenTree/locale/es_MX/LC_MESSAGES/django.po
+++ b/InvenTree/locale/es_MX/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-08-24 21:34+0000\n"
+"POT-Creation-Date: 2022-09-05 11:39+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -42,9 +42,9 @@ msgstr ""
#: stock/serializers.py:922 stock/serializers.py:1054
#: stock/templates/stock/stock_sidebar.html:25
#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099
-#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210
-#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859
-#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208
+#: templates/js/translated/company.js:964 templates/js/translated/order.js:2275
+#: templates/js/translated/order.js:2426 templates/js/translated/order.js:2924
+#: templates/js/translated/order.js:3875 templates/js/translated/order.js:4273
#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980
msgid "Notes"
msgstr ""
@@ -90,81 +90,81 @@ msgstr ""
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:173
+#: InvenTree/helpers.py:175
msgid "Connection error"
msgstr ""
-#: InvenTree/helpers.py:177 InvenTree/helpers.py:182
+#: InvenTree/helpers.py:179 InvenTree/helpers.py:184
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers.py:179
+#: InvenTree/helpers.py:181
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers.py:187
+#: InvenTree/helpers.py:189
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers.py:190
+#: InvenTree/helpers.py:192
msgid "Image size is too large"
msgstr ""
-#: InvenTree/helpers.py:202
+#: InvenTree/helpers.py:204
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers.py:207
+#: InvenTree/helpers.py:209
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers.py:215
+#: InvenTree/helpers.py:217
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: InvenTree/helpers.py:598
+#: InvenTree/helpers.py:600
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr ""
-#: InvenTree/helpers.py:605 order/models.py:320 order/models.py:472
+#: InvenTree/helpers.py:607 order/models.py:320 order/models.py:472
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:608
+#: InvenTree/helpers.py:610
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:640
+#: InvenTree/helpers.py:642
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:643
+#: InvenTree/helpers.py:645
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:671
+#: InvenTree/helpers.py:673
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:679
+#: InvenTree/helpers.py:681
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:685
+#: InvenTree/helpers.py:687
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:689
+#: InvenTree/helpers.py:691
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/mixins.py:72
+#: InvenTree/helpers.py:890
msgid "Remove HTML tags from this value"
msgstr ""
@@ -215,7 +215,7 @@ msgstr ""
#: part/models.py:802 part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848
+#: templates/js/translated/company.js:948 templates/js/translated/order.js:2913
#: templates/js/translated/part.js:1534
msgid "Link"
msgstr ""
@@ -234,10 +234,10 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665
-#: common/models.py:1666 common/models.py:1889 common/models.py:1890
-#: common/models.py:2152 common/models.py:2153 part/models.py:2239
-#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257
+#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1669
+#: common/models.py:1670 common/models.py:1893 common/models.py:1894
+#: common/models.py:2156 common/models.py:2157 part/models.py:2239
+#: part/models.py:2259 plugin/models.py:260 plugin/models.py:261
#: report/templates/report/inventree_test_report_base.html:96
#: templates/js/translated/stock.js:2641
msgid "User"
@@ -276,7 +276,7 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875
+#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1879
#: company/models.py:358 label/models.py:101 part/models.py:746
#: part/models.py:2417 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
@@ -308,8 +308,8 @@ msgstr ""
#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846
#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409
#: templates/js/translated/company.js:667
-#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637
+#: templates/js/translated/company.js:959 templates/js/translated/order.js:1891
+#: templates/js/translated/order.js:2123 templates/js/translated/order.js:2702
#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167
#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962
#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743
@@ -544,7 +544,7 @@ msgid "Returned"
msgstr ""
#: InvenTree/status_codes.py:141 order/models.py:1128
-#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785
+#: templates/js/translated/order.js:3501 templates/js/translated/order.js:3850
msgid "Shipped"
msgstr ""
@@ -694,31 +694,31 @@ msgstr ""
msgid "Invalid value for overage"
msgstr ""
-#: InvenTree/views.py:519 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:520 templates/InvenTree/settings/user.html:22
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:531 templates/InvenTree/settings/user.html:19
+#: InvenTree/views.py:532 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:553
+#: InvenTree/views.py:554
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:562
+#: InvenTree/views.py:563
msgid "Wrong password provided"
msgstr ""
-#: InvenTree/views.py:769 templates/navbar.html:152
+#: InvenTree/views.py:773 templates/navbar.html:152
msgid "System Information"
msgstr ""
-#: InvenTree/views.py:776 templates/navbar.html:163
+#: InvenTree/views.py:780 templates/navbar.html:163
msgid "About InvenTree"
msgstr ""
-#: build/api.py:217
+#: build/api.py:219
msgid "Build must be cancelled before it can be deleted"
msgstr ""
@@ -740,7 +740,7 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:120
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
-#: templates/InvenTree/search.html:139
+#: templates/InvenTree/search.html:141
#: templates/InvenTree/settings/sidebar.html:47 users/models.py:41
msgid "Build Orders"
msgstr ""
@@ -755,9 +755,9 @@ msgstr ""
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853
-#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089
-#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629
-#: templates/js/translated/order.js:4137
+#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2154
+#: templates/js/translated/order.js:2355 templates/js/translated/order.js:3694
+#: templates/js/translated/order.js:4202
msgid "Reference"
msgstr ""
@@ -787,7 +787,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:109
#: report/templates/report/inventree_po_report.html:89
#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86
-#: stock/serializers.py:490 templates/InvenTree/search.html:80
+#: stock/serializers.py:490 templates/InvenTree/search.html:82
#: templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
@@ -799,10 +799,10 @@ msgstr ""
#: templates/js/translated/company.js:266
#: templates/js/translated/company.js:496
#: templates/js/translated/company.js:608
-#: templates/js/translated/company.js:868 templates/js/translated/order.js:105
-#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493
-#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613
+#: templates/js/translated/company.js:868 templates/js/translated/order.js:106
+#: templates/js/translated/order.js:1105 templates/js/translated/order.js:1558
+#: templates/js/translated/order.js:2108 templates/js/translated/order.js:3056
+#: templates/js/translated/order.js:3452 templates/js/translated/order.js:3678
#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224
#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586
#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958
@@ -824,7 +824,7 @@ msgid "SalesOrder to which this build is allocated"
msgstr ""
#: build/models.py:213 build/serializers.py:800
-#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979
+#: templates/js/translated/build.js:2114 templates/js/translated/order.js:3044
msgid "Source Location"
msgstr ""
@@ -864,8 +864,8 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:251 build/serializers.py:225 order/serializers.py:447
-#: stock/models.py:662 templates/js/translated/order.js:1353
+#: build/models.py:251 build/serializers.py:225 order/serializers.py:464
+#: stock/models.py:662 templates/js/translated/order.js:1418
msgid "Batch Code"
msgstr ""
@@ -874,7 +874,7 @@ msgid "Batch code for this build output"
msgstr ""
#: build/models.py:258 order/models.py:86 part/models.py:938
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2715
msgid "Creation Date"
msgstr ""
@@ -908,7 +908,7 @@ msgstr ""
#: order/templates/order/order_base.html:179
#: order/templates/order/sales_order_base.html:183 part/models.py:942
#: report/templates/report/inventree_build_order_base.html:158
-#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860
+#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1925
msgid "Responsible"
msgstr ""
@@ -920,7 +920,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:153
#: part/templates/part/part_base.html:346 stock/models.py:656
-#: stock/templates/stock/item_base.html:199
+#: stock/templates/stock/item_base.html:200
msgid "External Link"
msgstr ""
@@ -974,8 +974,8 @@ msgstr ""
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1326 stock/templates/stock/item_base.html:171
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2496
+#: build/models.py:1326 stock/templates/stock/item_base.html:172
+#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496
#: templates/navbar.html:38
msgid "Build"
msgstr ""
@@ -984,16 +984,16 @@ msgstr ""
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015
-#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754
+#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1032
+#: order/serializers.py:1053 stock/serializers.py:394 stock/serializers.py:754
#: stock/serializers.py:880 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:193
+#: stock/templates/stock/item_base.html:194
#: templates/js/translated/build.js:774 templates/js/translated/build.js:779
#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679
-#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992
-#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299
-#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486
+#: templates/js/translated/order.js:107 templates/js/translated/order.js:3057
+#: templates/js/translated/order.js:3359 templates/js/translated/order.js:3364
+#: templates/js/translated/order.js:3459 templates/js/translated/order.js:3551
#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752
#: templates/js/translated/stock.js:2577
msgid "Stock Item"
@@ -1005,9 +1005,9 @@ msgstr ""
#: build/models.py:1356 build/serializers.py:193
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1697
+#: build/templates/build/detail.html:34 common/models.py:1701
#: company/templates/company/supplier_part.html:279 order/models.py:897
-#: order/models.py:1423 order/serializers.py:1155
+#: order/models.py:1423 order/serializers.py:1206
#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40
#: part/models.py:2654 part/templates/part/detail.html:951
#: part/templates/part/detail.html:1037
@@ -1018,8 +1018,8 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:291 stock/templates/stock/item_base.html:286
-#: stock/templates/stock/item_base.html:294
+#: stock/serializers.py:291 stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:295
#: templates/email/build_order_completed.html:18
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691
#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458
@@ -1027,11 +1027,11 @@ msgstr ""
#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708
#: templates/js/translated/build.js:2129
#: templates/js/translated/model_renderers.js:120
-#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043
-#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313
-#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492
-#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143
+#: templates/js/translated/order.js:123 templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:2160 templates/js/translated/order.js:2361
+#: templates/js/translated/order.js:3058 templates/js/translated/order.js:3378
+#: templates/js/translated/order.js:3465 templates/js/translated/order.js:3557
+#: templates/js/translated/order.js:3700 templates/js/translated/order.js:4208
#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176
#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686
#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458
@@ -1078,7 +1078,7 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:208 build/serializers.py:665 order/models.py:318
-#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545
+#: order/serializers.py:304 order/serializers.py:459 part/serializers.py:545
#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251
#: stock/serializers.py:300
msgid "Quantity must be greater than zero"
@@ -1092,8 +1092,8 @@ msgstr ""
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159
-#: stock/serializers.py:309 templates/js/translated/order.js:1364
+#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1210
+#: stock/serializers.py:309 templates/js/translated/order.js:1429
#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459
msgid "Serial Numbers"
msgstr ""
@@ -1118,15 +1118,15 @@ msgstr ""
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532
+#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:549
#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532
#: stock/serializers.py:915 stock/serializers.py:1148
-#: stock/templates/stock/item_base.html:384
+#: stock/templates/stock/item_base.html:385
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786
-#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391
-#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411
-#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500
+#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1456
+#: templates/js/translated/order.js:3371 templates/js/translated/order.js:3476
+#: templates/js/translated/order.js:3484 templates/js/translated/order.js:3565
#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588
#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960
#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518
@@ -1139,10 +1139,10 @@ msgstr ""
#: build/serializers.py:373 build/templates/build/build_base.html:145
#: build/templates/build/detail.html:62 order/models.py:642
-#: order/serializers.py:465 stock/templates/stock/item_base.html:417
+#: order/serializers.py:482 stock/templates/stock/item_base.html:418
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546
-#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830
-#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829
+#: templates/js/translated/order.js:1563 templates/js/translated/order.js:1895
+#: templates/js/translated/order.js:2707 templates/js/translated/stock.js:1829
#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727
msgid "Status"
msgstr ""
@@ -1203,7 +1203,7 @@ msgstr ""
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:527
+#: build/serializers.py:527 order/serializers.py:208 order/serializers.py:1100
msgid "Accept Incomplete"
msgstr ""
@@ -1240,7 +1240,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:709 order/serializers.py:1073
+#: build/serializers.py:709 order/serializers.py:1090
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1257,7 +1257,7 @@ msgstr ""
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:750 order/serializers.py:1319
+#: build/serializers.py:750 order/serializers.py:1370
msgid "Allocation items must be provided"
msgstr ""
@@ -1376,9 +1376,9 @@ msgstr ""
#: order/templates/order/order_base.html:165
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:125
-#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847
-#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658
-#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042
+#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1912
+#: templates/js/translated/order.js:2222 templates/js/translated/order.js:2723
+#: templates/js/translated/order.js:3763 templates/js/translated/part.js:1042
msgid "Target Date"
msgstr ""
@@ -1411,9 +1411,9 @@ msgstr ""
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:364
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
-#: templates/js/translated/order.js:2604
+#: templates/js/translated/order.js:2669
msgid "Sales Order"
msgstr ""
@@ -1440,7 +1440,7 @@ msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:49 order/models.py:1023
-#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199
+#: templates/js/translated/order.js:1564 templates/js/translated/order.js:2264
msgid "Destination"
msgstr ""
@@ -1453,7 +1453,7 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:164
+#: stock/templates/stock/item_base.html:165
#: templates/js/translated/build.js:1215
#: templates/js/translated/model_renderers.js:124
#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843
@@ -1517,7 +1517,7 @@ msgstr ""
#: build/templates/build/detail.html:187
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:85
-#: part/templates/part/category.html:183 templates/js/translated/order.js:1083
+#: part/templates/part/category.html:183 templates/js/translated/order.js:1148
msgid "Order Parts"
msgstr ""
@@ -2276,349 +2276,349 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1342 common/models.py:1658
+#: common/models.py:1344 common/models.py:1662
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1364
+#: common/models.py:1366
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1365
+#: common/models.py:1367
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1371
+#: common/models.py:1373
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1372
+#: common/models.py:1374
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1378
+#: common/models.py:1380
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1379
+#: common/models.py:1381
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1385
+#: common/models.py:1387
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1386
+#: common/models.py:1388
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1392
+#: common/models.py:1394
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1393
+#: common/models.py:1395
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1399
+#: common/models.py:1401
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1400
+#: common/models.py:1402
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1406
+#: common/models.py:1408
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1407
+#: common/models.py:1409
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1413
+#: common/models.py:1415
msgid "Show low stock"
msgstr ""
-#: common/models.py:1414
+#: common/models.py:1416
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1420
+#: common/models.py:1422
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1421
+#: common/models.py:1423
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1427
+#: common/models.py:1429
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1430
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1434
+#: common/models.py:1436
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1435
+#: common/models.py:1437
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1441
+#: common/models.py:1443
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1442
+#: common/models.py:1444
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1448
+#: common/models.py:1450
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1449
+#: common/models.py:1451
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1455
+#: common/models.py:1457
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1456
+#: common/models.py:1458
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1462
+#: common/models.py:1464
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1463
+#: common/models.py:1465
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1469
+#: common/models.py:1471
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1470
+#: common/models.py:1472
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1476
+#: common/models.py:1478
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1477
+#: common/models.py:1479
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1483
+#: common/models.py:1485
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1484
+#: common/models.py:1486
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1490
+#: common/models.py:1492
msgid "Inline label display"
msgstr ""
-#: common/models.py:1491
+#: common/models.py:1493
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1499
msgid "Inline report display"
msgstr ""
-#: common/models.py:1498
+#: common/models.py:1500
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1506
msgid "Search Parts"
msgstr ""
-#: common/models.py:1505
+#: common/models.py:1507
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1513
msgid "Seach Supplier Parts"
msgstr ""
-#: common/models.py:1512
+#: common/models.py:1514
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1520
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:1519
+#: common/models.py:1521
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:1525
+#: common/models.py:1527
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1526
+#: common/models.py:1528
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1532
+#: common/models.py:1534
msgid "Search Categories"
msgstr ""
-#: common/models.py:1533
+#: common/models.py:1535
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1539
+#: common/models.py:1541
msgid "Search Stock"
msgstr ""
-#: common/models.py:1540
+#: common/models.py:1542
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1546
+#: common/models.py:1548
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1547
+#: common/models.py:1549
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1553
+#: common/models.py:1555
msgid "Search Locations"
msgstr ""
-#: common/models.py:1554
+#: common/models.py:1556
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1560
+#: common/models.py:1562
msgid "Search Companies"
msgstr ""
-#: common/models.py:1561
+#: common/models.py:1563
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1567
+#: common/models.py:1569
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1568
+#: common/models.py:1570
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1574
+#: common/models.py:1576
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1575
+#: common/models.py:1577
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1581
+#: common/models.py:1583
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1582
+#: common/models.py:1584
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1588
+#: common/models.py:1590
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1591
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1595
+#: common/models.py:1597
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1598
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1602
+#: common/models.py:1604
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1605
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1609
+#: common/models.py:1611
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1610
+#: common/models.py:1612
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1616
+#: common/models.py:1618
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1617
+#: common/models.py:1619
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1623
+#: common/models.py:1625
msgid "Date Format"
msgstr ""
-#: common/models.py:1624
+#: common/models.py:1626
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1638 part/templates/part/detail.html:41
+#: common/models.py:1640 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1641
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1698
+#: common/models.py:1702
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1705 company/serializers.py:366
+#: common/models.py:1709 company/serializers.py:366
#: company/templates/company/supplier_part.html:284 order/models.py:938
#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181
msgid "Price"
msgstr ""
-#: common/models.py:1706
+#: common/models.py:1710
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1866 common/models.py:2044
+#: common/models.py:1870 common/models.py:2048
msgid "Endpoint"
msgstr ""
-#: common/models.py:1867
+#: common/models.py:1871
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1876
+#: common/models.py:1880
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1881 part/models.py:921 plugin/models.py:100
+#: common/models.py:1885 part/models.py:921 plugin/models.py:100
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:104
#: templates/js/translated/table_filters.js:316
@@ -2626,67 +2626,67 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1886
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1896
+#: common/models.py:1900
msgid "Token"
msgstr ""
-#: common/models.py:1897
+#: common/models.py:1901
msgid "Token for access"
msgstr ""
-#: common/models.py:1904
+#: common/models.py:1908
msgid "Secret"
msgstr ""
-#: common/models.py:1905
+#: common/models.py:1909
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2011
+#: common/models.py:2015
msgid "Message ID"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2016
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2020
+#: common/models.py:2024
msgid "Host"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2025
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2032
msgid "Header"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2033
msgid "Header of this message"
msgstr ""
-#: common/models.py:2035
+#: common/models.py:2039
msgid "Body"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2040
msgid "Body of this message"
msgstr ""
-#: common/models.py:2045
+#: common/models.py:2049
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2054
msgid "Worked on"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2055
msgid "Was the work on this message finished?"
msgstr ""
@@ -2836,7 +2836,7 @@ msgid "Default currency used for this company"
msgstr ""
#: company/models.py:248 company/models.py:481 stock/models.py:598
-#: stock/serializers.py:85 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:85 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:542
msgid "Base Part"
msgstr ""
@@ -2848,7 +2848,7 @@ msgstr ""
#: company/models.py:263 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
#: company/templates/company/supplier_part.html:124
-#: stock/templates/stock/item_base.html:206
+#: stock/templates/stock/item_base.html:207
#: templates/js/translated/company.js:397
#: templates/js/translated/company.js:498
#: templates/js/translated/company.js:633
@@ -2866,7 +2866,7 @@ msgstr ""
#: templates/js/translated/company.js:269
#: templates/js/translated/company.js:497
#: templates/js/translated/company.js:649
-#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077
+#: templates/js/translated/company.js:937 templates/js/translated/order.js:2142
#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027
msgid "MPN"
msgstr ""
@@ -2886,7 +2886,7 @@ msgstr ""
#: company/models.py:328 company/models.py:352 company/models.py:504
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:216
+#: stock/templates/stock/item_base.html:217
msgid "Manufacturer Part"
msgstr ""
@@ -2924,11 +2924,11 @@ msgstr ""
#: company/models.py:491 company/templates/company/company_base.html:81
#: company/templates/company/supplier_part.html:108 order/models.py:258
#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:223
+#: stock/templates/stock/item_base.html:224
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:268
#: templates/js/translated/company.js:401
-#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813
+#: templates/js/translated/company.js:893 templates/js/translated/order.js:1878
#: templates/js/translated/part.js:217 templates/js/translated/part.js:995
#: templates/js/translated/table_filters.js:423
msgid "Supplier"
@@ -2940,7 +2940,7 @@ msgstr ""
#: company/models.py:497 company/templates/company/supplier_part.html:118
#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267
-#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228
+#: templates/js/translated/order.js:2129 templates/js/translated/part.js:228
#: templates/js/translated/part.js:1013
msgid "SKU"
msgstr ""
@@ -2977,7 +2977,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:528 company/templates/company/supplier_part.html:139
-#: stock/models.py:624 stock/templates/stock/item_base.html:239
+#: stock/models.py:624 stock/templates/stock/item_base.html:240
#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976
msgid "Packaging"
msgstr ""
@@ -3030,12 +3030,12 @@ msgstr ""
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:177 templates/js/translated/company.js:386
+#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386
msgid "Company"
msgstr ""
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:624
+#: templates/js/translated/order.js:689
msgid "Create Purchase Order"
msgstr ""
@@ -3074,9 +3074,9 @@ msgstr ""
#: company/templates/company/company_base.html:86 order/models.py:637
#: order/templates/order/sales_order_base.html:116 stock/models.py:643
#: stock/models.py:644 stock/serializers.py:809
-#: stock/templates/stock/item_base.html:395
+#: stock/templates/stock/item_base.html:396
#: templates/email/overdue_sales_order.html:16
-#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619
+#: templates/js/translated/company.js:393 templates/js/translated/order.js:2684
#: templates/js/translated/stock.js:2559
#: templates/js/translated/table_filters.js:427
msgid "Customer"
@@ -3102,7 +3102,7 @@ msgstr ""
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_sidebar.html:7
-#: templates/InvenTree/search.html:118 templates/js/translated/search.js:172
+#: templates/InvenTree/search.html:120 templates/js/translated/search.js:172
msgid "Supplier Parts"
msgstr ""
@@ -3132,7 +3132,7 @@ msgstr ""
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103
+#: company/templates/company/detail.html:61 templates/InvenTree/search.html:105
#: templates/js/translated/search.js:185
msgid "Manufacturer Parts"
msgstr ""
@@ -3156,7 +3156,7 @@ msgstr ""
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
#: part/templates/part/detail.html:84 part/templates/part/part_sidebar.html:37
-#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200
#: templates/InvenTree/settings/sidebar.html:49
#: templates/js/translated/search.js:277 templates/navbar.html:50
#: users/models.py:42
@@ -3179,7 +3179,7 @@ msgstr ""
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:41
-#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220
#: templates/InvenTree/settings/sidebar.html:51
#: templates/js/translated/search.js:301 templates/navbar.html:61
#: users/models.py:43
@@ -3206,7 +3206,7 @@ msgid "Supplier List"
msgstr ""
#: company/templates/company/manufacturer_part.html:15 company/views.py:38
-#: part/templates/part/prices.html:172 templates/InvenTree/search.html:179
+#: part/templates/part/prices.html:172 templates/InvenTree/search.html:181
#: templates/navbar.html:49
msgid "Manufacturers"
msgstr ""
@@ -3239,7 +3239,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:119
#: company/templates/company/supplier_part.html:15 company/views.py:32
#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:168
-#: templates/InvenTree/search.html:189 templates/navbar.html:48
+#: templates/InvenTree/search.html:191 templates/navbar.html:48
msgid "Suppliers"
msgstr ""
@@ -3251,8 +3251,8 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:371 part/templates/part/detail.html:401
-#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34
-#: users/models.py:220
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:34
+#: users/models.py:222
msgid "Delete"
msgstr ""
@@ -3297,8 +3297,8 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:607
-#: stock/templates/stock/item_base.html:232
-#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041
+#: stock/templates/stock/item_base.html:233
+#: templates/js/translated/company.js:909 templates/js/translated/order.js:1106
#: templates/js/translated/stock.js:1933
msgid "Supplier Part"
msgstr ""
@@ -3403,7 +3403,7 @@ msgstr ""
#: part/templates/part/part_sidebar.html:14
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24
#: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:151
+#: templates/InvenTree/search.html:153
#: templates/InvenTree/settings/sidebar.html:45
#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313
#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959
@@ -3432,7 +3432,7 @@ msgstr ""
#: stock/templates/stock/location.html:166
#: stock/templates/stock/location.html:178
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:153 templates/js/translated/search.js:225
+#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
#: templates/js/translated/stock.js:2436 users/models.py:40
msgid "Stock Items"
msgstr ""
@@ -3445,7 +3445,7 @@ msgstr ""
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:44 templates/InvenTree/search.html:209
+#: company/views.py:44 templates/InvenTree/search.html:211
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
@@ -3564,7 +3564,7 @@ msgid "Company from which the items are being ordered"
msgstr ""
#: order/models.py:262 order/templates/order/order_base.html:127
-#: templates/js/translated/order.js:1822
+#: templates/js/translated/order.js:1887
msgid "Supplier Reference"
msgstr ""
@@ -3621,7 +3621,7 @@ msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
#: order/models.py:652 order/models.py:1204
-#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828
+#: templates/js/translated/order.js:2731 templates/js/translated/order.js:2893
msgid "Shipment Date"
msgstr ""
@@ -3637,7 +3637,7 @@ msgstr ""
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:721
+#: order/models.py:721 templates/js/translated/order.js:419
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
@@ -3683,7 +3683,7 @@ msgstr ""
#: order/models.py:983 order/models.py:1063 order/models.py:1104
#: order/models.py:1198 order/models.py:1330
-#: templates/js/translated/order.js:3284
+#: templates/js/translated/order.js:3349
msgid "Order"
msgstr ""
@@ -3691,10 +3691,10 @@ msgstr ""
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:178
+#: stock/templates/stock/item_base.html:179
#: templates/email/overdue_purchase_order.html:15
-#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042
-#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972
+#: templates/js/translated/order.js:619 templates/js/translated/order.js:1107
+#: templates/js/translated/order.js:1862 templates/js/translated/part.js:972
#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540
msgid "Purchase Order"
msgstr ""
@@ -3704,7 +3704,7 @@ msgid "Supplier part"
msgstr ""
#: order/models.py:1009 order/templates/order/order_base.html:172
-#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179
+#: templates/js/translated/order.js:1561 templates/js/translated/order.js:2244
#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105
#: templates/js/translated/table_filters.js:338
msgid "Received"
@@ -3715,7 +3715,7 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734
-#: stock/serializers.py:169 stock/templates/stock/item_base.html:185
+#: stock/serializers.py:169 stock/templates/stock/item_base.html:186
#: templates/js/translated/stock.js:1964
msgid "Purchase Price"
msgstr ""
@@ -3761,8 +3761,8 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1220 order/models.py:1405 order/serializers.py:1170
-#: order/serializers.py:1294 templates/js/translated/model_renderers.js:314
+#: order/models.py:1220 order/models.py:1405 order/serializers.py:1221
+#: order/serializers.py:1345 templates/js/translated/model_renderers.js:314
msgid "Shipment"
msgstr ""
@@ -3814,7 +3814,7 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1385 order/serializers.py:1066
+#: order/models.py:1385 order/serializers.py:1083
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -3854,111 +3854,119 @@ msgstr ""
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:294
+#: order/serializers.py:209 order/serializers.py:1101
+msgid "Allow order to be closed with incomplete line items"
+msgstr ""
+
+#: order/serializers.py:220 order/serializers.py:1112
+msgid "Order has incomplete line items"
+msgstr ""
+
+#: order/serializers.py:311
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:318
+#: order/serializers.py:335
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:354
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:342
+#: order/serializers.py:359
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:348
+#: order/serializers.py:365
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:349
+#: order/serializers.py:366
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:413 order/serializers.py:1138
+#: order/serializers.py:430 order/serializers.py:1189
msgid "Line Item"
msgstr ""
-#: order/serializers.py:419
+#: order/serializers.py:436
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:429 order/serializers.py:533
+#: order/serializers.py:446 order/serializers.py:550
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:448 templates/js/translated/order.js:1354
+#: order/serializers.py:465 templates/js/translated/order.js:1419
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:456 templates/js/translated/order.js:1365
+#: order/serializers.py:473 templates/js/translated/order.js:1430
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:469
+#: order/serializers.py:486
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:470
+#: order/serializers.py:487
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:484
+#: order/serializers.py:501
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:507
+#: order/serializers.py:524
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:549
+#: order/serializers.py:566
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:566
+#: order/serializers.py:583
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:577
+#: order/serializers.py:594
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:883
+#: order/serializers.py:900
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:964
+#: order/serializers.py:981
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1027 order/serializers.py:1147
+#: order/serializers.py:1044 order/serializers.py:1198
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1049
+#: order/serializers.py:1066
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1160
+#: order/serializers.py:1211
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1182 order/serializers.py:1302
+#: order/serializers.py:1233 order/serializers.py:1353
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1185 order/serializers.py:1305
+#: order/serializers.py:1236 order/serializers.py:1356
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1235
+#: order/serializers.py:1286
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1245
+#: order/serializers.py:1296
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -4103,8 +4111,8 @@ msgstr ""
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463
#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015
-#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443
-#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625
+#: templates/js/translated/order.js:1055 templates/js/translated/order.js:1508
+#: templates/js/translated/order.js:2968 templates/js/translated/stock.js:625
#: templates/js/translated/stock.js:793
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
@@ -4140,7 +4148,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:26
#: order/templates/order/sales_order_detail.html:22
#: order/templates/order/sales_order_detail.html:255
-#: templates/js/translated/order.js:663
+#: templates/js/translated/order.js:728
msgid "Add Line Item"
msgstr ""
@@ -4186,12 +4194,12 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:231
+#: templates/js/translated/order.js:232
msgid "Complete Shipments"
msgstr ""
#: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:258
+#: templates/js/translated/order.js:397
msgid "Complete Sales Order"
msgstr ""
@@ -4200,7 +4208,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2632
+#: templates/js/translated/order.js:2697
msgid "Customer Reference"
msgstr ""
@@ -4309,7 +4317,7 @@ msgid "Total Stock"
msgstr ""
#: part/bom.py:129 part/templates/part/part_base.html:189
-#: templates/js/translated/order.js:3724
+#: templates/js/translated/order.js:3789
msgid "Available Stock"
msgstr ""
@@ -4351,7 +4359,7 @@ msgid "Part Category"
msgstr ""
#: part/models.py:123 part/templates/part/category.html:134
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:200
+#: templates/InvenTree/search.html:97 templates/js/translated/search.js:200
#: users/models.py:37
msgid "Part Categories"
msgstr ""
@@ -4360,7 +4368,7 @@ msgstr ""
#: part/templates/part/category.html:23 part/templates/part/category.html:139
#: part/templates/part/category.html:159
#: part/templates/part/category_sidebar.html:9
-#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
#: templates/InvenTree/settings/sidebar.html:41
#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
@@ -5032,7 +5040,7 @@ msgstr ""
msgid "Refresh scheduling data"
msgstr ""
-#: part/templates/part/detail.html:45 templates/js/translated/tables.js:558
+#: part/templates/part/detail.html:45 templates/js/translated/tables.js:560
msgid "Refresh"
msgstr ""
@@ -5251,7 +5259,7 @@ msgid "Show pricing information"
msgstr ""
#: part/templates/part/part_base.html:60
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:111
#: stock/templates/stock/location.html:61
msgid "Stock actions"
msgstr ""
@@ -5334,12 +5342,12 @@ msgid "In Stock"
msgstr ""
#: part/templates/part/part_base.html:215
-#: stock/templates/stock/item_base.html:378
+#: stock/templates/stock/item_base.html:379
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:224
-#: stock/templates/stock/item_base.html:371
+#: stock/templates/stock/item_base.html:372
msgid "Allocated to Sales Orders"
msgstr ""
@@ -5362,7 +5370,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:327
+#: stock/templates/stock/item_base.html:328
msgid "Search for serial number"
msgstr ""
@@ -5440,7 +5448,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:53
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468
+#: templates/js/translated/order.js:1904 templates/js/translated/stock.js:2468
msgid "Date"
msgstr ""
@@ -5736,19 +5744,19 @@ msgstr ""
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:186
+#: plugin/models.py:188
msgid "Plugin"
msgstr ""
-#: plugin/models.py:249
+#: plugin/models.py:253
msgid "Method"
msgstr ""
-#: plugin/plugin.py:251
+#: plugin/plugin.py:252
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:263
+#: plugin/plugin.py:264
msgid "No date found"
msgstr ""
@@ -5926,12 +5934,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:648 stock/templates/stock/item_base.html:316
+#: stock/models.py:648 stock/templates/stock/item_base.html:317
#: templates/js/translated/build.js:456 templates/js/translated/build.js:608
#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706
#: templates/js/translated/model_renderers.js:118
-#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403
-#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490
+#: templates/js/translated/order.js:121 templates/js/translated/order.js:3468
+#: templates/js/translated/order.js:3555 templates/js/translated/stock.js:490
msgid "Serial Number"
msgstr ""
@@ -5981,7 +5989,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
#: stock/models.py:89 stock/models.py:739
-#: stock/templates/stock/item_base.html:246
+#: stock/templates/stock/item_base.html:247
msgid "Owner"
msgstr ""
@@ -6047,7 +6055,7 @@ msgstr ""
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:631 stock/templates/stock/item_base.html:355
+#: stock/models.py:631 stock/templates/stock/item_base.html:356
msgid "Installed In"
msgstr ""
@@ -6087,7 +6095,7 @@ msgstr ""
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:706 stock/templates/stock/item_base.html:423
+#: stock/models.py:706 stock/templates/stock/item_base.html:424
#: templates/js/translated/stock.js:1883
msgid "Expiry Date"
msgstr ""
@@ -6427,183 +6435,187 @@ msgstr ""
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:83 templates/stock_table.html:46
+msgid "Remove stock"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:86
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:89
#: stock/templates/stock/location.html:74 templates/stock_table.html:48
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:91 templates/stock_table.html:51
+#: stock/templates/stock/item_base.html:92 templates/stock_table.html:51
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:95
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:98
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:98
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:102
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:102
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:116
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:119
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:121
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:124
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:157
+#: stock/templates/stock/item_base.html:158
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:192
+#: stock/templates/stock/item_base.html:193
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:210
+#: stock/templates/stock/item_base.html:211
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:250
+#: stock/templates/stock/item_base.html:251
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:252
#: stock/templates/stock/location.html:132
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:264
+#: stock/templates/stock/item_base.html:265
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:266
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:278
+#: stock/templates/stock/item_base.html:279
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:286
+#: stock/templates/stock/item_base.html:287
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:294
+#: stock/templates/stock/item_base.html:295
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:300
+#: stock/templates/stock/item_base.html:301
msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
msgstr ""
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:323
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:323
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:331
+#: stock/templates/stock/item_base.html:332
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:331
+#: stock/templates/stock/item_base.html:332
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:344
+#: stock/templates/stock/item_base.html:345
msgid "Available Quantity"
msgstr ""
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:389
#: templates/js/translated/build.js:1729
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:403
+#: stock/templates/stock/item_base.html:404
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:428
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:428
#: templates/js/translated/table_filters.js:269
msgid "Expired"
msgstr ""
-#: stock/templates/stock/item_base.html:429
+#: stock/templates/stock/item_base.html:430
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:429
+#: stock/templates/stock/item_base.html:430
#: templates/js/translated/table_filters.js:275
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:436
+#: stock/templates/stock/item_base.html:437
#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:441
+#: stock/templates/stock/item_base.html:442
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:445
+#: stock/templates/stock/item_base.html:446
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:515
+#: stock/templates/stock/item_base.html:516
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:588
+#: stock/templates/stock/item_base.html:589
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:591
+#: stock/templates/stock/item_base.html:592
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:592
+#: stock/templates/stock/item_base.html:593
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:600
+#: stock/templates/stock/item_base.html:601
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:628
+#: stock/templates/stock/item_base.html:629
msgid "Return to Stock"
msgstr ""
@@ -6666,7 +6678,7 @@ msgstr ""
msgid "Sublocations"
msgstr ""
-#: stock/templates/stock/location.html:161 templates/InvenTree/search.html:165
+#: stock/templates/stock/location.html:161 templates/InvenTree/search.html:167
#: templates/js/translated/search.js:240 users/models.py:39
msgid "Stock Locations"
msgstr ""
@@ -7506,7 +7518,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:644
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr ""
@@ -7946,7 +7958,7 @@ msgstr ""
#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620
#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601
#: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003
-#: templates/js/translated/order.js:1085 templates/modals.html:15
+#: templates/js/translated/order.js:1150 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -7956,12 +7968,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145
+#: templates/js/translated/order.js:931 templates/js/translated/tables.js:145
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:867
+#: templates/js/translated/order.js:932
msgid "Select file format"
msgstr ""
@@ -8058,7 +8070,7 @@ msgid "Variant stock allowed"
msgstr ""
#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857
-#: templates/js/translated/order.js:3738
+#: templates/js/translated/order.js:3803
msgid "No Stock Available"
msgstr ""
@@ -8266,12 +8278,12 @@ msgid "No required tests for this build"
msgstr ""
#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697
-#: templates/js/translated/order.js:3438
+#: templates/js/translated/order.js:3503
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698
-#: templates/js/translated/order.js:3439
+#: templates/js/translated/order.js:3504
msgid "Delete stock allocation"
msgstr ""
@@ -8291,20 +8303,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745
+#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3810
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743
+#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3808
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127
-#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757
+#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3822
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837
+#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3902
msgid "Build stock"
msgstr ""
@@ -8312,21 +8324,21 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830
+#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3895
msgid "Allocate stock"
msgstr ""
#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965
+#: templates/js/translated/order.js:978 templates/js/translated/order.js:3030
#: templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966
+#: templates/js/translated/build.js:1977 templates/js/translated/order.js:3031
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914
+#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2979
msgid "Specify stock allocation quantity"
msgstr ""
@@ -8338,7 +8350,7 @@ msgstr ""
msgid "All selected parts have been fully allocated"
msgstr ""
-#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980
+#: templates/js/translated/build.js:2115 templates/js/translated/order.js:3045
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
@@ -8346,11 +8358,11 @@ msgstr ""
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077
+#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3142
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154
+#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3219
msgid "No matching stock items"
msgstr ""
@@ -8416,11 +8428,11 @@ msgstr ""
msgid "Edit Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:167 templates/js/translated/order.js:511
+#: templates/js/translated/company.js:167 templates/js/translated/order.js:576
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:195 templates/js/translated/order.js:734
+#: templates/js/translated/company.js:195 templates/js/translated/order.js:799
msgid "Add Supplier Part"
msgstr ""
@@ -8546,61 +8558,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:367 templates/js/translated/forms.js:382
-#: templates/js/translated/forms.js:396 templates/js/translated/forms.js:410
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:369
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:384
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:398
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:670
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:771
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1269 templates/modals.html:19
+#: templates/js/translated/forms.js:1274 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1702
+#: templates/js/translated/forms.js:1707
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1917 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2170
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2648
+#: templates/js/translated/forms.js:2653
msgid "Select Columns"
msgstr ""
@@ -8791,409 +8803,413 @@ msgstr ""
msgid "Notifications will load here"
msgstr ""
-#: templates/js/translated/order.js:96
+#: templates/js/translated/order.js:97
msgid "No stock items have been allocated to this shipment"
msgstr ""
-#: templates/js/translated/order.js:101
+#: templates/js/translated/order.js:102
msgid "The following stock items will be shipped"
msgstr ""
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:142
msgid "Complete Shipment"
msgstr ""
-#: templates/js/translated/order.js:161
+#: templates/js/translated/order.js:162
msgid "Confirm Shipment"
msgstr ""
-#: templates/js/translated/order.js:217
+#: templates/js/translated/order.js:218
msgid "No pending shipments found"
msgstr ""
-#: templates/js/translated/order.js:221
+#: templates/js/translated/order.js:222
msgid "No stock items have been allocated to pending shipments"
msgstr ""
-#: templates/js/translated/order.js:253
+#: templates/js/translated/order.js:254
msgid "Skip"
msgstr ""
-#: templates/js/translated/order.js:283
+#: templates/js/translated/order.js:284
msgid "Complete Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:289
+#: templates/js/translated/order.js:301 templates/js/translated/order.js:413
msgid "Mark this order as complete?"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:307
msgid "All line items have been received"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:312
msgid "This order has line items which have not been marked as received."
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:313 templates/js/translated/order.js:427
msgid "Completing this order means that the order and line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:324
+#: templates/js/translated/order.js:336
msgid "Cancel Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:329
+#: templates/js/translated/order.js:341
msgid "Are you sure you wish to cancel this purchase order?"
msgstr ""
-#: templates/js/translated/order.js:335
+#: templates/js/translated/order.js:347
msgid "This purchase order can not be cancelled"
msgstr ""
-#: templates/js/translated/order.js:358
+#: templates/js/translated/order.js:370
msgid "Issue Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:363
+#: templates/js/translated/order.js:375
msgid "After placing this purchase order, line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:385
+#: templates/js/translated/order.js:426
+msgid "This order has line items which have not been completed."
+msgstr ""
+
+#: templates/js/translated/order.js:450
msgid "Cancel Sales Order"
msgstr ""
-#: templates/js/translated/order.js:390
+#: templates/js/translated/order.js:455
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:444
+#: templates/js/translated/order.js:509
msgid "Create New Shipment"
msgstr ""
-#: templates/js/translated/order.js:469
+#: templates/js/translated/order.js:534
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:494
+#: templates/js/translated/order.js:559
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:555
+#: templates/js/translated/order.js:620
msgid "Select purchase order to duplicate"
msgstr ""
-#: templates/js/translated/order.js:562
+#: templates/js/translated/order.js:627
msgid "Duplicate Line Items"
msgstr ""
-#: templates/js/translated/order.js:563
+#: templates/js/translated/order.js:628
msgid "Duplicate all line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:570
+#: templates/js/translated/order.js:635
msgid "Duplicate Extra Lines"
msgstr ""
-#: templates/js/translated/order.js:571
+#: templates/js/translated/order.js:636
msgid "Duplicate extra line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:588
+#: templates/js/translated/order.js:653
msgid "Edit Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:605
+#: templates/js/translated/order.js:670
msgid "Duplication Options"
msgstr ""
-#: templates/js/translated/order.js:863
+#: templates/js/translated/order.js:928
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:914
+#: templates/js/translated/order.js:979
msgid "At least one purchaseable part must be selected"
msgstr ""
-#: templates/js/translated/order.js:939
+#: templates/js/translated/order.js:1004
msgid "Quantity to order"
msgstr ""
-#: templates/js/translated/order.js:948
+#: templates/js/translated/order.js:1013
msgid "New supplier part"
msgstr ""
-#: templates/js/translated/order.js:966
+#: templates/js/translated/order.js:1031
msgid "New purchase order"
msgstr ""
-#: templates/js/translated/order.js:999
+#: templates/js/translated/order.js:1064
msgid "Add to purchase order"
msgstr ""
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1173
msgid "No matching supplier parts"
msgstr ""
-#: templates/js/translated/order.js:1123
+#: templates/js/translated/order.js:1188
msgid "No matching purchase orders"
msgstr ""
-#: templates/js/translated/order.js:1300
+#: templates/js/translated/order.js:1365
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1366
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420
+#: templates/js/translated/order.js:1386 templates/js/translated/order.js:1485
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431
+#: templates/js/translated/order.js:1392 templates/js/translated/order.js:1496
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1339
+#: templates/js/translated/order.js:1404
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144
+#: templates/js/translated/order.js:1468 templates/js/translated/stock.js:2144
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:1494
+#: templates/js/translated/order.js:1559
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:1495
+#: templates/js/translated/order.js:1560
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:1497
+#: templates/js/translated/order.js:1562
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:1516
+#: templates/js/translated/order.js:1581
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:1517
+#: templates/js/translated/order.js:1582
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943
+#: templates/js/translated/order.js:1843 templates/js/translated/part.js:943
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609
+#: templates/js/translated/order.js:1870 templates/js/translated/order.js:2674
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674
-#: templates/js/translated/order.js:2815
+#: templates/js/translated/order.js:1920 templates/js/translated/order.js:2739
+#: templates/js/translated/order.js:2880
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889
+#: templates/js/translated/order.js:2018 templates/js/translated/order.js:3954
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911
+#: templates/js/translated/order.js:2035 templates/js/translated/order.js:3976
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922
+#: templates/js/translated/order.js:2048 templates/js/translated/order.js:3987
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:2026
+#: templates/js/translated/order.js:2091
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:2118 templates/js/translated/order.js:3688
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309
-#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156
+#: templates/js/translated/order.js:2172 templates/js/translated/order.js:2374
+#: templates/js/translated/order.js:3713 templates/js/translated/order.js:4221
#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325
-#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172
+#: templates/js/translated/order.js:2187 templates/js/translated/order.js:2390
+#: templates/js/translated/order.js:3729 templates/js/translated/order.js:4237
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706
+#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3771
#: templates/js/translated/part.js:1070
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110
+#: templates/js/translated/order.js:2287 templates/js/translated/part.js:1110
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2291 templates/js/translated/order.js:3908
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844
+#: templates/js/translated/order.js:2292 templates/js/translated/order.js:3909
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848
+#: templates/js/translated/order.js:2293 templates/js/translated/order.js:3913
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221
+#: templates/js/translated/order.js:2439 templates/js/translated/order.js:4286
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222
+#: templates/js/translated/order.js:2440 templates/js/translated/order.js:4287
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223
+#: templates/js/translated/order.js:2441 templates/js/translated/order.js:4288
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253
+#: templates/js/translated/order.js:2471 templates/js/translated/order.js:4318
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274
+#: templates/js/translated/order.js:2492 templates/js/translated/order.js:4339
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285
+#: templates/js/translated/order.js:2503 templates/js/translated/order.js:4350
msgid "Delete Line"
msgstr ""
-#: templates/js/translated/order.js:2449
+#: templates/js/translated/order.js:2514
msgid "No matching line"
msgstr ""
-#: templates/js/translated/order.js:2560
+#: templates/js/translated/order.js:2625
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:2623
+#: templates/js/translated/order.js:2688
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:2721
+#: templates/js/translated/order.js:2786
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:2724
+#: templates/js/translated/order.js:2789
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:2729
+#: templates/js/translated/order.js:2794
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:2749
+#: templates/js/translated/order.js:2814
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:2766
+#: templates/js/translated/order.js:2831
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:2800
+#: templates/js/translated/order.js:2865
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:2810
+#: templates/js/translated/order.js:2875
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:2834
+#: templates/js/translated/order.js:2899
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:2840
+#: templates/js/translated/order.js:2905
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:2844
+#: templates/js/translated/order.js:2909
msgid "Invoice"
msgstr ""
-#: templates/js/translated/order.js:3013
+#: templates/js/translated/order.js:3078
msgid "Add Shipment"
msgstr ""
-#: templates/js/translated/order.js:3064
+#: templates/js/translated/order.js:3129
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/order.js:3065
+#: templates/js/translated/order.js:3130
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:3273
+#: templates/js/translated/order.js:3338
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:3352
+#: templates/js/translated/order.js:3417
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3369
+#: templates/js/translated/order.js:3434
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:3370
+#: templates/js/translated/order.js:3435
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504
+#: templates/js/translated/order.js:3480 templates/js/translated/order.js:3569
#: templates/js/translated/stock.js:1602
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513
+#: templates/js/translated/order.js:3488 templates/js/translated/order.js:3578
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3827
+#: templates/js/translated/order.js:3892
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3833
+#: templates/js/translated/order.js:3898
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038
+#: templates/js/translated/order.js:3905 templates/js/translated/order.js:4103
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3852
+#: templates/js/translated/order.js:3917
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3855
+#: templates/js/translated/order.js:3920
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3937
+#: templates/js/translated/order.js:4002
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:4046
+#: templates/js/translated/order.js:4111
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:4060
+#: templates/js/translated/order.js:4125
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4296
+#: templates/js/translated/order.js:4361
msgid "No matching lines"
msgstr ""
@@ -9777,7 +9793,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:942 users/models.py:216
+#: templates/js/translated/stock.js:942 users/models.py:218
msgid "Add"
msgstr ""
@@ -10258,57 +10274,57 @@ msgstr ""
msgid "Select File Format"
msgstr ""
-#: templates/js/translated/tables.js:535
+#: templates/js/translated/tables.js:537
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:538
+#: templates/js/translated/tables.js:540
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:543
+#: templates/js/translated/tables.js:545
msgid "Showing all rows"
msgstr ""
-#: templates/js/translated/tables.js:545
+#: templates/js/translated/tables.js:547
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:545
+#: templates/js/translated/tables.js:547
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:545
+#: templates/js/translated/tables.js:547
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:545
+#: templates/js/translated/tables.js:547
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:549 templates/navbar.html:102
+#: templates/js/translated/tables.js:551 templates/navbar.html:102
#: templates/search.html:8 templates/search_form.html:6
#: templates/search_form.html:7
msgid "Search"
msgstr ""
-#: templates/js/translated/tables.js:552
+#: templates/js/translated/tables.js:554
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:555
+#: templates/js/translated/tables.js:557
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:561
+#: templates/js/translated/tables.js:563
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:564
+#: templates/js/translated/tables.js:566
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:567
+#: templates/js/translated/tables.js:569
msgid "All"
msgstr ""
@@ -10456,10 +10472,6 @@ msgstr ""
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:46
-msgid "Remove stock"
-msgstr ""
-
#: templates/stock_table.html:47
msgid "Stocktake selected stock items"
msgstr ""
@@ -10528,34 +10540,34 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:203
+#: users/models.py:205
msgid "Permission set"
msgstr ""
-#: users/models.py:211
+#: users/models.py:213
msgid "Group"
msgstr ""
-#: users/models.py:214
+#: users/models.py:216
msgid "View"
msgstr ""
-#: users/models.py:214
+#: users/models.py:216
msgid "Permission to view items"
msgstr ""
-#: users/models.py:216
+#: users/models.py:218
msgid "Permission to add items"
msgstr ""
-#: users/models.py:218
+#: users/models.py:220
msgid "Change"
msgstr ""
-#: users/models.py:218
+#: users/models.py:220
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:222
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/fa/LC_MESSAGES/django.po b/InvenTree/locale/fa/LC_MESSAGES/django.po
index 2f8ab5c91c..acbf5f2631 100644
--- a/InvenTree/locale/fa/LC_MESSAGES/django.po
+++ b/InvenTree/locale/fa/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-08-25 10:08+0000\n"
-"PO-Revision-Date: 2022-08-26 01:54\n"
+"POT-Creation-Date: 2022-09-09 02:44+0000\n"
+"PO-Revision-Date: 2022-09-09 03:56\n"
"Last-Translator: \n"
"Language-Team: Persian\n"
"Language: fa_IR\n"
@@ -29,9 +29,9 @@ msgstr ""
msgid "Enter date"
msgstr ""
-#: InvenTree/fields.py:186 build/serializers.py:384
-#: build/templates/build/sidebar.html:21 company/models.py:523
-#: company/templates/company/sidebar.html:25 order/models.py:906
+#: InvenTree/fields.py:183 build/serializers.py:384
+#: build/templates/build/sidebar.html:21 company/models.py:524
+#: company/templates/company/sidebar.html:25 order/models.py:910
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17
#: part/templates/part/part_sidebar.html:59
@@ -40,11 +40,12 @@ msgstr ""
#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823
#: stock/serializers.py:922 stock/serializers.py:1054
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099
-#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210
-#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859
-#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208
-#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1107
+#: templates/js/translated/company.js:1022
+#: templates/js/translated/order.js:2404 templates/js/translated/order.js:2555
+#: templates/js/translated/order.js:3053 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:4402 templates/js/translated/stock.js:1374
+#: templates/js/translated/stock.js:1976
msgid "Notes"
msgstr ""
@@ -210,12 +211,12 @@ msgid "Select file to attach"
msgstr ""
#: InvenTree/models.py:402 company/models.py:124 company/models.py:276
-#: company/models.py:510 order/models.py:84 order/models.py:1245
+#: company/models.py:511 order/models.py:84 order/models.py:1249
#: part/models.py:802 part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
-#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848
-#: templates/js/translated/part.js:1534
+#: templates/js/translated/company.js:691
+#: templates/js/translated/company.js:1011
+#: templates/js/translated/order.js:3042 templates/js/translated/part.js:1563
msgid "Link"
msgstr ""
@@ -233,12 +234,12 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665
-#: common/models.py:1666 common/models.py:1889 common/models.py:1890
-#: common/models.py:2152 common/models.py:2153 part/models.py:2239
-#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257
+#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1669
+#: common/models.py:1670 common/models.py:1893 common/models.py:1894
+#: common/models.py:2156 common/models.py:2157 part/models.py:2247
+#: part/models.py:2267 plugin/models.py:260 plugin/models.py:261
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2641
+#: templates/js/translated/stock.js:2637
msgid "User"
msgstr ""
@@ -275,28 +276,28 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875
+#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1879
#: company/models.py:358 label/models.py:101 part/models.py:746
-#: part/models.py:2417 plugin/models.py:94 report/models.py:152
+#: part/models.py:2425 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin.html:134
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:347
-#: templates/js/translated/company.js:545
-#: templates/js/translated/company.js:758
+#: templates/js/translated/company.js:580
+#: templates/js/translated/company.js:793
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:688 templates/js/translated/part.js:840
-#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392
+#: templates/js/translated/part.js:686 templates/js/translated/part.js:838
+#: templates/js/translated/part.js:1955 templates/js/translated/stock.js:2388
msgid "Name"
msgstr ""
#: InvenTree/models.py:544 build/models.py:174
#: build/templates/build/detail.html:24 company/models.py:282
-#: company/models.py:516 company/templates/company/company_base.html:71
+#: company/models.py:517 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:87 label/models.py:108
-#: order/models.py:82 part/models.py:769 part/models.py:2429
+#: company/templates/company/supplier_part.html:92 label/models.py:108
+#: order/models.py:82 part/models.py:769 part/models.py:2437
#: part/templates/part/category.html:80 part/templates/part/part_base.html:167
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
@@ -305,14 +306,14 @@ msgstr ""
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/InvenTree/settings/settings.html:358
#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846
-#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409
-#: templates/js/translated/company.js:667
-#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637
-#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167
-#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962
-#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743
-#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478
+#: templates/js/translated/build.js:2512 templates/js/translated/company.js:444
+#: templates/js/translated/company.js:702
+#: templates/js/translated/company.js:986 templates/js/translated/order.js:1988
+#: templates/js/translated/order.js:2220 templates/js/translated/order.js:2831
+#: templates/js/translated/part.js:745 templates/js/translated/part.js:1187
+#: templates/js/translated/part.js:1463 templates/js/translated/part.js:1991
+#: templates/js/translated/part.js:2060 templates/js/translated/stock.js:1743
+#: templates/js/translated/stock.js:2420 templates/js/translated/stock.js:2474
msgid "Description"
msgstr ""
@@ -325,7 +326,7 @@ msgid "parent"
msgstr ""
#: InvenTree/models.py:560 InvenTree/models.py:561
-#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:2426
msgid "Path"
msgstr ""
@@ -337,7 +338,7 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2745
+#: InvenTree/serializers.py:55 part/models.py:2753
msgid "Must be a valid number"
msgstr ""
@@ -522,7 +523,7 @@ msgid "Placed"
msgstr ""
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr ""
@@ -542,8 +543,8 @@ msgstr ""
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:141 order/models.py:1128
-#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785
+#: InvenTree/status_codes.py:141 order/models.py:1132
+#: templates/js/translated/order.js:3630 templates/js/translated/order.js:3979
msgid "Shipped"
msgstr ""
@@ -627,7 +628,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080
msgid "Merged stock items"
msgstr ""
@@ -717,7 +718,7 @@ msgstr ""
msgid "About InvenTree"
msgstr ""
-#: build/api.py:217
+#: build/api.py:219
msgid "Build must be cancelled before it can be deleted"
msgstr ""
@@ -748,15 +749,15 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:166 order/models.py:240 order/models.py:623
-#: order/models.py:904 part/models.py:2663
+#: build/models.py:166 order/models.py:240 order/models.py:627
+#: order/models.py:908 part/models.py:2671
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853
-#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089
-#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629
-#: templates/js/translated/order.js:4137
+#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2251
+#: templates/js/translated/order.js:2484 templates/js/translated/order.js:3823
+#: templates/js/translated/order.js:4331
msgid "Reference"
msgstr ""
@@ -774,12 +775,12 @@ msgid "BuildOrder to which this build is allocated"
msgstr ""
#: build/models.py:191 build/templates/build/build_base.html:80
-#: build/templates/build/detail.html:29 company/models.py:670
-#: order/models.py:1001 order/models.py:1112 order/models.py:1113
-#: part/models.py:343 part/models.py:2185 part/models.py:2200
-#: part/models.py:2219 part/models.py:2237 part/models.py:2336
-#: part/models.py:2463 part/models.py:2553 part/models.py:2638
-#: part/models.py:2914 part/serializers.py:814
+#: build/templates/build/detail.html:29 company/models.py:679
+#: order/models.py:1005 order/models.py:1116 order/models.py:1117
+#: part/models.py:343 part/models.py:2193 part/models.py:2208
+#: part/models.py:2227 part/models.py:2245 part/models.py:2344
+#: part/models.py:2471 part/models.py:2561 part/models.py:2646
+#: part/models.py:2922 part/serializers.py:814
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -795,18 +796,18 @@ msgstr ""
#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800
#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682
#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517
-#: templates/js/translated/company.js:266
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:608
-#: templates/js/translated/company.js:868 templates/js/translated/order.js:105
-#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493
-#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613
-#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224
-#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586
+#: templates/js/translated/company.js:301
+#: templates/js/translated/company.js:531
+#: templates/js/translated/company.js:643
+#: templates/js/translated/company.js:904 templates/js/translated/order.js:106
+#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1638
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:3185
+#: templates/js/translated/order.js:3581 templates/js/translated/order.js:3807
+#: templates/js/translated/part.js:1172 templates/js/translated/part.js:1244
+#: templates/js/translated/part.js:1441 templates/js/translated/stock.js:586
#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504
-#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833
+#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2500
+#: templates/js/translated/stock.js:2695 templates/js/translated/stock.js:2829
msgid "Part"
msgstr ""
@@ -823,7 +824,7 @@ msgid "SalesOrder to which this build is allocated"
msgstr ""
#: build/models.py:213 build/serializers.py:800
-#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979
+#: templates/js/translated/build.js:2114 templates/js/translated/order.js:3173
msgid "Source Location"
msgstr ""
@@ -863,8 +864,8 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:251 build/serializers.py:225 order/serializers.py:447
-#: stock/models.py:662 templates/js/translated/order.js:1353
+#: build/models.py:251 build/serializers.py:225 order/serializers.py:464
+#: stock/models.py:662 templates/js/translated/order.js:1496
msgid "Batch Code"
msgstr ""
@@ -873,11 +874,11 @@ msgid "Batch code for this build output"
msgstr ""
#: build/models.py:258 order/models.py:86 part/models.py:938
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2844
msgid "Creation Date"
msgstr ""
-#: build/models.py:262 order/models.py:648
+#: build/models.py:262 order/models.py:652
msgid "Target completion date"
msgstr ""
@@ -904,10 +905,10 @@ msgstr ""
#: build/models.py:289 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:100
-#: order/templates/order/order_base.html:179
+#: order/templates/order/order_base.html:185
#: order/templates/order/sales_order_base.html:183 part/models.py:942
#: report/templates/report/inventree_build_order_base.html:158
-#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860
+#: templates/js/translated/build.js:2574 templates/js/translated/order.js:2022
msgid "Responsible"
msgstr ""
@@ -917,9 +918,9 @@ msgstr ""
#: build/models.py:295 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
-#: company/templates/company/supplier_part.html:153
+#: company/templates/company/supplier_part.html:165
#: part/templates/part/part_base.html:346 stock/models.py:656
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr ""
@@ -957,11 +958,11 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1188 order/models.py:1379
+#: build/models.py:1188 order/models.py:1383
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1194 order/models.py:1382
+#: build/models.py:1194 order/models.py:1386
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -973,7 +974,7 @@ msgstr ""
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1326 stock/templates/stock/item_base.html:172
+#: build/models.py:1326 stock/templates/stock/item_base.html:175
#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496
#: templates/navbar.html:38
msgid "Build"
@@ -983,18 +984,18 @@ msgstr ""
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015
-#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754
+#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1035
+#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754
#: stock/serializers.py:880 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:197
#: templates/js/translated/build.js:774 templates/js/translated/build.js:779
#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679
-#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992
-#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299
-#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486
+#: templates/js/translated/order.js:107 templates/js/translated/order.js:3186
+#: templates/js/translated/order.js:3488 templates/js/translated/order.js:3493
+#: templates/js/translated/order.js:3588 templates/js/translated/order.js:3680
#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752
-#: templates/js/translated/stock.js:2577
+#: templates/js/translated/stock.js:2573
msgid "Stock Item"
msgstr ""
@@ -1004,11 +1005,11 @@ msgstr ""
#: build/models.py:1356 build/serializers.py:193
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1697
-#: company/templates/company/supplier_part.html:279 order/models.py:897
-#: order/models.py:1423 order/serializers.py:1155
+#: build/templates/build/detail.html:34 common/models.py:1701
+#: company/templates/company/supplier_part.html:291 order/models.py:901
+#: order/models.py:1427 order/serializers.py:1209
#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40
-#: part/models.py:2654 part/templates/part/detail.html:951
+#: part/models.py:2662 part/templates/part/detail.html:951
#: part/templates/part/detail.html:1037
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -1017,8 +1018,8 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:291 stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
+#: stock/serializers.py:291 stock/templates/stock/item_base.html:290
+#: stock/templates/stock/item_base.html:298
#: templates/email/build_order_completed.html:18
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691
#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458
@@ -1026,16 +1027,16 @@ msgstr ""
#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708
#: templates/js/translated/build.js:2129
#: templates/js/translated/model_renderers.js:120
-#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043
-#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313
-#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492
-#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143
-#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176
-#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686
-#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458
+#: templates/js/translated/order.js:123 templates/js/translated/order.js:1137
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:2490
+#: templates/js/translated/order.js:3187 templates/js/translated/order.js:3507
+#: templates/js/translated/order.js:3594 templates/js/translated/order.js:3686
+#: templates/js/translated/order.js:3829 templates/js/translated/order.js:4337
+#: templates/js/translated/part.js:1036 templates/js/translated/part.js:2205
+#: templates/js/translated/part.js:2674 templates/js/translated/part.js:2715
+#: templates/js/translated/part.js:2793 templates/js/translated/stock.js:458
#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782
-#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2707
msgid "Quantity"
msgstr ""
@@ -1077,7 +1078,7 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:208 build/serializers.py:665 order/models.py:318
-#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545
+#: order/serializers.py:304 order/serializers.py:459 part/serializers.py:545
#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251
#: stock/serializers.py:300
msgid "Quantity must be greater than zero"
@@ -1091,8 +1092,8 @@ msgstr ""
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159
-#: stock/serializers.py:309 templates/js/translated/order.js:1364
+#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213
+#: stock/serializers.py:309 templates/js/translated/order.js:1507
#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459
msgid "Serial Numbers"
msgstr ""
@@ -1117,18 +1118,18 @@ msgstr ""
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532
+#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552
#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532
#: stock/serializers.py:915 stock/serializers.py:1148
-#: stock/templates/stock/item_base.html:385
+#: stock/templates/stock/item_base.html:388
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786
-#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391
-#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411
-#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500
+#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1534
+#: templates/js/translated/order.js:3500 templates/js/translated/order.js:3605
+#: templates/js/translated/order.js:3613 templates/js/translated/order.js:3694
#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588
#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960
-#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2514
msgid "Location"
msgstr ""
@@ -1137,12 +1138,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:373 build/templates/build/build_base.html:145
-#: build/templates/build/detail.html:62 order/models.py:642
-#: order/serializers.py:465 stock/templates/stock/item_base.html:418
+#: build/templates/build/detail.html:62 order/models.py:646
+#: order/serializers.py:482 stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546
-#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830
-#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829
-#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727
+#: templates/js/translated/order.js:1643 templates/js/translated/order.js:1992
+#: templates/js/translated/order.js:2836 templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:2591 templates/js/translated/stock.js:2723
msgid "Status"
msgstr ""
@@ -1202,7 +1203,7 @@ msgstr ""
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:527
+#: build/serializers.py:527 order/serializers.py:208 order/serializers.py:1103
msgid "Accept Incomplete"
msgstr ""
@@ -1218,8 +1219,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772
-#: part/models.py:2906
+#: build/serializers.py:577 build/serializers.py:622 part/models.py:2780
+#: part/models.py:2914
msgid "BOM Item"
msgstr ""
@@ -1239,7 +1240,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:709 order/serializers.py:1073
+#: build/serializers.py:709 order/serializers.py:1093
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1256,7 +1257,7 @@ msgstr ""
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:750 order/serializers.py:1319
+#: build/serializers.py:750 order/serializers.py:1373
msgid "Allocation items must be provided"
msgstr ""
@@ -1371,13 +1372,13 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:154
-#: build/templates/build/detail.html:131 order/models.py:910
-#: order/templates/order/order_base.html:165
+#: build/templates/build/detail.html:131 order/models.py:914
+#: order/templates/order/order_base.html:171
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:125
-#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847
-#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658
-#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042
+#: templates/js/translated/build.js:2586 templates/js/translated/order.js:2009
+#: templates/js/translated/order.js:2351 templates/js/translated/order.js:2852
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1051
msgid "Target Date"
msgstr ""
@@ -1388,7 +1389,7 @@ msgstr ""
#: build/templates/build/build_base.html:159
#: build/templates/build/build_base.html:204
-#: order/templates/order/order_base.html:101
+#: order/templates/order/order_base.html:107
#: order/templates/order/sales_order_base.html:94
#: templates/js/translated/table_filters.js:320
#: templates/js/translated/table_filters.js:361
@@ -1404,15 +1405,15 @@ msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:179
-#: build/templates/build/detail.html:94 order/models.py:1105
-#: order/models.py:1199 order/models.py:1330
+#: build/templates/build/detail.html:94 order/models.py:1109
+#: order/models.py:1203 order/models.py:1334
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:365
+#: stock/templates/stock/item_base.html:368
#: templates/email/overdue_sales_order.html:15
-#: templates/js/translated/order.js:2604
+#: templates/js/translated/order.js:2798
msgid "Sales Order"
msgstr ""
@@ -1438,8 +1439,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1023
-#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199
+#: build/templates/build/detail.html:49 order/models.py:1027
+#: templates/js/translated/order.js:1644 templates/js/translated/order.js:2393
msgid "Destination"
msgstr ""
@@ -1452,18 +1453,18 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:165
+#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1215
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843
-#: templates/js/translated/stock.js:2734
+#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1839
+#: templates/js/translated/stock.js:2730
#: templates/js/translated/table_filters.js:159
#: templates/js/translated/table_filters.js:250
msgid "Batch"
msgstr ""
#: build/templates/build/detail.html:126
-#: order/templates/order/order_base.html:152
+#: order/templates/order/order_base.html:158
#: order/templates/order/sales_order_base.html:158
#: templates/js/translated/build.js:2554
msgid "Created"
@@ -1516,7 +1517,7 @@ msgstr ""
#: build/templates/build/detail.html:187
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:85
-#: part/templates/part/category.html:183 templates/js/translated/order.js:1083
+#: part/templates/part/category.html:183 templates/js/translated/order.js:1177
msgid "Order Parts"
msgstr ""
@@ -1851,7 +1852,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:951 part/models.py:2465 report/models.py:158
+#: common/models.py:951 part/models.py:2473 report/models.py:158
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:484
msgid "Template"
@@ -1861,7 +1862,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446
+#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1454
#: templates/js/translated/table_filters.js:176
#: templates/js/translated/table_filters.js:447
msgid "Assembly"
@@ -2275,349 +2276,349 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1342 common/models.py:1658
+#: common/models.py:1344 common/models.py:1662
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1364
+#: common/models.py:1366
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1365
+#: common/models.py:1367
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1371
+#: common/models.py:1373
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1372
+#: common/models.py:1374
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1378
+#: common/models.py:1380
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1379
+#: common/models.py:1381
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1385
+#: common/models.py:1387
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1386
+#: common/models.py:1388
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1392
+#: common/models.py:1394
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1393
+#: common/models.py:1395
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1399
+#: common/models.py:1401
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1400
+#: common/models.py:1402
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1406
+#: common/models.py:1408
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1407
+#: common/models.py:1409
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1413
+#: common/models.py:1415
msgid "Show low stock"
msgstr ""
-#: common/models.py:1414
+#: common/models.py:1416
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1420
+#: common/models.py:1422
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1421
+#: common/models.py:1423
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1427
+#: common/models.py:1429
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1430
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1434
+#: common/models.py:1436
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1435
+#: common/models.py:1437
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1441
+#: common/models.py:1443
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1442
+#: common/models.py:1444
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1448
+#: common/models.py:1450
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1449
+#: common/models.py:1451
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1455
+#: common/models.py:1457
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1456
+#: common/models.py:1458
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1462
+#: common/models.py:1464
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1463
+#: common/models.py:1465
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1469
+#: common/models.py:1471
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1470
+#: common/models.py:1472
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1476
+#: common/models.py:1478
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1477
+#: common/models.py:1479
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1483
+#: common/models.py:1485
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1484
+#: common/models.py:1486
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1490
+#: common/models.py:1492
msgid "Inline label display"
msgstr ""
-#: common/models.py:1491
+#: common/models.py:1493
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1499
msgid "Inline report display"
msgstr ""
-#: common/models.py:1498
+#: common/models.py:1500
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1506
msgid "Search Parts"
msgstr ""
-#: common/models.py:1505
+#: common/models.py:1507
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1513
msgid "Seach Supplier Parts"
msgstr ""
-#: common/models.py:1512
+#: common/models.py:1514
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1520
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:1519
+#: common/models.py:1521
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:1525
+#: common/models.py:1527
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1526
+#: common/models.py:1528
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1532
+#: common/models.py:1534
msgid "Search Categories"
msgstr ""
-#: common/models.py:1533
+#: common/models.py:1535
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1539
+#: common/models.py:1541
msgid "Search Stock"
msgstr ""
-#: common/models.py:1540
+#: common/models.py:1542
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1546
+#: common/models.py:1548
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1547
+#: common/models.py:1549
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1553
+#: common/models.py:1555
msgid "Search Locations"
msgstr ""
-#: common/models.py:1554
+#: common/models.py:1556
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1560
+#: common/models.py:1562
msgid "Search Companies"
msgstr ""
-#: common/models.py:1561
+#: common/models.py:1563
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1567
+#: common/models.py:1569
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1568
+#: common/models.py:1570
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1574
+#: common/models.py:1576
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1575
+#: common/models.py:1577
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1581
+#: common/models.py:1583
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1582
+#: common/models.py:1584
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1588
+#: common/models.py:1590
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1591
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1595
+#: common/models.py:1597
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1598
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1602
+#: common/models.py:1604
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1605
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1609
+#: common/models.py:1611
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1610
+#: common/models.py:1612
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1616
+#: common/models.py:1618
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1617
+#: common/models.py:1619
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1623
+#: common/models.py:1625
msgid "Date Format"
msgstr ""
-#: common/models.py:1624
+#: common/models.py:1626
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1638 part/templates/part/detail.html:41
+#: common/models.py:1640 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1641
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1698
+#: common/models.py:1702
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1705 company/serializers.py:366
-#: company/templates/company/supplier_part.html:284 order/models.py:938
-#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181
+#: common/models.py:1709 company/serializers.py:372
+#: company/templates/company/supplier_part.html:296 order/models.py:942
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:2210
msgid "Price"
msgstr ""
-#: common/models.py:1706
+#: common/models.py:1710
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1866 common/models.py:2044
+#: common/models.py:1870 common/models.py:2048
msgid "Endpoint"
msgstr ""
-#: common/models.py:1867
+#: common/models.py:1871
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1876
+#: common/models.py:1880
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1881 part/models.py:921 plugin/models.py:100
+#: common/models.py:1885 part/models.py:921 plugin/models.py:100
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:104
#: templates/js/translated/table_filters.js:316
@@ -2625,67 +2626,67 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1886
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1896
+#: common/models.py:1900
msgid "Token"
msgstr ""
-#: common/models.py:1897
+#: common/models.py:1901
msgid "Token for access"
msgstr ""
-#: common/models.py:1904
+#: common/models.py:1908
msgid "Secret"
msgstr ""
-#: common/models.py:1905
+#: common/models.py:1909
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2011
+#: common/models.py:2015
msgid "Message ID"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2016
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2020
+#: common/models.py:2024
msgid "Host"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2025
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2032
msgid "Header"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2033
msgid "Header of this message"
msgstr ""
-#: common/models.py:2035
+#: common/models.py:2039
msgid "Body"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2040
msgid "Body of this message"
msgstr ""
-#: common/models.py:2045
+#: common/models.py:2049
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2054
msgid "Worked on"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2055
msgid "Was the work on this message finished?"
msgstr ""
@@ -2747,7 +2748,7 @@ msgstr ""
#: company/models.py:105 company/templates/company/company_base.html:100
#: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:413
+#: templates/js/translated/company.js:448
msgid "Website"
msgstr ""
@@ -2824,7 +2825,7 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:148 company/serializers.py:372
+#: company/models.py:148 company/serializers.py:378
#: company/templates/company/company_base.html:106 part/serializers.py:153
#: part/serializers.py:184 stock/serializers.py:178
msgid "Currency"
@@ -2834,24 +2835,24 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:248 company/models.py:481 stock/models.py:598
+#: company/models.py:248 company/models.py:482 stock/models.py:598
#: stock/serializers.py:85 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:542
msgid "Base Part"
msgstr ""
-#: company/models.py:252 company/models.py:485
+#: company/models.py:252 company/models.py:486
msgid "Select part"
msgstr ""
#: company/models.py:263 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:124
-#: stock/templates/stock/item_base.html:207
-#: templates/js/translated/company.js:397
-#: templates/js/translated/company.js:498
-#: templates/js/translated/company.js:633
-#: templates/js/translated/company.js:919 templates/js/translated/part.js:236
+#: company/templates/company/supplier_part.html:129
+#: stock/templates/stock/item_base.html:210
+#: templates/js/translated/company.js:432
+#: templates/js/translated/company.js:533
+#: templates/js/translated/company.js:668
+#: templates/js/translated/company.js:956 templates/js/translated/part.js:236
#: templates/js/translated/table_filters.js:419
msgid "Manufacturer"
msgstr ""
@@ -2861,12 +2862,12 @@ msgid "Select manufacturer"
msgstr ""
#: company/models.py:270 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:132
-#: templates/js/translated/company.js:269
-#: templates/js/translated/company.js:497
-#: templates/js/translated/company.js:649
-#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077
-#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027
+#: company/templates/company/supplier_part.html:137
+#: templates/js/translated/company.js:304
+#: templates/js/translated/company.js:532
+#: templates/js/translated/company.js:684
+#: templates/js/translated/company.js:975 templates/js/translated/order.js:2239
+#: templates/js/translated/part.js:247 templates/js/translated/part.js:1025
msgid "MPN"
msgstr ""
@@ -2882,10 +2883,10 @@ msgstr ""
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:328 company/models.py:352 company/models.py:504
+#: company/models.py:328 company/models.py:352 company/models.py:505
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:220
msgid "Manufacturer Part"
msgstr ""
@@ -2895,8 +2896,8 @@ msgstr ""
#: company/models.py:365
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2095 templates/js/translated/company.js:546
-#: templates/js/translated/company.js:764 templates/js/translated/part.js:849
+#: stock/models.py:2095 templates/js/translated/company.js:581
+#: templates/js/translated/company.js:799 templates/js/translated/part.js:847
#: templates/js/translated/stock.js:1360
msgid "Value"
msgstr ""
@@ -2905,10 +2906,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:372 part/models.py:888 part/models.py:2425
+#: company/models.py:372 part/models.py:888 part/models.py:2433
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:352
-#: templates/js/translated/company.js:770 templates/js/translated/part.js:855
+#: templates/js/translated/company.js:805 templates/js/translated/part.js:853
msgid "Units"
msgstr ""
@@ -2916,106 +2917,119 @@ msgstr ""
msgid "Parameter units"
msgstr ""
-#: company/models.py:449
+#: company/models.py:450
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:491 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:108 order/models.py:258
-#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:224
+#: company/models.py:492 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:113 order/models.py:258
+#: order/templates/order/order_base.html:121 part/bom.py:237 part/bom.py:265
+#: stock/templates/stock/item_base.html:227
#: templates/email/overdue_purchase_order.html:16
-#: templates/js/translated/company.js:268
-#: templates/js/translated/company.js:401
-#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813
-#: templates/js/translated/part.js:217 templates/js/translated/part.js:995
+#: templates/js/translated/company.js:303
+#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:929 templates/js/translated/order.js:1975
+#: templates/js/translated/part.js:217 templates/js/translated/part.js:993
#: templates/js/translated/table_filters.js:423
msgid "Supplier"
msgstr ""
-#: company/models.py:492 templates/js/translated/part.js:218
+#: company/models.py:493 templates/js/translated/part.js:218
msgid "Select supplier"
msgstr ""
-#: company/models.py:497 company/templates/company/supplier_part.html:118
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267
-#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228
-#: templates/js/translated/part.js:1013
+#: company/models.py:498 company/templates/company/supplier_part.html:123
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:302
+#: templates/js/translated/order.js:2226 templates/js/translated/part.js:228
+#: templates/js/translated/part.js:1011
msgid "SKU"
msgstr ""
-#: company/models.py:498 templates/js/translated/part.js:229
+#: company/models.py:499 templates/js/translated/part.js:229
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:505
+#: company/models.py:506
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:511
+#: company/models.py:512
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:517
+#: company/models.py:518
msgid "Supplier part description"
msgstr ""
-#: company/models.py:522 company/templates/company/supplier_part.html:146
-#: part/models.py:2666 part/templates/part/upload_bom.html:59
+#: company/models.py:523 company/templates/company/supplier_part.html:158
+#: part/models.py:2674 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399
msgid "Note"
msgstr ""
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "base cost"
msgstr ""
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:528 company/templates/company/supplier_part.html:139
-#: stock/models.py:624 stock/templates/stock/item_base.html:240
-#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976
+#: company/models.py:529 company/templates/company/supplier_part.html:144
+#: stock/models.py:624 stock/templates/stock/item_base.html:243
+#: templates/js/translated/company.js:991 templates/js/translated/stock.js:1972
msgid "Packaging"
msgstr ""
-#: company/models.py:528
+#: company/models.py:529
msgid "Part packaging"
msgstr ""
-#: company/models.py:530 part/models.py:1783
+#: company/models.py:532 company/serializers.py:242
+#: company/templates/company/supplier_part.html:151
+#: templates/js/translated/company.js:996 templates/js/translated/order.js:820
+#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:2270 templates/js/translated/order.js:2287
+#: templates/js/translated/part.js:1043 templates/js/translated/part.js:1095
+msgid "Pack Quantity"
+msgstr ""
+
+#: company/models.py:533
+msgid "Unit quantity supplied in a single pack"
+msgstr ""
+
+#: company/models.py:539 part/models.py:1783
msgid "multiple"
msgstr ""
-#: company/models.py:530
+#: company/models.py:539
msgid "Order multiple"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part.html:94
+#: company/models.py:547 company/templates/company/supplier_part.html:99
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823
-#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979
-#: templates/js/translated/part.js:600 templates/js/translated/part.js:603
+#: templates/js/translated/bom.js:915 templates/js/translated/build.js:1823
+#: templates/js/translated/build.js:2686 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:601
#: templates/js/translated/table_filters.js:186
msgid "Available"
msgstr ""
-#: company/models.py:539
+#: company/models.py:548
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:543
+#: company/models.py:552
msgid "Availability Updated"
msgstr ""
-#: company/models.py:544
+#: company/models.py:553
msgid "Date of last update of availability data"
msgstr ""
-#: company/models.py:672
+#: company/models.py:681
msgid "last updated"
msgstr ""
@@ -3029,12 +3043,12 @@ msgstr ""
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386
+#: templates/InvenTree/search.html:179 templates/js/translated/company.js:421
msgid "Company"
msgstr ""
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:624
+#: templates/js/translated/order.js:689
msgid "Create Purchase Order"
msgstr ""
@@ -3047,7 +3061,7 @@ msgid "Edit company information"
msgstr ""
#: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:329
+#: templates/js/translated/company.js:364
msgid "Edit Company"
msgstr ""
@@ -3070,13 +3084,13 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:86 order/models.py:637
+#: company/templates/company/company_base.html:86 order/models.py:641
#: order/templates/order/sales_order_base.html:116 stock/models.py:643
#: stock/models.py:644 stock/serializers.py:809
-#: stock/templates/stock/item_base.html:396
+#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
-#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619
-#: templates/js/translated/stock.js:2559
+#: templates/js/translated/company.js:428 templates/js/translated/order.js:2813
+#: templates/js/translated/stock.js:2555
#: templates/js/translated/table_filters.js:427
msgid "Customer"
msgstr ""
@@ -3211,23 +3225,23 @@ msgid "Manufacturers"
msgstr ""
#: company/templates/company/manufacturer_part.html:35
-#: company/templates/company/supplier_part.html:186
+#: company/templates/company/supplier_part.html:198
#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80
msgid "Order part"
msgstr ""
#: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:681
+#: templates/js/translated/company.js:716
msgid "Edit manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:682
+#: templates/js/translated/company.js:717
msgid "Delete manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:65
-#: company/templates/company/supplier_part.html:77
+#: company/templates/company/supplier_part.html:82
msgid "Internal Part"
msgstr ""
@@ -3250,8 +3264,8 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:371 part/templates/part/detail.html:401
-#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34
-#: users/models.py:220
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:34
+#: users/models.py:222
msgid "Delete"
msgstr ""
@@ -3296,9 +3310,9 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:607
-#: stock/templates/stock/item_base.html:233
-#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041
-#: templates/js/translated/stock.js:1933
+#: stock/templates/stock/item_base.html:236
+#: templates/js/translated/company.js:945 templates/js/translated/order.js:1135
+#: templates/js/translated/stock.js:1929
msgid "Supplier Part"
msgstr ""
@@ -3308,7 +3322,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:40
#: company/templates/company/supplier_part.html:41
-#: company/templates/company/supplier_part.html:187
+#: company/templates/company/supplier_part.html:199
#: part/templates/part/detail.html:88
msgid "Order Part"
msgstr ""
@@ -3320,81 +3334,87 @@ msgstr ""
#: company/templates/company/supplier_part.html:48
#: company/templates/company/supplier_part.html:49
-#: templates/js/translated/company.js:212
+#: templates/js/translated/company.js:247
msgid "Edit Supplier Part"
msgstr ""
#: company/templates/company/supplier_part.html:53
+#: company/templates/company/supplier_part.html:54
+#: templates/js/translated/company.js:222
+msgid "Duplicate Supplier Part"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:58
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:54
+#: company/templates/company/supplier_part.html:59
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:112
+#: company/templates/company/supplier_part.html:117
msgid "No supplier information available"
msgstr ""
-#: company/templates/company/supplier_part.html:165
+#: company/templates/company/supplier_part.html:177
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr ""
-#: company/templates/company/supplier_part.html:168
+#: company/templates/company/supplier_part.html:180
#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181
msgid "Create new stock item"
msgstr ""
-#: company/templates/company/supplier_part.html:169
+#: company/templates/company/supplier_part.html:181
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182
#: templates/js/translated/stock.js:435
msgid "New Stock Item"
msgstr ""
-#: company/templates/company/supplier_part.html:182
+#: company/templates/company/supplier_part.html:194
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr ""
-#: company/templates/company/supplier_part.html:207
+#: company/templates/company/supplier_part.html:219
#: part/templates/part/prices.html:10
msgid "Pricing Information"
msgstr ""
-#: company/templates/company/supplier_part.html:212
-#: company/templates/company/supplier_part.html:326
-#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253
+#: company/templates/company/supplier_part.html:224
+#: company/templates/company/supplier_part.html:338
+#: part/templates/part/prices.html:276 templates/js/translated/part.js:2282
msgid "Add Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:250
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:252
-#: templates/js/translated/part.js:2263
+#: company/templates/company/supplier_part.html:264
+#: templates/js/translated/part.js:2292
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:266
-#: templates/js/translated/part.js:2277
+#: company/templates/company/supplier_part.html:278
+#: templates/js/translated/part.js:2306
msgid "Edit Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:291
+#: company/templates/company/supplier_part.html:303
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part.html:292
+#: company/templates/company/supplier_part.html:304
msgid "Delete price break"
msgstr ""
-#: company/templates/company/supplier_part.html:301
+#: company/templates/company/supplier_part.html:313
msgid "Last updated"
msgstr ""
-#: company/templates/company/supplier_part.html:382
+#: company/templates/company/supplier_part.html:394
msgid "Update Part Availability"
msgstr ""
@@ -3404,8 +3424,8 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313
-#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959
+#: templates/js/translated/part.js:749 templates/js/translated/part.js:1334
+#: templates/js/translated/part.js:1495 templates/js/translated/stock.js:959
#: templates/js/translated/stock.js:1754 templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -3432,7 +3452,7 @@ msgstr ""
#: stock/templates/stock/location.html:178
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2436 users/models.py:40
+#: templates/js/translated/stock.js:2432 users/models.py:40
msgid "Stock Items"
msgstr ""
@@ -3534,7 +3554,7 @@ msgstr ""
msgid "Order description"
msgstr ""
-#: order/models.py:84 order/models.py:1246
+#: order/models.py:84 order/models.py:1250
msgid "Link to external page"
msgstr ""
@@ -3550,11 +3570,11 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:241 order/models.py:624
+#: order/models.py:241 order/models.py:628
msgid "Order reference"
msgstr ""
-#: order/models.py:249 order/models.py:642
+#: order/models.py:249 order/models.py:646
msgid "Purchase order status"
msgstr ""
@@ -3562,8 +3582,8 @@ msgstr ""
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:262 order/templates/order/order_base.html:127
-#: templates/js/translated/order.js:1822
+#: order/models.py:262 order/templates/order/order_base.html:133
+#: templates/js/translated/order.js:1984
msgid "Supplier Reference"
msgstr ""
@@ -3603,245 +3623,245 @@ msgstr ""
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:638
+#: order/models.py:642
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer Reference "
msgstr ""
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:649
+#: order/models.py:653
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:652 order/models.py:1204
-#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828
+#: order/models.py:656 order/models.py:1208
+#: templates/js/translated/order.js:2860 templates/js/translated/order.js:3022
msgid "Shipment Date"
msgstr ""
-#: order/models.py:659
+#: order/models.py:663
msgid "shipped by"
msgstr ""
-#: order/models.py:714
+#: order/models.py:718
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:718
+#: order/models.py:722
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:721
+#: order/models.py:725 templates/js/translated/order.js:419
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:724
+#: order/models.py:728
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:898
+#: order/models.py:902
msgid "Item quantity"
msgstr ""
-#: order/models.py:904
+#: order/models.py:908
msgid "Line item reference"
msgstr ""
-#: order/models.py:906
+#: order/models.py:910
msgid "Line item notes"
msgstr ""
-#: order/models.py:911
+#: order/models.py:915
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:929
+#: order/models.py:933
msgid "Context"
msgstr ""
-#: order/models.py:930
+#: order/models.py:934
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:939
+#: order/models.py:943
msgid "Unit price"
msgstr ""
-#: order/models.py:969
+#: order/models.py:973
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:977
+#: order/models.py:981
msgid "deleted"
msgstr ""
-#: order/models.py:983 order/models.py:1063 order/models.py:1104
-#: order/models.py:1198 order/models.py:1330
-#: templates/js/translated/order.js:3284
+#: order/models.py:987 order/models.py:1067 order/models.py:1108
+#: order/models.py:1202 order/models.py:1334
+#: templates/js/translated/order.js:3478
msgid "Order"
msgstr ""
-#: order/models.py:984 order/models.py:1063
+#: order/models.py:988 order/models.py:1067
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:179
+#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
-#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042
-#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972
-#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540
+#: templates/js/translated/order.js:619 templates/js/translated/order.js:1136
+#: templates/js/translated/order.js:1959 templates/js/translated/part.js:970
+#: templates/js/translated/stock.js:1909 templates/js/translated/stock.js:2536
msgid "Purchase Order"
msgstr ""
-#: order/models.py:1002
+#: order/models.py:1006
msgid "Supplier part"
msgstr ""
-#: order/models.py:1009 order/templates/order/order_base.html:172
-#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105
+#: order/models.py:1013 order/templates/order/order_base.html:178
+#: templates/js/translated/order.js:1641 templates/js/translated/order.js:2373
+#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1125
#: templates/js/translated/table_filters.js:338
msgid "Received"
msgstr ""
-#: order/models.py:1010
+#: order/models.py:1014
msgid "Number of items received"
msgstr ""
-#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734
-#: stock/serializers.py:169 stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1964
+#: order/models.py:1021 part/templates/part/prices.html:181 stock/models.py:734
+#: stock/serializers.py:169 stock/templates/stock/item_base.html:189
+#: templates/js/translated/stock.js:1960
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1018
+#: order/models.py:1022
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1026
+#: order/models.py:1030
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1092
+#: order/models.py:1096
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1097
+#: order/models.py:1101
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1123 part/templates/part/part_pricing.html:115
+#: order/models.py:1127 part/templates/part/part_pricing.html:115
#: part/templates/part/prices.html:121 part/templates/part/prices.html:290
msgid "Sale Price"
msgstr ""
-#: order/models.py:1124
+#: order/models.py:1128
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1129
+#: order/models.py:1133
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1205
+#: order/models.py:1209
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1212
+#: order/models.py:1216
msgid "Checked By"
msgstr ""
-#: order/models.py:1213
+#: order/models.py:1217
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1220 order/models.py:1405 order/serializers.py:1170
-#: order/serializers.py:1294 templates/js/translated/model_renderers.js:314
+#: order/models.py:1224 order/models.py:1409 order/serializers.py:1224
+#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314
msgid "Shipment"
msgstr ""
-#: order/models.py:1221
+#: order/models.py:1225
msgid "Shipment number"
msgstr ""
-#: order/models.py:1225
+#: order/models.py:1229
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1231
+#: order/models.py:1235
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1232
+#: order/models.py:1236
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1239
+#: order/models.py:1243
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1240
+#: order/models.py:1244
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1258
+#: order/models.py:1262
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1261
+#: order/models.py:1265
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1364 order/models.py:1366
+#: order/models.py:1368 order/models.py:1370
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1370
+#: order/models.py:1374
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1372
+#: order/models.py:1376
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1375
+#: order/models.py:1379
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1385 order/serializers.py:1066
+#: order/models.py:1389 order/serializers.py:1086
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1388
+#: order/models.py:1392
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1389
+#: order/models.py:1393
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1397
+#: order/models.py:1401
msgid "Line"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1410
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1419 templates/js/translated/notification.js:55
+#: order/models.py:1423 templates/js/translated/notification.js:55
msgid "Item"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1424
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1423
+#: order/models.py:1427
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3853,111 +3873,119 @@ msgstr ""
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:294
+#: order/serializers.py:209 order/serializers.py:1104
+msgid "Allow order to be closed with incomplete line items"
+msgstr ""
+
+#: order/serializers.py:220 order/serializers.py:1115
+msgid "Order has incomplete line items"
+msgstr ""
+
+#: order/serializers.py:311
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:318
+#: order/serializers.py:335
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:354
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:342
+#: order/serializers.py:359
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:348
+#: order/serializers.py:365
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:349
+#: order/serializers.py:366
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:413 order/serializers.py:1138
+#: order/serializers.py:430 order/serializers.py:1192
msgid "Line Item"
msgstr ""
-#: order/serializers.py:419
+#: order/serializers.py:436
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:429 order/serializers.py:533
+#: order/serializers.py:446 order/serializers.py:553
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:448 templates/js/translated/order.js:1354
+#: order/serializers.py:465 templates/js/translated/order.js:1497
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:456 templates/js/translated/order.js:1365
+#: order/serializers.py:473 templates/js/translated/order.js:1508
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:469
+#: order/serializers.py:486
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:470
+#: order/serializers.py:487
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:484
+#: order/serializers.py:501
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:507
+#: order/serializers.py:527
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:549
+#: order/serializers.py:569
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:566
+#: order/serializers.py:586
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:577
+#: order/serializers.py:597
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:883
+#: order/serializers.py:903
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:964
+#: order/serializers.py:984
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1027 order/serializers.py:1147
+#: order/serializers.py:1047 order/serializers.py:1201
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1049
+#: order/serializers.py:1069
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1160
+#: order/serializers.py:1214
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1182 order/serializers.py:1302
+#: order/serializers.py:1236 order/serializers.py:1356
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1185 order/serializers.py:1305
+#: order/serializers.py:1239 order/serializers.py:1359
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1235
+#: order/serializers.py:1289
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1245
+#: order/serializers.py:1299
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3993,83 +4021,83 @@ msgstr ""
msgid "Order actions"
msgstr ""
-#: order/templates/order/order_base.html:45
+#: order/templates/order/order_base.html:46
#: order/templates/order/sales_order_base.html:58
msgid "Edit order"
msgstr ""
-#: order/templates/order/order_base.html:47
+#: order/templates/order/order_base.html:50
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr ""
-#: order/templates/order/order_base.html:50
+#: order/templates/order/order_base.html:55
msgid "Duplicate order"
msgstr ""
-#: order/templates/order/order_base.html:55
+#: order/templates/order/order_base.html:61
msgid "Place order"
msgstr ""
-#: order/templates/order/order_base.html:59
+#: order/templates/order/order_base.html:65
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:61
+#: order/templates/order/order_base.html:67
#: order/templates/order/purchase_order_detail.html:30
msgid "Receive Items"
msgstr ""
-#: order/templates/order/order_base.html:63
+#: order/templates/order/order_base.html:69
msgid "Mark order as complete"
msgstr ""
-#: order/templates/order/order_base.html:65
+#: order/templates/order/order_base.html:71
#: order/templates/order/sales_order_base.html:68
msgid "Complete Order"
msgstr ""
-#: order/templates/order/order_base.html:87
+#: order/templates/order/order_base.html:93
#: order/templates/order/sales_order_base.html:80
msgid "Order Reference"
msgstr ""
-#: order/templates/order/order_base.html:92
+#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:85
msgid "Order Description"
msgstr ""
-#: order/templates/order/order_base.html:97
+#: order/templates/order/order_base.html:103
#: order/templates/order/sales_order_base.html:90
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:120
+#: order/templates/order/order_base.html:126
msgid "No suppplier information available"
msgstr ""
-#: order/templates/order/order_base.html:133
+#: order/templates/order/order_base.html:139
#: order/templates/order/sales_order_base.html:129
msgid "Completed Line Items"
msgstr ""
-#: order/templates/order/order_base.html:139
+#: order/templates/order/order_base.html:145
#: order/templates/order/sales_order_base.html:135
#: order/templates/order/sales_order_base.html:145
msgid "Incomplete"
msgstr ""
-#: order/templates/order/order_base.html:158
+#: order/templates/order/order_base.html:164
#: report/templates/report/inventree_build_order_base.html:121
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:186
+#: order/templates/order/order_base.html:192
#: order/templates/order/sales_order_base.html:190
msgid "Total cost"
msgstr ""
-#: order/templates/order/order_base.html:190
+#: order/templates/order/order_base.html:196
#: order/templates/order/sales_order_base.html:194
msgid "Total cost could not be calculated"
msgstr ""
@@ -4102,8 +4130,8 @@ msgstr ""
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463
#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015
-#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443
-#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625
+#: templates/js/translated/order.js:1084 templates/js/translated/order.js:1586
+#: templates/js/translated/order.js:3097 templates/js/translated/stock.js:625
#: templates/js/translated/stock.js:793
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
@@ -4139,7 +4167,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:26
#: order/templates/order/sales_order_detail.html:22
#: order/templates/order/sales_order_detail.html:255
-#: templates/js/translated/order.js:663
+#: templates/js/translated/order.js:728
msgid "Add Line Item"
msgstr ""
@@ -4167,7 +4195,7 @@ msgstr ""
msgid "Order Notes"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:228
+#: order/templates/order/purchase_order_detail.html:232
msgid "Add Order Line"
msgstr ""
@@ -4185,12 +4213,12 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:231
+#: templates/js/translated/order.js:232
msgid "Complete Shipments"
msgstr ""
#: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:258
+#: templates/js/translated/order.js:397
msgid "Complete Sales Order"
msgstr ""
@@ -4199,7 +4227,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2632
+#: templates/js/translated/order.js:2826
msgid "Customer Reference"
msgstr ""
@@ -4223,7 +4251,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:72
-#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1116
#: templates/js/translated/build.js:1923
msgid "Actions"
msgstr ""
@@ -4308,14 +4336,14 @@ msgid "Total Stock"
msgstr ""
#: part/bom.py:129 part/templates/part/part_base.html:189
-#: templates/js/translated/order.js:3724
+#: templates/js/translated/order.js:3918
msgid "Available Stock"
msgstr ""
#: part/bom.py:130 part/templates/part/part_base.html:207
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853
-#: templates/js/translated/part.js:590 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503
+#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1853
+#: templates/js/translated/part.js:588 templates/js/translated/part.js:608
+#: templates/js/translated/part.js:1337 templates/js/translated/part.js:1520
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr ""
@@ -4344,7 +4372,7 @@ msgstr ""
msgid "Icon (optional)"
msgstr ""
-#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16
+#: part/models.py:122 part/models.py:2516 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -4361,7 +4389,7 @@ msgstr ""
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146
+#: templates/js/translated/part.js:2004 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr ""
@@ -4391,7 +4419,7 @@ msgstr ""
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:745 part/models.py:2562
+#: part/models.py:745 part/models.py:2570
msgid "Part name"
msgstr ""
@@ -4424,11 +4452,11 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:783 part/models.py:2257 part/models.py:2507
+#: part/models.py:783 part/models.py:2265 part/models.py:2515
#: part/templates/part/part_base.html:257
#: templates/InvenTree/settings/settings.html:232
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688
+#: templates/js/translated/part.js:1477 templates/js/translated/part.js:1717
msgid "Category"
msgstr ""
@@ -4437,7 +4465,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:789 part/templates/part/part_base.html:266
-#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:1430
#: templates/js/translated/stock.js:1726
msgid "IPN"
msgstr ""
@@ -4451,7 +4479,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:797 part/templates/part/part_base.html:273
-#: report/models.py:171 templates/js/translated/part.js:743
+#: report/models.py:171 templates/js/translated/part.js:741
msgid "Revision"
msgstr ""
@@ -4543,245 +4571,245 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2304
+#: part/models.py:2312
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2321
+#: part/models.py:2329
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2341 templates/js/translated/part.js:2026
+#: part/models.py:2349 templates/js/translated/part.js:2055
#: templates/js/translated/stock.js:1340
msgid "Test Name"
msgstr ""
-#: part/models.py:2342
+#: part/models.py:2350
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2347
+#: part/models.py:2355
msgid "Test Description"
msgstr ""
-#: part/models.py:2348
+#: part/models.py:2356
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2353 templates/js/translated/part.js:2035
+#: part/models.py:2361 templates/js/translated/part.js:2064
#: templates/js/translated/table_filters.js:302
msgid "Required"
msgstr ""
-#: part/models.py:2354
+#: part/models.py:2362
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2359 templates/js/translated/part.js:2043
+#: part/models.py:2367 templates/js/translated/part.js:2072
msgid "Requires Value"
msgstr ""
-#: part/models.py:2360
+#: part/models.py:2368
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2365 templates/js/translated/part.js:2050
+#: part/models.py:2373 templates/js/translated/part.js:2079
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2366
+#: part/models.py:2374
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2374
+#: part/models.py:2382
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2410
+#: part/models.py:2418
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2418
+#: part/models.py:2426
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2433
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2430
+#: part/models.py:2438
msgid "Parameter description"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2471
msgid "Parent Part"
msgstr ""
-#: part/models.py:2465 part/models.py:2513 part/models.py:2514
+#: part/models.py:2473 part/models.py:2521 part/models.py:2522
#: templates/InvenTree/settings/settings.html:227
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Data"
msgstr ""
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2518 templates/InvenTree/settings/settings.html:236
+#: part/models.py:2526 templates/InvenTree/settings/settings.html:236
msgid "Default Value"
msgstr ""
-#: part/models.py:2519
+#: part/models.py:2527
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2554
+#: part/models.py:2562
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2557 templates/js/translated/model_renderers.js:212
+#: part/models.py:2565 templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr ""
-#: part/models.py:2558
+#: part/models.py:2566
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2561
+#: part/models.py:2569
msgid "Part Name"
msgstr ""
-#: part/models.py:2565
+#: part/models.py:2573
msgid "Part IPN"
msgstr ""
-#: part/models.py:2566
+#: part/models.py:2574
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2569
+#: part/models.py:2577
msgid "Level"
msgstr ""
-#: part/models.py:2570
+#: part/models.py:2578
msgid "BOM level"
msgstr ""
-#: part/models.py:2639
+#: part/models.py:2647
msgid "Select parent part"
msgstr ""
-#: part/models.py:2647
+#: part/models.py:2655
msgid "Sub part"
msgstr ""
-#: part/models.py:2648
+#: part/models.py:2656
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2654
+#: part/models.py:2662
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2656 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997
+#: part/models.py:2664 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:876 templates/js/translated/bom.js:1005
#: templates/js/translated/table_filters.js:100
msgid "Optional"
msgstr ""
-#: part/models.py:2656
+#: part/models.py:2664
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2659 part/templates/part/upload_bom.html:55
+#: part/models.py:2667 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2660
+#: part/models.py:2668
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2671
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2666
+#: part/models.py:2674
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "Checksum"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2672 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1014
+#: part/models.py:2680 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:1022
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:96
msgid "Inherited"
msgstr ""
-#: part/models.py:2673
+#: part/models.py:2681
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2678 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1006
+#: part/models.py:2686 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:1014
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2679
+#: part/models.py:2687
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2757 stock/models.py:468
+#: part/models.py:2765 stock/models.py:468
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2766 part/models.py:2768
+#: part/models.py:2774 part/models.py:2776
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2873
+#: part/models.py:2881
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2902
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2915
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2923
msgid "Substitute part"
msgstr ""
-#: part/models.py:2930
+#: part/models.py:2938
msgid "Part 1"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Part 2"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2960
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:2956
+#: part/models.py:2964
msgid "Duplicate relationship already exists"
msgstr ""
@@ -5309,10 +5337,10 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:624
-#: templates/js/translated/company.js:884
+#: templates/js/translated/company.js:659
+#: templates/js/translated/company.js:920
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:654 templates/js/translated/part.js:731
+#: templates/js/translated/part.js:652 templates/js/translated/part.js:729
msgid "Inactive"
msgstr ""
@@ -5327,28 +5355,28 @@ msgid "This part is a variant of %(link)s"
msgstr ""
#: part/templates/part/part_base.html:194
-#: templates/js/translated/company.js:974
+#: templates/js/translated/company.js:1027
#: templates/js/translated/table_filters.js:201
msgid "In Stock"
msgstr ""
#: part/templates/part/part_base.html:215
-#: stock/templates/stock/item_base.html:379
+#: stock/templates/stock/item_base.html:382
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:224
-#: stock/templates/stock/item_base.html:372
+#: stock/templates/stock/item_base.html:375
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1043
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320
-#: templates/js/translated/part.js:1510
+#: part/templates/part/part_base.html:238 templates/js/translated/part.js:591
+#: templates/js/translated/part.js:611 templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1527
msgid "Building"
msgstr ""
@@ -5361,7 +5389,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:328
+#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
@@ -5400,7 +5428,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:989
+#: templates/js/translated/bom.js:997
msgid "No supplier pricing available"
msgstr ""
@@ -5439,7 +5467,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:53
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468
+#: templates/js/translated/order.js:2001 templates/js/translated/stock.js:2464
msgid "Date"
msgstr ""
@@ -5495,7 +5523,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983
+#: part/templates/part/prices.html:160 templates/js/translated/bom.js:991
msgid "Supplier Cost"
msgstr ""
@@ -5533,8 +5561,8 @@ msgstr ""
msgid "No sale pice history available for this part."
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616
-#: templates/js/translated/part.js:1308
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:614
+#: templates/js/translated/part.js:1329 templates/js/translated/part.js:1331
msgid "No Stock"
msgstr ""
@@ -5735,19 +5763,19 @@ msgstr ""
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:186
+#: plugin/models.py:188
msgid "Plugin"
msgstr ""
-#: plugin/models.py:249
+#: plugin/models.py:253
msgid "Method"
msgstr ""
-#: plugin/plugin.py:251
+#: plugin/plugin.py:252
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:263
+#: plugin/plugin.py:264
msgid "No date found"
msgstr ""
@@ -5925,12 +5953,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:648 stock/templates/stock/item_base.html:317
+#: stock/models.py:648 stock/templates/stock/item_base.html:320
#: templates/js/translated/build.js:456 templates/js/translated/build.js:608
#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706
#: templates/js/translated/model_renderers.js:118
-#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403
-#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490
+#: templates/js/translated/order.js:121 templates/js/translated/order.js:3597
+#: templates/js/translated/order.js:3684 templates/js/translated/stock.js:490
msgid "Serial Number"
msgstr ""
@@ -5963,7 +5991,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780
-#: templates/js/translated/stock.js:2717
+#: templates/js/translated/stock.js:2713
msgid "Serial"
msgstr ""
@@ -5980,7 +6008,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
#: stock/models.py:89 stock/models.py:739
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:250
msgid "Owner"
msgstr ""
@@ -6046,7 +6074,7 @@ msgstr ""
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:631 stock/templates/stock/item_base.html:356
+#: stock/models.py:631 stock/templates/stock/item_base.html:359
msgid "Installed In"
msgstr ""
@@ -6086,8 +6114,8 @@ msgstr ""
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:706 stock/templates/stock/item_base.html:424
-#: templates/js/translated/stock.js:1883
+#: stock/models.py:706 stock/templates/stock/item_base.html:427
+#: templates/js/translated/stock.js:1879
msgid "Expiry Date"
msgstr ""
@@ -6379,7 +6407,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2857
msgid "Install Stock Item"
msgstr ""
@@ -6479,134 +6507,135 @@ msgstr ""
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:158
+#: stock/templates/stock/item_base.html:161
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:193
+#: stock/templates/stock/item_base.html:196
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:214
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:254
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/location.html:132
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:268
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:266
+#: stock/templates/stock/item_base.html:269
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:279
+#: stock/templates/stock/item_base.html:282
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:290
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:298
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:301
+#: stock/templates/stock/item_base.html:304
msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
msgstr ""
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:345
+#: stock/templates/stock/item_base.html:348
msgid "Available Quantity"
msgstr ""
-#: stock/templates/stock/item_base.html:389
+#: stock/templates/stock/item_base.html:392
#: templates/js/translated/build.js:1729
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:404
+#: stock/templates/stock/item_base.html:407
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#: templates/js/translated/table_filters.js:269
msgid "Expired"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:275
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:437
-#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899
+#: stock/templates/stock/item_base.html:440
+#: templates/js/translated/company.js:1038
+#: templates/js/translated/stock.js:1895
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:442
+#: stock/templates/stock/item_base.html:445
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:516
+#: stock/templates/stock/item_base.html:519
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:589
+#: stock/templates/stock/item_base.html:592
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:592
+#: stock/templates/stock/item_base.html:595
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:593
+#: stock/templates/stock/item_base.html:596
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:601
+#: stock/templates/stock/item_base.html:604
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:629
+#: stock/templates/stock/item_base.html:632
msgid "Return to Stock"
msgstr ""
@@ -6739,11 +6768,11 @@ msgstr ""
msgid "Refer to the error log in the admin interface for further details"
msgstr ""
-#: templates/503.html:11 templates/503.html:36
+#: templates/503.html:11 templates/503.html:34
msgid "Site is in Maintenance"
msgstr ""
-#: templates/503.html:42
+#: templates/503.html:40
msgid "The site is currently in maintenance and should be up again soon!"
msgstr ""
@@ -7509,7 +7538,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:644
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "تایید"
@@ -7728,7 +7757,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1481
+#: templates/js/translated/bom.js:1489
msgid "Required Quantity"
msgstr ""
@@ -7742,7 +7771,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2522
+#: templates/js/translated/part.js:2551
msgid "Minimum Quantity"
msgstr ""
@@ -7947,7 +7976,7 @@ msgstr ""
#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620
#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601
#: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003
-#: templates/js/translated/order.js:1085 templates/modals.html:15
+#: templates/js/translated/order.js:1179 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -7957,12 +7986,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145
+#: templates/js/translated/order.js:960 templates/js/translated/tables.js:145
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:867
+#: templates/js/translated/order.js:961
msgid "Select file format"
msgstr ""
@@ -8058,73 +8087,73 @@ msgstr ""
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857
-#: templates/js/translated/order.js:3738
+#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1857
+#: templates/js/translated/order.js:3932
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861
+#: templates/js/translated/bom.js:940 templates/js/translated/build.js:1861
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516
+#: templates/js/translated/bom.js:942 templates/js/translated/build.js:1863
+#: templates/js/translated/part.js:761 templates/js/translated/part.js:1533
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865
+#: templates/js/translated/bom.js:944 templates/js/translated/build.js:1865
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:954
+#: templates/js/translated/bom.js:962
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:969
+#: templates/js/translated/bom.js:977
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:976
+#: templates/js/translated/bom.js:984
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145
+#: templates/js/translated/bom.js:1033 templates/js/translated/bom.js:1153
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1052
+#: templates/js/translated/bom.js:1060
msgid "Including On Order"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1124
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1118
+#: templates/js/translated/bom.js:1126
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1120
+#: templates/js/translated/bom.js:1128
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284
+#: templates/js/translated/bom.js:1130 templates/js/translated/bom.js:1292
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1124
+#: templates/js/translated/bom.js:1132
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650
+#: templates/js/translated/bom.js:1228 templates/js/translated/build.js:1650
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789
+#: templates/js/translated/bom.js:1472 templates/js/translated/build.js:1789
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1486
+#: templates/js/translated/bom.js:1498
msgid "Inherited from parent BOM"
msgstr ""
@@ -8267,12 +8296,12 @@ msgid "No required tests for this build"
msgstr ""
#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697
-#: templates/js/translated/order.js:3438
+#: templates/js/translated/order.js:3632
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698
-#: templates/js/translated/order.js:3439
+#: templates/js/translated/order.js:3633
msgid "Delete stock allocation"
msgstr ""
@@ -8292,20 +8321,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745
+#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3939
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743
+#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3937
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127
-#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757
+#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3951
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837
+#: templates/js/translated/build.js:1930 templates/js/translated/order.js:4031
msgid "Build stock"
msgstr ""
@@ -8313,21 +8342,21 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830
+#: templates/js/translated/build.js:1937 templates/js/translated/order.js:4024
msgid "Allocate stock"
msgstr ""
#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965
+#: templates/js/translated/order.js:1007 templates/js/translated/order.js:3159
#: templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966
+#: templates/js/translated/build.js:1977 templates/js/translated/order.js:3160
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914
+#: templates/js/translated/build.js:2026 templates/js/translated/order.js:3108
msgid "Specify stock allocation quantity"
msgstr ""
@@ -8339,7 +8368,7 @@ msgstr ""
msgid "All selected parts have been fully allocated"
msgstr ""
-#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980
+#: templates/js/translated/build.js:2115 templates/js/translated/order.js:3174
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
@@ -8347,11 +8376,11 @@ msgstr ""
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077
+#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3271
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154
+#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3348
msgid "No matching stock items"
msgstr ""
@@ -8383,9 +8412,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401
-#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1422
+#: templates/js/translated/part.js:1948 templates/js/translated/stock.js:1686
+#: templates/js/translated/stock.js:2382
msgid "Select"
msgstr ""
@@ -8397,7 +8426,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647
+#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2643
msgid "No user information"
msgstr ""
@@ -8405,111 +8434,115 @@ msgstr ""
msgid "No parts allocated for"
msgstr ""
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:179
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:181
msgid "Add Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
msgid "Edit Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:167 templates/js/translated/order.js:511
+#: templates/js/translated/company.js:169 templates/js/translated/order.js:576
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:195 templates/js/translated/order.js:734
+#: templates/js/translated/company.js:197 templates/js/translated/order.js:828
msgid "Add Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:262
+#: templates/js/translated/company.js:297
msgid "All selected supplier parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:278
+#: templates/js/translated/company.js:313
msgid "Delete Supplier Parts"
msgstr ""
-#: templates/js/translated/company.js:350
+#: templates/js/translated/company.js:385
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:427
+#: templates/js/translated/company.js:462
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:471
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:451
+#: templates/js/translated/company.js:486
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:492
+#: templates/js/translated/company.js:527
msgid "All selected manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:507
+#: templates/js/translated/company.js:542
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:541
+#: templates/js/translated/company.js:576
msgid "All selected parameters will be deleted"
msgstr ""
-#: templates/js/translated/company.js:555
+#: templates/js/translated/company.js:590
msgid "Delete Parameters"
msgstr ""
-#: templates/js/translated/company.js:596
+#: templates/js/translated/company.js:631
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:616
-#: templates/js/translated/company.js:876 templates/js/translated/part.js:638
-#: templates/js/translated/part.js:723
+#: templates/js/translated/company.js:651
+#: templates/js/translated/company.js:912 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:721
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:620
-#: templates/js/translated/company.js:880 templates/js/translated/part.js:642
-#: templates/js/translated/part.js:727
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:916 templates/js/translated/part.js:640
+#: templates/js/translated/part.js:725
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:748 templates/js/translated/part.js:830
+#: templates/js/translated/company.js:783 templates/js/translated/part.js:828
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:785 templates/js/translated/part.js:872
+#: templates/js/translated/company.js:820 templates/js/translated/part.js:870
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:786 templates/js/translated/part.js:873
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:871
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:805 templates/js/translated/part.js:890
+#: templates/js/translated/company.js:840 templates/js/translated/part.js:888
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:816 templates/js/translated/part.js:902
+#: templates/js/translated/company.js:851 templates/js/translated/part.js:900
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:856
+#: templates/js/translated/company.js:891
msgid "No supplier parts found"
msgstr ""
-#: templates/js/translated/company.js:1002
+#: templates/js/translated/company.js:1032
+msgid "Availability"
+msgstr ""
+
+#: templates/js/translated/company.js:1055
msgid "Edit supplier part"
msgstr ""
-#: templates/js/translated/company.js:1003
+#: templates/js/translated/company.js:1056
msgid "Delete supplier part"
msgstr ""
@@ -8547,61 +8580,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:367 templates/js/translated/forms.js:382
-#: templates/js/translated/forms.js:396 templates/js/translated/forms.js:410
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:369
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:384
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:398
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:670
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:771
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1269 templates/modals.html:19
+#: templates/js/translated/forms.js:1274 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1702
+#: templates/js/translated/forms.js:1707
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1917 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2170
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2648
+#: templates/js/translated/forms.js:2653
msgid "Select Columns"
msgstr ""
@@ -8792,409 +8825,422 @@ msgstr ""
msgid "Notifications will load here"
msgstr ""
-#: templates/js/translated/order.js:96
+#: templates/js/translated/order.js:97
msgid "No stock items have been allocated to this shipment"
msgstr ""
-#: templates/js/translated/order.js:101
+#: templates/js/translated/order.js:102
msgid "The following stock items will be shipped"
msgstr ""
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:142
msgid "Complete Shipment"
msgstr ""
-#: templates/js/translated/order.js:161
+#: templates/js/translated/order.js:162
msgid "Confirm Shipment"
msgstr ""
-#: templates/js/translated/order.js:217
+#: templates/js/translated/order.js:218
msgid "No pending shipments found"
msgstr ""
-#: templates/js/translated/order.js:221
+#: templates/js/translated/order.js:222
msgid "No stock items have been allocated to pending shipments"
msgstr ""
-#: templates/js/translated/order.js:253
+#: templates/js/translated/order.js:254
msgid "Skip"
msgstr ""
-#: templates/js/translated/order.js:283
+#: templates/js/translated/order.js:284
msgid "Complete Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:289
+#: templates/js/translated/order.js:301 templates/js/translated/order.js:413
msgid "Mark this order as complete?"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:307
msgid "All line items have been received"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:312
msgid "This order has line items which have not been marked as received."
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:313 templates/js/translated/order.js:427
msgid "Completing this order means that the order and line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:324
+#: templates/js/translated/order.js:336
msgid "Cancel Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:329
+#: templates/js/translated/order.js:341
msgid "Are you sure you wish to cancel this purchase order?"
msgstr ""
-#: templates/js/translated/order.js:335
+#: templates/js/translated/order.js:347
msgid "This purchase order can not be cancelled"
msgstr ""
-#: templates/js/translated/order.js:358
+#: templates/js/translated/order.js:370
msgid "Issue Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:363
+#: templates/js/translated/order.js:375
msgid "After placing this purchase order, line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:385
+#: templates/js/translated/order.js:426
+msgid "This order has line items which have not been completed."
+msgstr ""
+
+#: templates/js/translated/order.js:450
msgid "Cancel Sales Order"
msgstr ""
-#: templates/js/translated/order.js:390
+#: templates/js/translated/order.js:455
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:444
+#: templates/js/translated/order.js:509
msgid "Create New Shipment"
msgstr ""
-#: templates/js/translated/order.js:469
+#: templates/js/translated/order.js:534
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:494
+#: templates/js/translated/order.js:559
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:555
+#: templates/js/translated/order.js:620
msgid "Select purchase order to duplicate"
msgstr ""
-#: templates/js/translated/order.js:562
+#: templates/js/translated/order.js:627
msgid "Duplicate Line Items"
msgstr ""
-#: templates/js/translated/order.js:563
+#: templates/js/translated/order.js:628
msgid "Duplicate all line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:570
+#: templates/js/translated/order.js:635
msgid "Duplicate Extra Lines"
msgstr ""
-#: templates/js/translated/order.js:571
+#: templates/js/translated/order.js:636
msgid "Duplicate extra line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:588
+#: templates/js/translated/order.js:653
msgid "Edit Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:605
+#: templates/js/translated/order.js:670
msgid "Duplication Options"
msgstr ""
-#: templates/js/translated/order.js:863
+#: templates/js/translated/order.js:957
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:914
+#: templates/js/translated/order.js:1008
msgid "At least one purchaseable part must be selected"
msgstr ""
-#: templates/js/translated/order.js:939
+#: templates/js/translated/order.js:1033
msgid "Quantity to order"
msgstr ""
-#: templates/js/translated/order.js:948
+#: templates/js/translated/order.js:1042
msgid "New supplier part"
msgstr ""
-#: templates/js/translated/order.js:966
+#: templates/js/translated/order.js:1060
msgid "New purchase order"
msgstr ""
-#: templates/js/translated/order.js:999
+#: templates/js/translated/order.js:1093
msgid "Add to purchase order"
msgstr ""
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1233
msgid "No matching supplier parts"
msgstr ""
-#: templates/js/translated/order.js:1123
+#: templates/js/translated/order.js:1252
msgid "No matching purchase orders"
msgstr ""
-#: templates/js/translated/order.js:1300
+#: templates/js/translated/order.js:1429
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1430
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420
+#: templates/js/translated/order.js:1450 templates/js/translated/order.js:1563
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431
+#: templates/js/translated/order.js:1456 templates/js/translated/order.js:1574
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1339
+#: templates/js/translated/order.js:1471
+msgid "Received Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:1482
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144
+#: templates/js/translated/order.js:1546 templates/js/translated/stock.js:2140
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:1494
+#: templates/js/translated/order.js:1639
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:1495
+#: templates/js/translated/order.js:1640
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:1497
+#: templates/js/translated/order.js:1642
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:1516
+#: templates/js/translated/order.js:1661
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:1517
+#: templates/js/translated/order.js:1662
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943
+#: templates/js/translated/order.js:1940 templates/js/translated/part.js:941
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2803
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674
-#: templates/js/translated/order.js:2815
+#: templates/js/translated/order.js:2017 templates/js/translated/order.js:2868
+#: templates/js/translated/order.js:3009
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889
+#: templates/js/translated/order.js:2115 templates/js/translated/order.js:4083
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911
+#: templates/js/translated/order.js:2132 templates/js/translated/order.js:4105
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:4116
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:2026
+#: templates/js/translated/order.js:2188
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:2215 templates/js/translated/order.js:3817
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309
-#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156
-#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753
+#: templates/js/translated/order.js:2270 templates/js/translated/part.js:1043
+#: templates/js/translated/part.js:1095
+msgid "Total Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:2301 templates/js/translated/order.js:2503
+#: templates/js/translated/order.js:3842 templates/js/translated/order.js:4350
+#: templates/js/translated/part.js:2184 templates/js/translated/part.js:2782
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325
-#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172
+#: templates/js/translated/order.js:2316 templates/js/translated/order.js:2519
+#: templates/js/translated/order.js:3858 templates/js/translated/order.js:4366
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706
-#: templates/js/translated/part.js:1070
+#: templates/js/translated/order.js:2357 templates/js/translated/order.js:3900
+#: templates/js/translated/part.js:1079
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110
+#: templates/js/translated/order.js:2416 templates/js/translated/part.js:1130
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2420 templates/js/translated/order.js:4037
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844
+#: templates/js/translated/order.js:2421 templates/js/translated/order.js:4038
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848
+#: templates/js/translated/order.js:2422 templates/js/translated/order.js:4042
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221
+#: templates/js/translated/order.js:2568 templates/js/translated/order.js:4415
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222
+#: templates/js/translated/order.js:2569 templates/js/translated/order.js:4416
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223
+#: templates/js/translated/order.js:2570 templates/js/translated/order.js:4417
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253
+#: templates/js/translated/order.js:2600 templates/js/translated/order.js:4447
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274
+#: templates/js/translated/order.js:2621 templates/js/translated/order.js:4468
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285
+#: templates/js/translated/order.js:2632 templates/js/translated/order.js:4479
msgid "Delete Line"
msgstr ""
-#: templates/js/translated/order.js:2449
+#: templates/js/translated/order.js:2643
msgid "No matching line"
msgstr ""
-#: templates/js/translated/order.js:2560
+#: templates/js/translated/order.js:2754
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:2623
+#: templates/js/translated/order.js:2817
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:2721
+#: templates/js/translated/order.js:2915
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:2724
+#: templates/js/translated/order.js:2918
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:2729
+#: templates/js/translated/order.js:2923
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:2749
+#: templates/js/translated/order.js:2943
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:2766
+#: templates/js/translated/order.js:2960
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:2800
+#: templates/js/translated/order.js:2994
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:2810
+#: templates/js/translated/order.js:3004
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:2834
+#: templates/js/translated/order.js:3028
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:2840
+#: templates/js/translated/order.js:3034
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:2844
+#: templates/js/translated/order.js:3038
msgid "Invoice"
msgstr ""
-#: templates/js/translated/order.js:3013
+#: templates/js/translated/order.js:3207
msgid "Add Shipment"
msgstr ""
-#: templates/js/translated/order.js:3064
+#: templates/js/translated/order.js:3258
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/order.js:3065
+#: templates/js/translated/order.js:3259
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:3273
+#: templates/js/translated/order.js:3467
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:3352
+#: templates/js/translated/order.js:3546
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3369
+#: templates/js/translated/order.js:3563
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:3370
+#: templates/js/translated/order.js:3564
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504
+#: templates/js/translated/order.js:3609 templates/js/translated/order.js:3698
#: templates/js/translated/stock.js:1602
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513
+#: templates/js/translated/order.js:3617 templates/js/translated/order.js:3707
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3827
+#: templates/js/translated/order.js:4021
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3833
+#: templates/js/translated/order.js:4027
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038
+#: templates/js/translated/order.js:4034 templates/js/translated/order.js:4232
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3852
+#: templates/js/translated/order.js:4046
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3855
+#: templates/js/translated/order.js:4049
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3937
+#: templates/js/translated/order.js:4131
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:4046
+#: templates/js/translated/order.js:4240
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:4060
+#: templates/js/translated/order.js:4254
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4296
+#: templates/js/translated/order.js:4490
msgid "No matching lines"
msgstr ""
@@ -9374,173 +9420,177 @@ msgstr ""
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498
+#: templates/js/translated/part.js:584 templates/js/translated/part.js:1515
#: templates/js/translated/table_filters.js:468
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:596
+#: templates/js/translated/part.js:594
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:715
+#: templates/js/translated/part.js:628 templates/js/translated/part.js:713
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:634 templates/js/translated/part.js:719
+#: templates/js/translated/part.js:632 templates/js/translated/part.js:717
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:646
+#: templates/js/translated/part.js:644
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:650
+#: templates/js/translated/part.js:648
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:778
+#: templates/js/translated/part.js:776
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1180
+#: templates/js/translated/part.js:1200
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1204
+#: templates/js/translated/part.js:1224
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573
+#: templates/js/translated/part.js:1291 templates/js/translated/part.js:1602
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1310
-msgid "Not available"
-msgstr ""
-
-#: templates/js/translated/part.js:1461
+#: templates/js/translated/part.js:1482
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1496
+#: templates/js/translated/part.js:1513
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840
-#: templates/js/translated/stock.js:2347
+#: templates/js/translated/part.js:1537
+msgid "Allocated to build orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1541
+msgid "Allocated to sales orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1626 templates/js/translated/part.js:1869
+#: templates/js/translated/stock.js:2343
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1613
+#: templates/js/translated/part.js:1642
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1679
+#: templates/js/translated/part.js:1708
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1684
+#: templates/js/translated/part.js:1713
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:1689
+#: templates/js/translated/part.js:1718
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1702
+#: templates/js/translated/part.js:1731
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366
+#: templates/js/translated/part.js:1888 templates/js/translated/stock.js:2362
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1938
+#: templates/js/translated/part.js:1967
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:1954
+#: templates/js/translated/part.js:1983
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2012
+#: templates/js/translated/part.js:2041
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299
+#: templates/js/translated/part.js:2092 templates/js/translated/stock.js:1299
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300
+#: templates/js/translated/part.js:2093 templates/js/translated/stock.js:1300
#: templates/js/translated/stock.js:1560
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2070
+#: templates/js/translated/part.js:2099
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2092
+#: templates/js/translated/part.js:2121
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2106
+#: templates/js/translated/part.js:2135
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2131
+#: templates/js/translated/part.js:2160
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:2188
+#: templates/js/translated/part.js:2217
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2189
+#: templates/js/translated/part.js:2218
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355
+#: templates/js/translated/part.js:2383 templates/js/translated/part.js:2384
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2357
+#: templates/js/translated/part.js:2386
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2363
+#: templates/js/translated/part.js:2392
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2413
+#: templates/js/translated/part.js:2442
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2419
+#: templates/js/translated/part.js:2448
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2515
+#: templates/js/translated/part.js:2544
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2531
+#: templates/js/translated/part.js:2560
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2576
+#: templates/js/translated/part.js:2605
msgid "Minimum Stock Level"
msgstr ""
-#: templates/js/translated/part.js:2677
+#: templates/js/translated/part.js:2706
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:2696
+#: templates/js/translated/part.js:2725
msgid "Single Price Difference"
msgstr ""
@@ -9778,7 +9828,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:942 users/models.py:216
+#: templates/js/translated/stock.js:942 users/models.py:218
msgid "Add"
msgstr ""
@@ -9854,156 +9904,156 @@ msgstr ""
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1775
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1780
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1787
+#: templates/js/translated/stock.js:1783
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1790
+#: templates/js/translated/stock.js:1786
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1792
+#: templates/js/translated/stock.js:1788
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1794
+#: templates/js/translated/stock.js:1790
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1797
+#: templates/js/translated/stock.js:1793
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1797
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1803
+#: templates/js/translated/stock.js:1799
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1810
+#: templates/js/translated/stock.js:1806
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:1808
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1814
+#: templates/js/translated/stock.js:1810
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1818
+#: templates/js/translated/stock.js:1814
#: templates/js/translated/table_filters.js:196
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1869
+#: templates/js/translated/stock.js:1865
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1948
+#: templates/js/translated/stock.js:1944
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1986
+#: templates/js/translated/stock.js:1982
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2159
+#: templates/js/translated/stock.js:2155
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2173
+#: templates/js/translated/stock.js:2169
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2174
+#: templates/js/translated/stock.js:2170
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2404
+#: templates/js/translated/stock.js:2400
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2493
+#: templates/js/translated/stock.js:2489
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2509
+#: templates/js/translated/stock.js:2505
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2531
+#: templates/js/translated/stock.js:2527
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2550
+#: templates/js/translated/stock.js:2546
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2569
+#: templates/js/translated/stock.js:2565
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2587
+#: templates/js/translated/stock.js:2583
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2610
+#: templates/js/translated/stock.js:2606
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2618
+#: templates/js/translated/stock.js:2614
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2694
+#: templates/js/translated/stock.js:2690
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781
+#: templates/js/translated/stock.js:2741 templates/js/translated/stock.js:2777
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2790
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2815
+#: templates/js/translated/stock.js:2811
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2816
+#: templates/js/translated/stock.js:2812
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2818
+#: templates/js/translated/stock.js:2814
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2819
+#: templates/js/translated/stock.js:2815
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2820
+#: templates/js/translated/stock.js:2816
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2821
+#: templates/js/translated/stock.js:2817
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2834
+#: templates/js/translated/stock.js:2830
msgid "Select part to install"
msgstr ""
@@ -10525,35 +10575,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:203
+#: users/models.py:205
msgid "Permission set"
msgstr ""
-#: users/models.py:211
+#: users/models.py:213
msgid "Group"
msgstr ""
-#: users/models.py:214
+#: users/models.py:216
msgid "View"
msgstr ""
-#: users/models.py:214
+#: users/models.py:216
msgid "Permission to view items"
msgstr ""
-#: users/models.py:216
+#: users/models.py:218
msgid "Permission to add items"
msgstr ""
-#: users/models.py:218
+#: users/models.py:220
msgid "Change"
msgstr ""
-#: users/models.py:218
+#: users/models.py:220
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:222
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po
index 6b5c53c970..eedcd8d149 100644
--- a/InvenTree/locale/fr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/fr/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-08-25 10:08+0000\n"
-"PO-Revision-Date: 2022-08-26 01:54\n"
+"POT-Creation-Date: 2022-09-09 02:44+0000\n"
+"PO-Revision-Date: 2022-09-09 03:56\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Language: fr_FR\n"
@@ -29,9 +29,9 @@ msgstr "Les détails de l'erreur peuvent être trouvées dans le panneau d'admin
msgid "Enter date"
msgstr "Entrer la date"
-#: InvenTree/fields.py:186 build/serializers.py:384
-#: build/templates/build/sidebar.html:21 company/models.py:523
-#: company/templates/company/sidebar.html:25 order/models.py:906
+#: InvenTree/fields.py:183 build/serializers.py:384
+#: build/templates/build/sidebar.html:21 company/models.py:524
+#: company/templates/company/sidebar.html:25 order/models.py:910
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17
#: part/templates/part/part_sidebar.html:59
@@ -40,11 +40,12 @@ msgstr "Entrer la date"
#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823
#: stock/serializers.py:922 stock/serializers.py:1054
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099
-#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210
-#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859
-#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208
-#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1107
+#: templates/js/translated/company.js:1022
+#: templates/js/translated/order.js:2404 templates/js/translated/order.js:2555
+#: templates/js/translated/order.js:3053 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:4402 templates/js/translated/stock.js:1374
+#: templates/js/translated/stock.js:1976
msgid "Notes"
msgstr "Notes"
@@ -210,12 +211,12 @@ msgid "Select file to attach"
msgstr "Sélectionnez un fichier à joindre"
#: InvenTree/models.py:402 company/models.py:124 company/models.py:276
-#: company/models.py:510 order/models.py:84 order/models.py:1245
+#: company/models.py:511 order/models.py:84 order/models.py:1249
#: part/models.py:802 part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
-#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848
-#: templates/js/translated/part.js:1534
+#: templates/js/translated/company.js:691
+#: templates/js/translated/company.js:1011
+#: templates/js/translated/order.js:3042 templates/js/translated/part.js:1563
msgid "Link"
msgstr "Lien"
@@ -233,12 +234,12 @@ msgstr "Commentaire"
msgid "File comment"
msgstr "Commentaire du fichier"
-#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665
-#: common/models.py:1666 common/models.py:1889 common/models.py:1890
-#: common/models.py:2152 common/models.py:2153 part/models.py:2239
-#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257
+#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1669
+#: common/models.py:1670 common/models.py:1893 common/models.py:1894
+#: common/models.py:2156 common/models.py:2157 part/models.py:2247
+#: part/models.py:2267 plugin/models.py:260 plugin/models.py:261
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2641
+#: templates/js/translated/stock.js:2637
msgid "User"
msgstr "Utilisateur"
@@ -275,28 +276,28 @@ msgstr "Erreur lors du renommage du fichier"
msgid "Invalid choice"
msgstr "Choix invalide"
-#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875
+#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1879
#: company/models.py:358 label/models.py:101 part/models.py:746
-#: part/models.py:2417 plugin/models.py:94 report/models.py:152
+#: part/models.py:2425 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin.html:134
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:347
-#: templates/js/translated/company.js:545
-#: templates/js/translated/company.js:758
+#: templates/js/translated/company.js:580
+#: templates/js/translated/company.js:793
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:688 templates/js/translated/part.js:840
-#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392
+#: templates/js/translated/part.js:686 templates/js/translated/part.js:838
+#: templates/js/translated/part.js:1955 templates/js/translated/stock.js:2388
msgid "Name"
msgstr "Nom"
#: InvenTree/models.py:544 build/models.py:174
#: build/templates/build/detail.html:24 company/models.py:282
-#: company/models.py:516 company/templates/company/company_base.html:71
+#: company/models.py:517 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:87 label/models.py:108
-#: order/models.py:82 part/models.py:769 part/models.py:2429
+#: company/templates/company/supplier_part.html:92 label/models.py:108
+#: order/models.py:82 part/models.py:769 part/models.py:2437
#: part/templates/part/category.html:80 part/templates/part/part_base.html:167
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
@@ -305,14 +306,14 @@ msgstr "Nom"
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/InvenTree/settings/settings.html:358
#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846
-#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409
-#: templates/js/translated/company.js:667
-#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637
-#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167
-#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962
-#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743
-#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478
+#: templates/js/translated/build.js:2512 templates/js/translated/company.js:444
+#: templates/js/translated/company.js:702
+#: templates/js/translated/company.js:986 templates/js/translated/order.js:1988
+#: templates/js/translated/order.js:2220 templates/js/translated/order.js:2831
+#: templates/js/translated/part.js:745 templates/js/translated/part.js:1187
+#: templates/js/translated/part.js:1463 templates/js/translated/part.js:1991
+#: templates/js/translated/part.js:2060 templates/js/translated/stock.js:1743
+#: templates/js/translated/stock.js:2420 templates/js/translated/stock.js:2474
msgid "Description"
msgstr "Description"
@@ -325,7 +326,7 @@ msgid "parent"
msgstr "parent"
#: InvenTree/models.py:560 InvenTree/models.py:561
-#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:2426
msgid "Path"
msgstr "Chemin d'accès"
@@ -337,7 +338,7 @@ msgstr "Erreur serveur"
msgid "An error has been logged by the server."
msgstr "Une erreur a été enregistrée par le serveur."
-#: InvenTree/serializers.py:55 part/models.py:2745
+#: InvenTree/serializers.py:55 part/models.py:2753
msgid "Must be a valid number"
msgstr "Doit être un nombre valide"
@@ -522,7 +523,7 @@ msgid "Placed"
msgstr "Placé"
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr "Terminé"
@@ -542,8 +543,8 @@ msgstr "Perdu"
msgid "Returned"
msgstr "Retourné"
-#: InvenTree/status_codes.py:141 order/models.py:1128
-#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785
+#: InvenTree/status_codes.py:141 order/models.py:1132
+#: templates/js/translated/order.js:3630 templates/js/translated/order.js:3979
msgid "Shipped"
msgstr "Expédié"
@@ -627,7 +628,7 @@ msgstr "Séparer de l'élément parent"
msgid "Split child item"
msgstr "Fractionner l'élément enfant"
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080
msgid "Merged stock items"
msgstr "Articles de stock fusionnés"
@@ -717,7 +718,7 @@ msgstr "Informations système"
msgid "About InvenTree"
msgstr "À propos d'InvenTree"
-#: build/api.py:217
+#: build/api.py:219
msgid "Build must be cancelled before it can be deleted"
msgstr "La construction doit être annulée avant de pouvoir être supprimée"
@@ -748,15 +749,15 @@ msgstr "Ordres de Fabrication"
msgid "Build Order Reference"
msgstr "Référence de l' Ordre de Fabrication"
-#: build/models.py:166 order/models.py:240 order/models.py:623
-#: order/models.py:904 part/models.py:2663
+#: build/models.py:166 order/models.py:240 order/models.py:627
+#: order/models.py:908 part/models.py:2671
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853
-#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089
-#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629
-#: templates/js/translated/order.js:4137
+#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2251
+#: templates/js/translated/order.js:2484 templates/js/translated/order.js:3823
+#: templates/js/translated/order.js:4331
msgid "Reference"
msgstr "Référence"
@@ -774,12 +775,12 @@ msgid "BuildOrder to which this build is allocated"
msgstr "BuildOrder associé a cette fabrication"
#: build/models.py:191 build/templates/build/build_base.html:80
-#: build/templates/build/detail.html:29 company/models.py:670
-#: order/models.py:1001 order/models.py:1112 order/models.py:1113
-#: part/models.py:343 part/models.py:2185 part/models.py:2200
-#: part/models.py:2219 part/models.py:2237 part/models.py:2336
-#: part/models.py:2463 part/models.py:2553 part/models.py:2638
-#: part/models.py:2914 part/serializers.py:814
+#: build/templates/build/detail.html:29 company/models.py:679
+#: order/models.py:1005 order/models.py:1116 order/models.py:1117
+#: part/models.py:343 part/models.py:2193 part/models.py:2208
+#: part/models.py:2227 part/models.py:2245 part/models.py:2344
+#: part/models.py:2471 part/models.py:2561 part/models.py:2646
+#: part/models.py:2922 part/serializers.py:814
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -795,18 +796,18 @@ msgstr "BuildOrder associé a cette fabrication"
#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800
#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682
#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517
-#: templates/js/translated/company.js:266
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:608
-#: templates/js/translated/company.js:868 templates/js/translated/order.js:105
-#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493
-#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613
-#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224
-#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586
+#: templates/js/translated/company.js:301
+#: templates/js/translated/company.js:531
+#: templates/js/translated/company.js:643
+#: templates/js/translated/company.js:904 templates/js/translated/order.js:106
+#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1638
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:3185
+#: templates/js/translated/order.js:3581 templates/js/translated/order.js:3807
+#: templates/js/translated/part.js:1172 templates/js/translated/part.js:1244
+#: templates/js/translated/part.js:1441 templates/js/translated/stock.js:586
#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504
-#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833
+#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2500
+#: templates/js/translated/stock.js:2695 templates/js/translated/stock.js:2829
msgid "Part"
msgstr "Pièce"
@@ -823,7 +824,7 @@ msgid "SalesOrder to which this build is allocated"
msgstr "Commande de vente à laquelle cette construction est allouée"
#: build/models.py:213 build/serializers.py:800
-#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979
+#: templates/js/translated/build.js:2114 templates/js/translated/order.js:3173
msgid "Source Location"
msgstr "Emplacement d'origine"
@@ -863,8 +864,8 @@ msgstr "État de la construction"
msgid "Build status code"
msgstr "Code de statut de construction"
-#: build/models.py:251 build/serializers.py:225 order/serializers.py:447
-#: stock/models.py:662 templates/js/translated/order.js:1353
+#: build/models.py:251 build/serializers.py:225 order/serializers.py:464
+#: stock/models.py:662 templates/js/translated/order.js:1496
msgid "Batch Code"
msgstr "Code de lot"
@@ -873,11 +874,11 @@ msgid "Batch code for this build output"
msgstr "Code de lot pour ce build output"
#: build/models.py:258 order/models.py:86 part/models.py:938
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2844
msgid "Creation Date"
msgstr "Date de création"
-#: build/models.py:262 order/models.py:648
+#: build/models.py:262 order/models.py:652
msgid "Target completion date"
msgstr "Date d'achèvement cible"
@@ -904,10 +905,10 @@ msgstr "Utilisateur ayant émis cette commande de construction"
#: build/models.py:289 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:100
-#: order/templates/order/order_base.html:179
+#: order/templates/order/order_base.html:185
#: order/templates/order/sales_order_base.html:183 part/models.py:942
#: report/templates/report/inventree_build_order_base.html:158
-#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860
+#: templates/js/translated/build.js:2574 templates/js/translated/order.js:2022
msgid "Responsible"
msgstr "Responsable"
@@ -917,9 +918,9 @@ msgstr "Utilisateur responsable de cette commande de construction"
#: build/models.py:295 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
-#: company/templates/company/supplier_part.html:153
+#: company/templates/company/supplier_part.html:165
#: part/templates/part/part_base.html:346 stock/models.py:656
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr "Lien Externe"
@@ -957,11 +958,11 @@ msgstr "L'élément de construction doit spécifier une sortie de construction,
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "La quantité allouée ({q}) ne doit pas excéder la quantité disponible ({a})"
-#: build/models.py:1188 order/models.py:1379
+#: build/models.py:1188 order/models.py:1383
msgid "Stock item is over-allocated"
msgstr "L'article de stock est suralloué"
-#: build/models.py:1194 order/models.py:1382
+#: build/models.py:1194 order/models.py:1386
msgid "Allocation quantity must be greater than zero"
msgstr "La quantité allouée doit être supérieure à zéro"
@@ -973,7 +974,7 @@ msgstr "La quantité doit être de 1 pour stock sérialisé"
msgid "Selected stock item not found in BOM"
msgstr "L'article du stock sélectionné n'a pas été trouvé dans la BOM"
-#: build/models.py:1326 stock/templates/stock/item_base.html:172
+#: build/models.py:1326 stock/templates/stock/item_base.html:175
#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496
#: templates/navbar.html:38
msgid "Build"
@@ -983,18 +984,18 @@ msgstr "Assemblage"
msgid "Build to allocate parts"
msgstr "Construction à laquelle allouer des pièces"
-#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015
-#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754
+#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1035
+#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754
#: stock/serializers.py:880 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:197
#: templates/js/translated/build.js:774 templates/js/translated/build.js:779
#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679
-#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992
-#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299
-#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486
+#: templates/js/translated/order.js:107 templates/js/translated/order.js:3186
+#: templates/js/translated/order.js:3488 templates/js/translated/order.js:3493
+#: templates/js/translated/order.js:3588 templates/js/translated/order.js:3680
#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752
-#: templates/js/translated/stock.js:2577
+#: templates/js/translated/stock.js:2573
msgid "Stock Item"
msgstr "Article en stock"
@@ -1004,11 +1005,11 @@ msgstr "Stock d'origine de l'article"
#: build/models.py:1356 build/serializers.py:193
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1697
-#: company/templates/company/supplier_part.html:279 order/models.py:897
-#: order/models.py:1423 order/serializers.py:1155
+#: build/templates/build/detail.html:34 common/models.py:1701
+#: company/templates/company/supplier_part.html:291 order/models.py:901
+#: order/models.py:1427 order/serializers.py:1209
#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40
-#: part/models.py:2654 part/templates/part/detail.html:951
+#: part/models.py:2662 part/templates/part/detail.html:951
#: part/templates/part/detail.html:1037
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -1017,8 +1018,8 @@ msgstr "Stock d'origine de l'article"
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:291 stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
+#: stock/serializers.py:291 stock/templates/stock/item_base.html:290
+#: stock/templates/stock/item_base.html:298
#: templates/email/build_order_completed.html:18
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691
#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458
@@ -1026,16 +1027,16 @@ msgstr "Stock d'origine de l'article"
#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708
#: templates/js/translated/build.js:2129
#: templates/js/translated/model_renderers.js:120
-#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043
-#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313
-#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492
-#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143
-#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176
-#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686
-#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458
+#: templates/js/translated/order.js:123 templates/js/translated/order.js:1137
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:2490
+#: templates/js/translated/order.js:3187 templates/js/translated/order.js:3507
+#: templates/js/translated/order.js:3594 templates/js/translated/order.js:3686
+#: templates/js/translated/order.js:3829 templates/js/translated/order.js:4337
+#: templates/js/translated/part.js:1036 templates/js/translated/part.js:2205
+#: templates/js/translated/part.js:2674 templates/js/translated/part.js:2715
+#: templates/js/translated/part.js:2793 templates/js/translated/stock.js:458
#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782
-#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2707
msgid "Quantity"
msgstr "Quantité"
@@ -1077,7 +1078,7 @@ msgid "Enter quantity for build output"
msgstr "Entrer la quantité désiré pour la fabrication"
#: build/serializers.py:208 build/serializers.py:665 order/models.py:318
-#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545
+#: order/serializers.py:304 order/serializers.py:459 part/serializers.py:545
#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251
#: stock/serializers.py:300
msgid "Quantity must be greater than zero"
@@ -1091,8 +1092,8 @@ msgstr "Quantité entière requise pour les pièces à suivre"
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr "Quantité entière requise, car la facture de matériaux contient des pièces à puce"
-#: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159
-#: stock/serializers.py:309 templates/js/translated/order.js:1364
+#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213
+#: stock/serializers.py:309 templates/js/translated/order.js:1507
#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459
msgid "Serial Numbers"
msgstr "Numéros de série"
@@ -1117,18 +1118,18 @@ msgstr "Le numéro de série suivant existe déjà"
msgid "A list of build outputs must be provided"
msgstr "Une liste d'ordre de production doit être fourni"
-#: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532
+#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552
#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532
#: stock/serializers.py:915 stock/serializers.py:1148
-#: stock/templates/stock/item_base.html:385
+#: stock/templates/stock/item_base.html:388
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786
-#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391
-#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411
-#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500
+#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1534
+#: templates/js/translated/order.js:3500 templates/js/translated/order.js:3605
+#: templates/js/translated/order.js:3613 templates/js/translated/order.js:3694
#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588
#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960
-#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2514
msgid "Location"
msgstr "Emplacement"
@@ -1137,12 +1138,12 @@ msgid "Location for completed build outputs"
msgstr "Emplacement des ordres de production achevés"
#: build/serializers.py:373 build/templates/build/build_base.html:145
-#: build/templates/build/detail.html:62 order/models.py:642
-#: order/serializers.py:465 stock/templates/stock/item_base.html:418
+#: build/templates/build/detail.html:62 order/models.py:646
+#: order/serializers.py:482 stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546
-#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830
-#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829
-#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727
+#: templates/js/translated/order.js:1643 templates/js/translated/order.js:1992
+#: templates/js/translated/order.js:2836 templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:2591 templates/js/translated/stock.js:2723
msgid "Status"
msgstr "État"
@@ -1202,7 +1203,7 @@ msgstr "Accepter les articles de stock qui n'ont pas été complètement alloué
msgid "Required stock has not been fully allocated"
msgstr "Le stock requis n'a pas encore été totalement alloué"
-#: build/serializers.py:527
+#: build/serializers.py:527 order/serializers.py:208 order/serializers.py:1103
msgid "Accept Incomplete"
msgstr "Accepter les incomplèts"
@@ -1218,8 +1219,8 @@ msgstr "La quantité nécessaire n'a pas encore été complétée"
msgid "Build order has incomplete outputs"
msgstr "L'ordre de production a des sorties incomplètes"
-#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772
-#: part/models.py:2906
+#: build/serializers.py:577 build/serializers.py:622 part/models.py:2780
+#: part/models.py:2914
msgid "BOM Item"
msgstr "Article de la nomenclature"
@@ -1239,7 +1240,7 @@ msgstr "bom_item.part doit pointer sur la même pièce que l'ordre de constructi
msgid "Item must be in stock"
msgstr "L'article doit être en stock"
-#: build/serializers.py:709 order/serializers.py:1073
+#: build/serializers.py:709 order/serializers.py:1093
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Quantité disponible ({q}) dépassée"
@@ -1256,7 +1257,7 @@ msgstr "La sortie de la compilation ne peut pas être spécifiée pour l'allocat
msgid "This stock item has already been allocated to this build output"
msgstr "Cet article de stock a déjà été alloué à cette sortie de construction"
-#: build/serializers.py:750 order/serializers.py:1319
+#: build/serializers.py:750 order/serializers.py:1373
msgid "Allocation items must be provided"
msgstr "Les éléments d'allocation doivent être fournis"
@@ -1371,13 +1372,13 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr "Le stock n'a pas été entièrement alloué à cet ordre de construction"
#: build/templates/build/build_base.html:154
-#: build/templates/build/detail.html:131 order/models.py:910
-#: order/templates/order/order_base.html:165
+#: build/templates/build/detail.html:131 order/models.py:914
+#: order/templates/order/order_base.html:171
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:125
-#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847
-#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658
-#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042
+#: templates/js/translated/build.js:2586 templates/js/translated/order.js:2009
+#: templates/js/translated/order.js:2351 templates/js/translated/order.js:2852
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1051
msgid "Target Date"
msgstr "Date Cible"
@@ -1388,7 +1389,7 @@ msgstr "Cette construction était due le %(target)s"
#: build/templates/build/build_base.html:159
#: build/templates/build/build_base.html:204
-#: order/templates/order/order_base.html:101
+#: order/templates/order/order_base.html:107
#: order/templates/order/sales_order_base.html:94
#: templates/js/translated/table_filters.js:320
#: templates/js/translated/table_filters.js:361
@@ -1404,15 +1405,15 @@ msgid "Completed"
msgstr "Terminé"
#: build/templates/build/build_base.html:179
-#: build/templates/build/detail.html:94 order/models.py:1105
-#: order/models.py:1199 order/models.py:1330
+#: build/templates/build/detail.html:94 order/models.py:1109
+#: order/models.py:1203 order/models.py:1334
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:365
+#: stock/templates/stock/item_base.html:368
#: templates/email/overdue_sales_order.html:15
-#: templates/js/translated/order.js:2604
+#: templates/js/translated/order.js:2798
msgid "Sales Order"
msgstr "Commandes"
@@ -1438,8 +1439,8 @@ msgstr "Stock d'origine"
msgid "Stock can be taken from any available location."
msgstr "Le stock peut être pris à partir de n'importe quel endroit disponible."
-#: build/templates/build/detail.html:49 order/models.py:1023
-#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199
+#: build/templates/build/detail.html:49 order/models.py:1027
+#: templates/js/translated/order.js:1644 templates/js/translated/order.js:2393
msgid "Destination"
msgstr "Destination"
@@ -1452,18 +1453,18 @@ msgid "Allocated Parts"
msgstr "Pièces allouées"
#: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:165
+#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1215
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843
-#: templates/js/translated/stock.js:2734
+#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1839
+#: templates/js/translated/stock.js:2730
#: templates/js/translated/table_filters.js:159
#: templates/js/translated/table_filters.js:250
msgid "Batch"
msgstr "Lot"
#: build/templates/build/detail.html:126
-#: order/templates/order/order_base.html:152
+#: order/templates/order/order_base.html:158
#: order/templates/order/sales_order_base.html:158
#: templates/js/translated/build.js:2554
msgid "Created"
@@ -1516,7 +1517,7 @@ msgstr "Commander les pièces requises"
#: build/templates/build/detail.html:187
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:85
-#: part/templates/part/category.html:183 templates/js/translated/order.js:1083
+#: part/templates/part/category.html:183 templates/js/translated/order.js:1177
msgid "Order Parts"
msgstr "Commander des pièces"
@@ -1851,7 +1852,7 @@ msgstr "Copier les templates de paramètres de catégorie"
msgid "Copy category parameter templates when creating a part"
msgstr "Copier les templates de paramètres de la catégorie lors de la création d'une pièce"
-#: common/models.py:951 part/models.py:2465 report/models.py:158
+#: common/models.py:951 part/models.py:2473 report/models.py:158
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:484
msgid "Template"
@@ -1861,7 +1862,7 @@ msgstr "Modèle"
msgid "Parts are templates by default"
msgstr "Les pièces sont des templates par défaut"
-#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446
+#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1454
#: templates/js/translated/table_filters.js:176
#: templates/js/translated/table_filters.js:447
msgid "Assembly"
@@ -2275,349 +2276,349 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1342 common/models.py:1658
+#: common/models.py:1344 common/models.py:1662
msgid "Settings key (must be unique - case insensitive"
msgstr "Clé du paramètre (doit être unique - insensible à la casse)"
-#: common/models.py:1364
+#: common/models.py:1366
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1365
+#: common/models.py:1367
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1371
+#: common/models.py:1373
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1372
+#: common/models.py:1374
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1378
+#: common/models.py:1380
msgid "Show latest parts"
msgstr "Afficher les dernières pièces"
-#: common/models.py:1379
+#: common/models.py:1381
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1385
+#: common/models.py:1387
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1386
+#: common/models.py:1388
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1392
+#: common/models.py:1394
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1393
+#: common/models.py:1395
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1399
+#: common/models.py:1401
msgid "Show recent stock changes"
msgstr "Afficher les dernières modifications du stock"
-#: common/models.py:1400
+#: common/models.py:1402
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1406
+#: common/models.py:1408
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1407
+#: common/models.py:1409
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1413
+#: common/models.py:1415
msgid "Show low stock"
msgstr ""
-#: common/models.py:1414
+#: common/models.py:1416
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1420
+#: common/models.py:1422
msgid "Show depleted stock"
msgstr "Afficher le stock épuisé"
-#: common/models.py:1421
+#: common/models.py:1423
msgid "Show depleted stock items on the homepage"
msgstr "Afficher les stocks épuisés sur la page d'accueil"
-#: common/models.py:1427
+#: common/models.py:1429
msgid "Show needed stock"
msgstr "Afficher le stock nécessaire"
-#: common/models.py:1428
+#: common/models.py:1430
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1434
+#: common/models.py:1436
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1435
+#: common/models.py:1437
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1441
+#: common/models.py:1443
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1442
+#: common/models.py:1444
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1448
+#: common/models.py:1450
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1449
+#: common/models.py:1451
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1455
+#: common/models.py:1457
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1456
+#: common/models.py:1458
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1462
+#: common/models.py:1464
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1463
+#: common/models.py:1465
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1469
+#: common/models.py:1471
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1470
+#: common/models.py:1472
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1476
+#: common/models.py:1478
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1477
+#: common/models.py:1479
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1483
+#: common/models.py:1485
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1484
+#: common/models.py:1486
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1490
+#: common/models.py:1492
msgid "Inline label display"
msgstr ""
-#: common/models.py:1491
+#: common/models.py:1493
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1499
msgid "Inline report display"
msgstr ""
-#: common/models.py:1498
+#: common/models.py:1500
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1506
msgid "Search Parts"
msgstr ""
-#: common/models.py:1505
+#: common/models.py:1507
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1513
msgid "Seach Supplier Parts"
msgstr ""
-#: common/models.py:1512
+#: common/models.py:1514
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1520
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:1519
+#: common/models.py:1521
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:1525
+#: common/models.py:1527
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1526
+#: common/models.py:1528
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1532
+#: common/models.py:1534
msgid "Search Categories"
msgstr ""
-#: common/models.py:1533
+#: common/models.py:1535
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1539
+#: common/models.py:1541
msgid "Search Stock"
msgstr ""
-#: common/models.py:1540
+#: common/models.py:1542
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1546
+#: common/models.py:1548
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1547
+#: common/models.py:1549
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1553
+#: common/models.py:1555
msgid "Search Locations"
msgstr ""
-#: common/models.py:1554
+#: common/models.py:1556
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1560
+#: common/models.py:1562
msgid "Search Companies"
msgstr ""
-#: common/models.py:1561
+#: common/models.py:1563
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1567
+#: common/models.py:1569
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1568
+#: common/models.py:1570
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1574
+#: common/models.py:1576
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1575
+#: common/models.py:1577
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1581
+#: common/models.py:1583
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1582
+#: common/models.py:1584
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1588
+#: common/models.py:1590
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1591
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1595
+#: common/models.py:1597
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1598
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1602
+#: common/models.py:1604
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1605
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1609
+#: common/models.py:1611
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1610
+#: common/models.py:1612
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1616
+#: common/models.py:1618
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1617
+#: common/models.py:1619
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1623
+#: common/models.py:1625
msgid "Date Format"
msgstr ""
-#: common/models.py:1624
+#: common/models.py:1626
msgid "Preferred format for displaying dates"
msgstr "Format préféré pour l'affichage des dates"
-#: common/models.py:1638 part/templates/part/detail.html:41
+#: common/models.py:1640 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1641
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1698
+#: common/models.py:1702
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1705 company/serializers.py:366
-#: company/templates/company/supplier_part.html:284 order/models.py:938
-#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181
+#: common/models.py:1709 company/serializers.py:372
+#: company/templates/company/supplier_part.html:296 order/models.py:942
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:2210
msgid "Price"
msgstr "Prix"
-#: common/models.py:1706
+#: common/models.py:1710
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1866 common/models.py:2044
+#: common/models.py:1870 common/models.py:2048
msgid "Endpoint"
msgstr ""
-#: common/models.py:1867
+#: common/models.py:1871
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1876
+#: common/models.py:1880
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1881 part/models.py:921 plugin/models.py:100
+#: common/models.py:1885 part/models.py:921 plugin/models.py:100
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:104
#: templates/js/translated/table_filters.js:316
@@ -2625,67 +2626,67 @@ msgstr ""
msgid "Active"
msgstr "Actif"
-#: common/models.py:1882
+#: common/models.py:1886
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1896
+#: common/models.py:1900
msgid "Token"
msgstr ""
-#: common/models.py:1897
+#: common/models.py:1901
msgid "Token for access"
msgstr ""
-#: common/models.py:1904
+#: common/models.py:1908
msgid "Secret"
msgstr ""
-#: common/models.py:1905
+#: common/models.py:1909
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2011
+#: common/models.py:2015
msgid "Message ID"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2016
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2020
+#: common/models.py:2024
msgid "Host"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2025
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2032
msgid "Header"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2033
msgid "Header of this message"
msgstr ""
-#: common/models.py:2035
+#: common/models.py:2039
msgid "Body"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2040
msgid "Body of this message"
msgstr ""
-#: common/models.py:2045
+#: common/models.py:2049
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2054
msgid "Worked on"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2055
msgid "Was the work on this message finished?"
msgstr ""
@@ -2747,7 +2748,7 @@ msgstr ""
#: company/models.py:105 company/templates/company/company_base.html:100
#: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:413
+#: templates/js/translated/company.js:448
msgid "Website"
msgstr ""
@@ -2824,7 +2825,7 @@ msgstr "est fabricant"
msgid "Does this company manufacture parts?"
msgstr "Cette entreprise fabrique-t-elle des pièces?"
-#: company/models.py:148 company/serializers.py:372
+#: company/models.py:148 company/serializers.py:378
#: company/templates/company/company_base.html:106 part/serializers.py:153
#: part/serializers.py:184 stock/serializers.py:178
msgid "Currency"
@@ -2834,24 +2835,24 @@ msgstr "Devise"
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:248 company/models.py:481 stock/models.py:598
+#: company/models.py:248 company/models.py:482 stock/models.py:598
#: stock/serializers.py:85 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:542
msgid "Base Part"
msgstr ""
-#: company/models.py:252 company/models.py:485
+#: company/models.py:252 company/models.py:486
msgid "Select part"
msgstr ""
#: company/models.py:263 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:124
-#: stock/templates/stock/item_base.html:207
-#: templates/js/translated/company.js:397
-#: templates/js/translated/company.js:498
-#: templates/js/translated/company.js:633
-#: templates/js/translated/company.js:919 templates/js/translated/part.js:236
+#: company/templates/company/supplier_part.html:129
+#: stock/templates/stock/item_base.html:210
+#: templates/js/translated/company.js:432
+#: templates/js/translated/company.js:533
+#: templates/js/translated/company.js:668
+#: templates/js/translated/company.js:956 templates/js/translated/part.js:236
#: templates/js/translated/table_filters.js:419
msgid "Manufacturer"
msgstr "Fabricant"
@@ -2861,12 +2862,12 @@ msgid "Select manufacturer"
msgstr "Sélectionner un fabricant"
#: company/models.py:270 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:132
-#: templates/js/translated/company.js:269
-#: templates/js/translated/company.js:497
-#: templates/js/translated/company.js:649
-#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077
-#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027
+#: company/templates/company/supplier_part.html:137
+#: templates/js/translated/company.js:304
+#: templates/js/translated/company.js:532
+#: templates/js/translated/company.js:684
+#: templates/js/translated/company.js:975 templates/js/translated/order.js:2239
+#: templates/js/translated/part.js:247 templates/js/translated/part.js:1025
msgid "MPN"
msgstr ""
@@ -2882,10 +2883,10 @@ msgstr ""
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:328 company/models.py:352 company/models.py:504
+#: company/models.py:328 company/models.py:352 company/models.py:505
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:220
msgid "Manufacturer Part"
msgstr ""
@@ -2895,8 +2896,8 @@ msgstr ""
#: company/models.py:365
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2095 templates/js/translated/company.js:546
-#: templates/js/translated/company.js:764 templates/js/translated/part.js:849
+#: stock/models.py:2095 templates/js/translated/company.js:581
+#: templates/js/translated/company.js:799 templates/js/translated/part.js:847
#: templates/js/translated/stock.js:1360
msgid "Value"
msgstr "Valeur"
@@ -2905,10 +2906,10 @@ msgstr "Valeur"
msgid "Parameter value"
msgstr ""
-#: company/models.py:372 part/models.py:888 part/models.py:2425
+#: company/models.py:372 part/models.py:888 part/models.py:2433
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:352
-#: templates/js/translated/company.js:770 templates/js/translated/part.js:855
+#: templates/js/translated/company.js:805 templates/js/translated/part.js:853
msgid "Units"
msgstr ""
@@ -2916,106 +2917,119 @@ msgstr ""
msgid "Parameter units"
msgstr ""
-#: company/models.py:449
+#: company/models.py:450
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:491 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:108 order/models.py:258
-#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:224
+#: company/models.py:492 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:113 order/models.py:258
+#: order/templates/order/order_base.html:121 part/bom.py:237 part/bom.py:265
+#: stock/templates/stock/item_base.html:227
#: templates/email/overdue_purchase_order.html:16
-#: templates/js/translated/company.js:268
-#: templates/js/translated/company.js:401
-#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813
-#: templates/js/translated/part.js:217 templates/js/translated/part.js:995
+#: templates/js/translated/company.js:303
+#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:929 templates/js/translated/order.js:1975
+#: templates/js/translated/part.js:217 templates/js/translated/part.js:993
#: templates/js/translated/table_filters.js:423
msgid "Supplier"
msgstr "Fournisseur"
-#: company/models.py:492 templates/js/translated/part.js:218
+#: company/models.py:493 templates/js/translated/part.js:218
msgid "Select supplier"
msgstr ""
-#: company/models.py:497 company/templates/company/supplier_part.html:118
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267
-#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228
-#: templates/js/translated/part.js:1013
+#: company/models.py:498 company/templates/company/supplier_part.html:123
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:302
+#: templates/js/translated/order.js:2226 templates/js/translated/part.js:228
+#: templates/js/translated/part.js:1011
msgid "SKU"
msgstr ""
-#: company/models.py:498 templates/js/translated/part.js:229
+#: company/models.py:499 templates/js/translated/part.js:229
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:505
+#: company/models.py:506
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:511
+#: company/models.py:512
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:517
+#: company/models.py:518
msgid "Supplier part description"
msgstr ""
-#: company/models.py:522 company/templates/company/supplier_part.html:146
-#: part/models.py:2666 part/templates/part/upload_bom.html:59
+#: company/models.py:523 company/templates/company/supplier_part.html:158
+#: part/models.py:2674 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399
msgid "Note"
msgstr ""
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "base cost"
msgstr "coût de base"
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:528 company/templates/company/supplier_part.html:139
-#: stock/models.py:624 stock/templates/stock/item_base.html:240
-#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976
+#: company/models.py:529 company/templates/company/supplier_part.html:144
+#: stock/models.py:624 stock/templates/stock/item_base.html:243
+#: templates/js/translated/company.js:991 templates/js/translated/stock.js:1972
msgid "Packaging"
msgstr ""
-#: company/models.py:528
+#: company/models.py:529
msgid "Part packaging"
msgstr ""
-#: company/models.py:530 part/models.py:1783
+#: company/models.py:532 company/serializers.py:242
+#: company/templates/company/supplier_part.html:151
+#: templates/js/translated/company.js:996 templates/js/translated/order.js:820
+#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:2270 templates/js/translated/order.js:2287
+#: templates/js/translated/part.js:1043 templates/js/translated/part.js:1095
+msgid "Pack Quantity"
+msgstr ""
+
+#: company/models.py:533
+msgid "Unit quantity supplied in a single pack"
+msgstr ""
+
+#: company/models.py:539 part/models.py:1783
msgid "multiple"
msgstr ""
-#: company/models.py:530
+#: company/models.py:539
msgid "Order multiple"
msgstr "Commande multiple"
-#: company/models.py:538 company/templates/company/supplier_part.html:94
+#: company/models.py:547 company/templates/company/supplier_part.html:99
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823
-#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979
-#: templates/js/translated/part.js:600 templates/js/translated/part.js:603
+#: templates/js/translated/bom.js:915 templates/js/translated/build.js:1823
+#: templates/js/translated/build.js:2686 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:601
#: templates/js/translated/table_filters.js:186
msgid "Available"
msgstr "Disponible"
-#: company/models.py:539
+#: company/models.py:548
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:543
+#: company/models.py:552
msgid "Availability Updated"
msgstr ""
-#: company/models.py:544
+#: company/models.py:553
msgid "Date of last update of availability data"
msgstr ""
-#: company/models.py:672
+#: company/models.py:681
msgid "last updated"
msgstr ""
@@ -3029,12 +3043,12 @@ msgstr ""
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386
+#: templates/InvenTree/search.html:179 templates/js/translated/company.js:421
msgid "Company"
msgstr ""
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:624
+#: templates/js/translated/order.js:689
msgid "Create Purchase Order"
msgstr "Créer une commande d'achat"
@@ -3047,7 +3061,7 @@ msgid "Edit company information"
msgstr ""
#: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:329
+#: templates/js/translated/company.js:364
msgid "Edit Company"
msgstr ""
@@ -3070,13 +3084,13 @@ msgstr "Ajouter une nouvelle image"
msgid "Download image from URL"
msgstr "Télécharger l'image depuis l'URL"
-#: company/templates/company/company_base.html:86 order/models.py:637
+#: company/templates/company/company_base.html:86 order/models.py:641
#: order/templates/order/sales_order_base.html:116 stock/models.py:643
#: stock/models.py:644 stock/serializers.py:809
-#: stock/templates/stock/item_base.html:396
+#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
-#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619
-#: templates/js/translated/stock.js:2559
+#: templates/js/translated/company.js:428 templates/js/translated/order.js:2813
+#: templates/js/translated/stock.js:2555
#: templates/js/translated/table_filters.js:427
msgid "Customer"
msgstr ""
@@ -3211,23 +3225,23 @@ msgid "Manufacturers"
msgstr "Fabricants"
#: company/templates/company/manufacturer_part.html:35
-#: company/templates/company/supplier_part.html:186
+#: company/templates/company/supplier_part.html:198
#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80
msgid "Order part"
msgstr ""
#: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:681
+#: templates/js/translated/company.js:716
msgid "Edit manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:682
+#: templates/js/translated/company.js:717
msgid "Delete manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:65
-#: company/templates/company/supplier_part.html:77
+#: company/templates/company/supplier_part.html:82
msgid "Internal Part"
msgstr "Pièces Internes"
@@ -3250,8 +3264,8 @@ msgstr "Supprimer les pièces du fournisseur"
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:371 part/templates/part/detail.html:401
-#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34
-#: users/models.py:220
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:34
+#: users/models.py:222
msgid "Delete"
msgstr "Supprimer"
@@ -3296,9 +3310,9 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:607
-#: stock/templates/stock/item_base.html:233
-#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041
-#: templates/js/translated/stock.js:1933
+#: stock/templates/stock/item_base.html:236
+#: templates/js/translated/company.js:945 templates/js/translated/order.js:1135
+#: templates/js/translated/stock.js:1929
msgid "Supplier Part"
msgstr ""
@@ -3308,7 +3322,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:40
#: company/templates/company/supplier_part.html:41
-#: company/templates/company/supplier_part.html:187
+#: company/templates/company/supplier_part.html:199
#: part/templates/part/detail.html:88
msgid "Order Part"
msgstr "Commander un composant"
@@ -3320,81 +3334,87 @@ msgstr ""
#: company/templates/company/supplier_part.html:48
#: company/templates/company/supplier_part.html:49
-#: templates/js/translated/company.js:212
+#: templates/js/translated/company.js:247
msgid "Edit Supplier Part"
msgstr ""
#: company/templates/company/supplier_part.html:53
+#: company/templates/company/supplier_part.html:54
+#: templates/js/translated/company.js:222
+msgid "Duplicate Supplier Part"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:58
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:54
+#: company/templates/company/supplier_part.html:59
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:112
+#: company/templates/company/supplier_part.html:117
msgid "No supplier information available"
msgstr ""
-#: company/templates/company/supplier_part.html:165
+#: company/templates/company/supplier_part.html:177
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr ""
-#: company/templates/company/supplier_part.html:168
+#: company/templates/company/supplier_part.html:180
#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181
msgid "Create new stock item"
msgstr ""
-#: company/templates/company/supplier_part.html:169
+#: company/templates/company/supplier_part.html:181
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182
#: templates/js/translated/stock.js:435
msgid "New Stock Item"
msgstr ""
-#: company/templates/company/supplier_part.html:182
+#: company/templates/company/supplier_part.html:194
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr ""
-#: company/templates/company/supplier_part.html:207
+#: company/templates/company/supplier_part.html:219
#: part/templates/part/prices.html:10
msgid "Pricing Information"
msgstr "Information sur les prix"
-#: company/templates/company/supplier_part.html:212
-#: company/templates/company/supplier_part.html:326
-#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253
+#: company/templates/company/supplier_part.html:224
+#: company/templates/company/supplier_part.html:338
+#: part/templates/part/prices.html:276 templates/js/translated/part.js:2282
msgid "Add Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:250
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:252
-#: templates/js/translated/part.js:2263
+#: company/templates/company/supplier_part.html:264
+#: templates/js/translated/part.js:2292
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:266
-#: templates/js/translated/part.js:2277
+#: company/templates/company/supplier_part.html:278
+#: templates/js/translated/part.js:2306
msgid "Edit Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:291
+#: company/templates/company/supplier_part.html:303
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part.html:292
+#: company/templates/company/supplier_part.html:304
msgid "Delete price break"
msgstr ""
-#: company/templates/company/supplier_part.html:301
+#: company/templates/company/supplier_part.html:313
msgid "Last updated"
msgstr ""
-#: company/templates/company/supplier_part.html:382
+#: company/templates/company/supplier_part.html:394
msgid "Update Part Availability"
msgstr ""
@@ -3404,8 +3424,8 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313
-#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959
+#: templates/js/translated/part.js:749 templates/js/translated/part.js:1334
+#: templates/js/translated/part.js:1495 templates/js/translated/stock.js:959
#: templates/js/translated/stock.js:1754 templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -3432,7 +3452,7 @@ msgstr "Tarif"
#: stock/templates/stock/location.html:178
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2436 users/models.py:40
+#: templates/js/translated/stock.js:2432 users/models.py:40
msgid "Stock Items"
msgstr "Éléments en stock"
@@ -3534,7 +3554,7 @@ msgstr ""
msgid "Order description"
msgstr "Description de la commande"
-#: order/models.py:84 order/models.py:1246
+#: order/models.py:84 order/models.py:1250
msgid "Link to external page"
msgstr "Lien vers une page externe"
@@ -3550,11 +3570,11 @@ msgstr ""
msgid "Order notes"
msgstr "Notes de commande"
-#: order/models.py:241 order/models.py:624
+#: order/models.py:241 order/models.py:628
msgid "Order reference"
msgstr ""
-#: order/models.py:249 order/models.py:642
+#: order/models.py:249 order/models.py:646
msgid "Purchase order status"
msgstr ""
@@ -3562,8 +3582,8 @@ msgstr ""
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:262 order/templates/order/order_base.html:127
-#: templates/js/translated/order.js:1822
+#: order/models.py:262 order/templates/order/order_base.html:133
+#: templates/js/translated/order.js:1984
msgid "Supplier Reference"
msgstr ""
@@ -3603,245 +3623,245 @@ msgstr ""
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:638
+#: order/models.py:642
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer Reference "
msgstr ""
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:649
+#: order/models.py:653
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:652 order/models.py:1204
-#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828
+#: order/models.py:656 order/models.py:1208
+#: templates/js/translated/order.js:2860 templates/js/translated/order.js:3022
msgid "Shipment Date"
msgstr "Nom de l’expédition"
-#: order/models.py:659
+#: order/models.py:663
msgid "shipped by"
msgstr "expédié par"
-#: order/models.py:714
+#: order/models.py:718
msgid "Order cannot be completed as no parts have been assigned"
msgstr "La commande ne peut pas être terminée car aucune pièce n'a été assignée"
-#: order/models.py:718
+#: order/models.py:722
msgid "Only a pending order can be marked as complete"
msgstr "Seule une commande en attente peut être marquée comme terminée"
-#: order/models.py:721
+#: order/models.py:725 templates/js/translated/order.js:419
msgid "Order cannot be completed as there are incomplete shipments"
msgstr "La commande ne peut pas être terminée car il y a des envois incomplets"
-#: order/models.py:724
+#: order/models.py:728
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:898
+#: order/models.py:902
msgid "Item quantity"
msgstr "Nombre d'élement"
-#: order/models.py:904
+#: order/models.py:908
msgid "Line item reference"
msgstr ""
-#: order/models.py:906
+#: order/models.py:910
msgid "Line item notes"
msgstr ""
-#: order/models.py:911
+#: order/models.py:915
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:929
+#: order/models.py:933
msgid "Context"
msgstr "Contexte"
-#: order/models.py:930
+#: order/models.py:934
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:939
+#: order/models.py:943
msgid "Unit price"
msgstr ""
-#: order/models.py:969
+#: order/models.py:973
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:977
+#: order/models.py:981
msgid "deleted"
msgstr ""
-#: order/models.py:983 order/models.py:1063 order/models.py:1104
-#: order/models.py:1198 order/models.py:1330
-#: templates/js/translated/order.js:3284
+#: order/models.py:987 order/models.py:1067 order/models.py:1108
+#: order/models.py:1202 order/models.py:1334
+#: templates/js/translated/order.js:3478
msgid "Order"
msgstr "Commande"
-#: order/models.py:984 order/models.py:1063
+#: order/models.py:988 order/models.py:1067
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:179
+#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
-#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042
-#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972
-#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540
+#: templates/js/translated/order.js:619 templates/js/translated/order.js:1136
+#: templates/js/translated/order.js:1959 templates/js/translated/part.js:970
+#: templates/js/translated/stock.js:1909 templates/js/translated/stock.js:2536
msgid "Purchase Order"
msgstr "Commande d’achat"
-#: order/models.py:1002
+#: order/models.py:1006
msgid "Supplier part"
msgstr "Pièce fournisseur"
-#: order/models.py:1009 order/templates/order/order_base.html:172
-#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105
+#: order/models.py:1013 order/templates/order/order_base.html:178
+#: templates/js/translated/order.js:1641 templates/js/translated/order.js:2373
+#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1125
#: templates/js/translated/table_filters.js:338
msgid "Received"
msgstr "Reçu"
-#: order/models.py:1010
+#: order/models.py:1014
msgid "Number of items received"
msgstr "Nombre d'éléments reçus"
-#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734
-#: stock/serializers.py:169 stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1964
+#: order/models.py:1021 part/templates/part/prices.html:181 stock/models.py:734
+#: stock/serializers.py:169 stock/templates/stock/item_base.html:189
+#: templates/js/translated/stock.js:1960
msgid "Purchase Price"
msgstr "Prix d'achat"
-#: order/models.py:1018
+#: order/models.py:1022
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1026
+#: order/models.py:1030
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1092
+#: order/models.py:1096
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1097
+#: order/models.py:1101
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1123 part/templates/part/part_pricing.html:115
+#: order/models.py:1127 part/templates/part/part_pricing.html:115
#: part/templates/part/prices.html:121 part/templates/part/prices.html:290
msgid "Sale Price"
msgstr "Prix de vente"
-#: order/models.py:1124
+#: order/models.py:1128
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1129
+#: order/models.py:1133
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1205
+#: order/models.py:1209
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1212
+#: order/models.py:1216
msgid "Checked By"
msgstr ""
-#: order/models.py:1213
+#: order/models.py:1217
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1220 order/models.py:1405 order/serializers.py:1170
-#: order/serializers.py:1294 templates/js/translated/model_renderers.js:314
+#: order/models.py:1224 order/models.py:1409 order/serializers.py:1224
+#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314
msgid "Shipment"
msgstr "Envoi"
-#: order/models.py:1221
+#: order/models.py:1225
msgid "Shipment number"
msgstr ""
-#: order/models.py:1225
+#: order/models.py:1229
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1231
+#: order/models.py:1235
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1232
+#: order/models.py:1236
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1239
+#: order/models.py:1243
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1240
+#: order/models.py:1244
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1258
+#: order/models.py:1262
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1261
+#: order/models.py:1265
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1364 order/models.py:1366
+#: order/models.py:1368 order/models.py:1370
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1370
+#: order/models.py:1374
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1372
+#: order/models.py:1376
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1375
+#: order/models.py:1379
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1385 order/serializers.py:1066
+#: order/models.py:1389 order/serializers.py:1086
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1388
+#: order/models.py:1392
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1389
+#: order/models.py:1393
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1397
+#: order/models.py:1401
msgid "Line"
msgstr "Ligne"
-#: order/models.py:1406
+#: order/models.py:1410
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1419 templates/js/translated/notification.js:55
+#: order/models.py:1423 templates/js/translated/notification.js:55
msgid "Item"
msgstr "Article"
-#: order/models.py:1420
+#: order/models.py:1424
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1423
+#: order/models.py:1427
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3853,111 +3873,119 @@ msgstr "Devise *"
msgid "Order cannot be cancelled"
msgstr "La commande ne peut pas être annulée"
-#: order/serializers.py:294
+#: order/serializers.py:209 order/serializers.py:1104
+msgid "Allow order to be closed with incomplete line items"
+msgstr ""
+
+#: order/serializers.py:220 order/serializers.py:1115
+msgid "Order has incomplete line items"
+msgstr ""
+
+#: order/serializers.py:311
msgid "Order is not open"
msgstr "La commande n'est pas ouverte"
-#: order/serializers.py:318
+#: order/serializers.py:335
msgid "Purchase price currency"
msgstr "Devise du prix d'achat"
-#: order/serializers.py:337
+#: order/serializers.py:354
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:342
+#: order/serializers.py:359
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:348
+#: order/serializers.py:365
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:349
+#: order/serializers.py:366
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:413 order/serializers.py:1138
+#: order/serializers.py:430 order/serializers.py:1192
msgid "Line Item"
msgstr ""
-#: order/serializers.py:419
+#: order/serializers.py:436
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:429 order/serializers.py:533
+#: order/serializers.py:446 order/serializers.py:553
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:448 templates/js/translated/order.js:1354
+#: order/serializers.py:465 templates/js/translated/order.js:1497
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:456 templates/js/translated/order.js:1365
+#: order/serializers.py:473 templates/js/translated/order.js:1508
msgid "Enter serial numbers for incoming stock items"
msgstr "Entrez les numéros de série pour les articles de stock entrants"
-#: order/serializers.py:469
+#: order/serializers.py:486
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:470
+#: order/serializers.py:487
msgid "Unique identifier field"
msgstr "Champ d'identifiant unique"
-#: order/serializers.py:484
+#: order/serializers.py:501
msgid "Barcode is already in use"
msgstr "Le code-barres est déjà utilisé"
-#: order/serializers.py:507
+#: order/serializers.py:527
msgid "An integer quantity must be provided for trackable parts"
msgstr "Une quantité entière doit être fournie pour les pièces tracables"
-#: order/serializers.py:549
+#: order/serializers.py:569
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:566
+#: order/serializers.py:586
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:577
+#: order/serializers.py:597
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:883
+#: order/serializers.py:903
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:964
+#: order/serializers.py:984
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1027 order/serializers.py:1147
+#: order/serializers.py:1047 order/serializers.py:1201
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1049
+#: order/serializers.py:1069
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1160
+#: order/serializers.py:1214
msgid "Enter serial numbers to allocate"
msgstr "Entrez les numéros de série à allouer"
-#: order/serializers.py:1182 order/serializers.py:1302
+#: order/serializers.py:1236 order/serializers.py:1356
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1185 order/serializers.py:1305
+#: order/serializers.py:1239 order/serializers.py:1359
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1235
+#: order/serializers.py:1289
msgid "No match found for the following serial numbers"
msgstr "Aucune correspondance trouvée pour les numéros de série suivants"
-#: order/serializers.py:1245
+#: order/serializers.py:1299
msgid "The following serial numbers are already allocated"
msgstr "Les numéros de série suivants sont déjà alloués"
@@ -3993,83 +4021,83 @@ msgstr ""
msgid "Order actions"
msgstr ""
-#: order/templates/order/order_base.html:45
+#: order/templates/order/order_base.html:46
#: order/templates/order/sales_order_base.html:58
msgid "Edit order"
msgstr "Modifier la commande"
-#: order/templates/order/order_base.html:47
+#: order/templates/order/order_base.html:50
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr "Annuler la commande"
-#: order/templates/order/order_base.html:50
+#: order/templates/order/order_base.html:55
msgid "Duplicate order"
msgstr ""
-#: order/templates/order/order_base.html:55
+#: order/templates/order/order_base.html:61
msgid "Place order"
msgstr "Passer la commande"
-#: order/templates/order/order_base.html:59
+#: order/templates/order/order_base.html:65
msgid "Receive items"
msgstr "Recevoir objet"
-#: order/templates/order/order_base.html:61
+#: order/templates/order/order_base.html:67
#: order/templates/order/purchase_order_detail.html:30
msgid "Receive Items"
msgstr "Réception d'articles"
-#: order/templates/order/order_base.html:63
+#: order/templates/order/order_base.html:69
msgid "Mark order as complete"
msgstr "Marquer la commande comme complète"
-#: order/templates/order/order_base.html:65
+#: order/templates/order/order_base.html:71
#: order/templates/order/sales_order_base.html:68
msgid "Complete Order"
msgstr "Finaliser la commande"
-#: order/templates/order/order_base.html:87
+#: order/templates/order/order_base.html:93
#: order/templates/order/sales_order_base.html:80
msgid "Order Reference"
msgstr "Référence de commande"
-#: order/templates/order/order_base.html:92
+#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:85
msgid "Order Description"
msgstr "Description de la commande"
-#: order/templates/order/order_base.html:97
+#: order/templates/order/order_base.html:103
#: order/templates/order/sales_order_base.html:90
msgid "Order Status"
msgstr "Statut de la commande"
-#: order/templates/order/order_base.html:120
+#: order/templates/order/order_base.html:126
msgid "No suppplier information available"
msgstr ""
-#: order/templates/order/order_base.html:133
+#: order/templates/order/order_base.html:139
#: order/templates/order/sales_order_base.html:129
msgid "Completed Line Items"
msgstr ""
-#: order/templates/order/order_base.html:139
+#: order/templates/order/order_base.html:145
#: order/templates/order/sales_order_base.html:135
#: order/templates/order/sales_order_base.html:145
msgid "Incomplete"
msgstr "Incomplet"
-#: order/templates/order/order_base.html:158
+#: order/templates/order/order_base.html:164
#: report/templates/report/inventree_build_order_base.html:121
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:186
+#: order/templates/order/order_base.html:192
#: order/templates/order/sales_order_base.html:190
msgid "Total cost"
msgstr ""
-#: order/templates/order/order_base.html:190
+#: order/templates/order/order_base.html:196
#: order/templates/order/sales_order_base.html:194
msgid "Total cost could not be calculated"
msgstr ""
@@ -4102,8 +4130,8 @@ msgstr ""
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463
#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015
-#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443
-#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625
+#: templates/js/translated/order.js:1084 templates/js/translated/order.js:1586
+#: templates/js/translated/order.js:3097 templates/js/translated/stock.js:625
#: templates/js/translated/stock.js:793
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
@@ -4139,7 +4167,7 @@ msgstr "Articles de la commande d'achat"
#: order/templates/order/purchase_order_detail.html:26
#: order/templates/order/sales_order_detail.html:22
#: order/templates/order/sales_order_detail.html:255
-#: templates/js/translated/order.js:663
+#: templates/js/translated/order.js:728
msgid "Add Line Item"
msgstr ""
@@ -4167,7 +4195,7 @@ msgstr ""
msgid "Order Notes"
msgstr "Notes de commande"
-#: order/templates/order/purchase_order_detail.html:228
+#: order/templates/order/purchase_order_detail.html:232
msgid "Add Order Line"
msgstr ""
@@ -4185,12 +4213,12 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:231
+#: templates/js/translated/order.js:232
msgid "Complete Shipments"
msgstr ""
#: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:258
+#: templates/js/translated/order.js:397
msgid "Complete Sales Order"
msgstr ""
@@ -4199,7 +4227,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2632
+#: templates/js/translated/order.js:2826
msgid "Customer Reference"
msgstr ""
@@ -4223,7 +4251,7 @@ msgid "Pending Shipments"
msgstr "Expéditions en attente"
#: order/templates/order/sales_order_detail.html:72
-#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1116
#: templates/js/translated/build.js:1923
msgid "Actions"
msgstr ""
@@ -4308,14 +4336,14 @@ msgid "Total Stock"
msgstr ""
#: part/bom.py:129 part/templates/part/part_base.html:189
-#: templates/js/translated/order.js:3724
+#: templates/js/translated/order.js:3918
msgid "Available Stock"
msgstr ""
#: part/bom.py:130 part/templates/part/part_base.html:207
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853
-#: templates/js/translated/part.js:590 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503
+#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1853
+#: templates/js/translated/part.js:588 templates/js/translated/part.js:608
+#: templates/js/translated/part.js:1337 templates/js/translated/part.js:1520
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr "En Commande"
@@ -4344,7 +4372,7 @@ msgstr ""
msgid "Icon (optional)"
msgstr ""
-#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16
+#: part/models.py:122 part/models.py:2516 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Catégorie de composant"
@@ -4361,7 +4389,7 @@ msgstr "Catégories de composants"
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146
+#: templates/js/translated/part.js:2004 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr "Composantes"
@@ -4391,7 +4419,7 @@ msgstr "Le numéro de série le plus récent est"
msgid "Duplicate IPN not allowed in part settings"
msgstr "IPN dupliqué non autorisé dans les paramètres de la pièce"
-#: part/models.py:745 part/models.py:2562
+#: part/models.py:745 part/models.py:2570
msgid "Part name"
msgstr ""
@@ -4424,11 +4452,11 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:783 part/models.py:2257 part/models.py:2507
+#: part/models.py:783 part/models.py:2265 part/models.py:2515
#: part/templates/part/part_base.html:257
#: templates/InvenTree/settings/settings.html:232
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688
+#: templates/js/translated/part.js:1477 templates/js/translated/part.js:1717
msgid "Category"
msgstr "Catégorie"
@@ -4437,7 +4465,7 @@ msgid "Part category"
msgstr "Catégorie de la pièce"
#: part/models.py:789 part/templates/part/part_base.html:266
-#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:1430
#: templates/js/translated/stock.js:1726
msgid "IPN"
msgstr ""
@@ -4451,7 +4479,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:797 part/templates/part/part_base.html:273
-#: report/models.py:171 templates/js/translated/part.js:743
+#: report/models.py:171 templates/js/translated/part.js:741
msgid "Revision"
msgstr "Révision"
@@ -4543,245 +4571,245 @@ msgstr ""
msgid "Sell multiple"
msgstr "Ventes multiples"
-#: part/models.py:2304
+#: part/models.py:2312
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2321
+#: part/models.py:2329
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2341 templates/js/translated/part.js:2026
+#: part/models.py:2349 templates/js/translated/part.js:2055
#: templates/js/translated/stock.js:1340
msgid "Test Name"
msgstr "Nom de test"
-#: part/models.py:2342
+#: part/models.py:2350
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2347
+#: part/models.py:2355
msgid "Test Description"
msgstr ""
-#: part/models.py:2348
+#: part/models.py:2356
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2353 templates/js/translated/part.js:2035
+#: part/models.py:2361 templates/js/translated/part.js:2064
#: templates/js/translated/table_filters.js:302
msgid "Required"
msgstr "Requis"
-#: part/models.py:2354
+#: part/models.py:2362
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2359 templates/js/translated/part.js:2043
+#: part/models.py:2367 templates/js/translated/part.js:2072
msgid "Requires Value"
msgstr ""
-#: part/models.py:2360
+#: part/models.py:2368
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2365 templates/js/translated/part.js:2050
+#: part/models.py:2373 templates/js/translated/part.js:2079
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2366
+#: part/models.py:2374
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2374
+#: part/models.py:2382
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2410
+#: part/models.py:2418
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2418
+#: part/models.py:2426
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2433
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2430
+#: part/models.py:2438
msgid "Parameter description"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2471
msgid "Parent Part"
msgstr ""
-#: part/models.py:2465 part/models.py:2513 part/models.py:2514
+#: part/models.py:2473 part/models.py:2521 part/models.py:2522
#: templates/InvenTree/settings/settings.html:227
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Data"
msgstr "Données"
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2518 templates/InvenTree/settings/settings.html:236
+#: part/models.py:2526 templates/InvenTree/settings/settings.html:236
msgid "Default Value"
msgstr ""
-#: part/models.py:2519
+#: part/models.py:2527
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2554
+#: part/models.py:2562
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2557 templates/js/translated/model_renderers.js:212
+#: part/models.py:2565 templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr "ID de composant"
-#: part/models.py:2558
+#: part/models.py:2566
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2561
+#: part/models.py:2569
msgid "Part Name"
msgstr ""
-#: part/models.py:2565
+#: part/models.py:2573
msgid "Part IPN"
msgstr ""
-#: part/models.py:2566
+#: part/models.py:2574
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2569
+#: part/models.py:2577
msgid "Level"
msgstr ""
-#: part/models.py:2570
+#: part/models.py:2578
msgid "BOM level"
msgstr ""
-#: part/models.py:2639
+#: part/models.py:2647
msgid "Select parent part"
msgstr ""
-#: part/models.py:2647
+#: part/models.py:2655
msgid "Sub part"
msgstr ""
-#: part/models.py:2648
+#: part/models.py:2656
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2654
+#: part/models.py:2662
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2656 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997
+#: part/models.py:2664 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:876 templates/js/translated/bom.js:1005
#: templates/js/translated/table_filters.js:100
msgid "Optional"
msgstr ""
-#: part/models.py:2656
+#: part/models.py:2664
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2659 part/templates/part/upload_bom.html:55
+#: part/models.py:2667 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr "Surplus"
-#: part/models.py:2660
+#: part/models.py:2668
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2671
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2666
+#: part/models.py:2674
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "Checksum"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2672 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1014
+#: part/models.py:2680 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:1022
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:96
msgid "Inherited"
msgstr ""
-#: part/models.py:2673
+#: part/models.py:2681
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2678 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1006
+#: part/models.py:2686 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:1014
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2679
+#: part/models.py:2687
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2757 stock/models.py:468
+#: part/models.py:2765 stock/models.py:468
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2766 part/models.py:2768
+#: part/models.py:2774 part/models.py:2776
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2873
+#: part/models.py:2881
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2902
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2915
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2923
msgid "Substitute part"
msgstr ""
-#: part/models.py:2930
+#: part/models.py:2938
msgid "Part 1"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Part 2"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2960
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:2956
+#: part/models.py:2964
msgid "Duplicate relationship already exists"
msgstr ""
@@ -5309,10 +5337,10 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:624
-#: templates/js/translated/company.js:884
+#: templates/js/translated/company.js:659
+#: templates/js/translated/company.js:920
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:654 templates/js/translated/part.js:731
+#: templates/js/translated/part.js:652 templates/js/translated/part.js:729
msgid "Inactive"
msgstr ""
@@ -5327,28 +5355,28 @@ msgid "This part is a variant of %(link)s"
msgstr ""
#: part/templates/part/part_base.html:194
-#: templates/js/translated/company.js:974
+#: templates/js/translated/company.js:1027
#: templates/js/translated/table_filters.js:201
msgid "In Stock"
msgstr ""
#: part/templates/part/part_base.html:215
-#: stock/templates/stock/item_base.html:379
+#: stock/templates/stock/item_base.html:382
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:224
-#: stock/templates/stock/item_base.html:372
+#: stock/templates/stock/item_base.html:375
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1043
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320
-#: templates/js/translated/part.js:1510
+#: part/templates/part/part_base.html:238 templates/js/translated/part.js:591
+#: templates/js/translated/part.js:611 templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1527
msgid "Building"
msgstr ""
@@ -5361,7 +5389,7 @@ msgid "Latest Serial Number"
msgstr "Dernier numéro de série"
#: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:328
+#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr "Rechercher un numéro de série"
@@ -5400,7 +5428,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:989
+#: templates/js/translated/bom.js:997
msgid "No supplier pricing available"
msgstr ""
@@ -5439,7 +5467,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:53
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468
+#: templates/js/translated/order.js:2001 templates/js/translated/stock.js:2464
msgid "Date"
msgstr ""
@@ -5495,7 +5523,7 @@ msgstr "Afficher le prix de vente"
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983
+#: part/templates/part/prices.html:160 templates/js/translated/bom.js:991
msgid "Supplier Cost"
msgstr ""
@@ -5533,8 +5561,8 @@ msgstr ""
msgid "No sale pice history available for this part."
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616
-#: templates/js/translated/part.js:1308
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:614
+#: templates/js/translated/part.js:1329 templates/js/translated/part.js:1331
msgid "No Stock"
msgstr ""
@@ -5735,19 +5763,19 @@ msgstr ""
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:186
+#: plugin/models.py:188
msgid "Plugin"
msgstr ""
-#: plugin/models.py:249
+#: plugin/models.py:253
msgid "Method"
msgstr ""
-#: plugin/plugin.py:251
+#: plugin/plugin.py:252
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:263
+#: plugin/plugin.py:264
msgid "No date found"
msgstr ""
@@ -5925,12 +5953,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:648 stock/templates/stock/item_base.html:317
+#: stock/models.py:648 stock/templates/stock/item_base.html:320
#: templates/js/translated/build.js:456 templates/js/translated/build.js:608
#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706
#: templates/js/translated/model_renderers.js:118
-#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403
-#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490
+#: templates/js/translated/order.js:121 templates/js/translated/order.js:3597
+#: templates/js/translated/order.js:3684 templates/js/translated/stock.js:490
msgid "Serial Number"
msgstr "Numéro de série"
@@ -5963,7 +5991,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780
-#: templates/js/translated/stock.js:2717
+#: templates/js/translated/stock.js:2713
msgid "Serial"
msgstr ""
@@ -5980,7 +6008,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
#: stock/models.py:89 stock/models.py:739
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:250
msgid "Owner"
msgstr "Propriétaire"
@@ -6046,7 +6074,7 @@ msgstr ""
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:631 stock/templates/stock/item_base.html:356
+#: stock/models.py:631 stock/templates/stock/item_base.html:359
msgid "Installed In"
msgstr ""
@@ -6086,8 +6114,8 @@ msgstr ""
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:706 stock/templates/stock/item_base.html:424
-#: templates/js/translated/stock.js:1883
+#: stock/models.py:706 stock/templates/stock/item_base.html:427
+#: templates/js/translated/stock.js:1879
msgid "Expiry Date"
msgstr ""
@@ -6379,7 +6407,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2857
msgid "Install Stock Item"
msgstr ""
@@ -6479,134 +6507,135 @@ msgstr ""
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:158
+#: stock/templates/stock/item_base.html:161
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:193
+#: stock/templates/stock/item_base.html:196
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:214
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:254
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/location.html:132
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:268
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:266
+#: stock/templates/stock/item_base.html:269
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:279
+#: stock/templates/stock/item_base.html:282
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:290
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:298
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:301
+#: stock/templates/stock/item_base.html:304
msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
msgstr "Cet article de stock est sérialisé - il a un numéro de série unique et la quantité ne peut pas être ajustée."
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "previous page"
msgstr "page précédente"
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "Navigate to previous serial number"
msgstr "Accéder au numéro de série précédent"
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "Navigate to next serial number"
msgstr "Accéder au numéro de série suivant"
-#: stock/templates/stock/item_base.html:345
+#: stock/templates/stock/item_base.html:348
msgid "Available Quantity"
msgstr ""
-#: stock/templates/stock/item_base.html:389
+#: stock/templates/stock/item_base.html:392
#: templates/js/translated/build.js:1729
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:404
+#: stock/templates/stock/item_base.html:407
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#: templates/js/translated/table_filters.js:269
msgid "Expired"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:275
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:437
-#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899
+#: stock/templates/stock/item_base.html:440
+#: templates/js/translated/company.js:1038
+#: templates/js/translated/stock.js:1895
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:442
+#: stock/templates/stock/item_base.html:445
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:516
+#: stock/templates/stock/item_base.html:519
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:589
+#: stock/templates/stock/item_base.html:592
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:592
+#: stock/templates/stock/item_base.html:595
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:593
+#: stock/templates/stock/item_base.html:596
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:601
+#: stock/templates/stock/item_base.html:604
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:629
+#: stock/templates/stock/item_base.html:632
msgid "Return to Stock"
msgstr ""
@@ -6739,11 +6768,11 @@ msgstr ""
msgid "Refer to the error log in the admin interface for further details"
msgstr ""
-#: templates/503.html:11 templates/503.html:36
+#: templates/503.html:11 templates/503.html:34
msgid "Site is in Maintenance"
msgstr ""
-#: templates/503.html:42
+#: templates/503.html:40
msgid "The site is currently in maintenance and should be up again soon!"
msgstr ""
@@ -7509,7 +7538,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:644
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "Confirmer"
@@ -7728,7 +7757,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1481
+#: templates/js/translated/bom.js:1489
msgid "Required Quantity"
msgstr "Quantité requise"
@@ -7742,7 +7771,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2522
+#: templates/js/translated/part.js:2551
msgid "Minimum Quantity"
msgstr ""
@@ -7947,7 +7976,7 @@ msgstr "Données de la rangée"
#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620
#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601
#: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003
-#: templates/js/translated/order.js:1085 templates/modals.html:15
+#: templates/js/translated/order.js:1179 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -7957,12 +7986,12 @@ msgid "Download BOM Template"
msgstr "Télécharger le template de la BOM"
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145
+#: templates/js/translated/order.js:960 templates/js/translated/tables.js:145
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:867
+#: templates/js/translated/order.js:961
msgid "Select file format"
msgstr "Sélectionner un format de fichier"
@@ -8058,73 +8087,73 @@ msgstr ""
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857
-#: templates/js/translated/order.js:3738
+#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1857
+#: templates/js/translated/order.js:3932
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861
+#: templates/js/translated/bom.js:940 templates/js/translated/build.js:1861
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516
+#: templates/js/translated/bom.js:942 templates/js/translated/build.js:1863
+#: templates/js/translated/part.js:761 templates/js/translated/part.js:1533
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865
+#: templates/js/translated/bom.js:944 templates/js/translated/build.js:1865
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:954
+#: templates/js/translated/bom.js:962
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:969
+#: templates/js/translated/bom.js:977
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:976
+#: templates/js/translated/bom.js:984
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145
+#: templates/js/translated/bom.js:1033 templates/js/translated/bom.js:1153
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1052
+#: templates/js/translated/bom.js:1060
msgid "Including On Order"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1124
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1118
+#: templates/js/translated/bom.js:1126
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1120
+#: templates/js/translated/bom.js:1128
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284
+#: templates/js/translated/bom.js:1130 templates/js/translated/bom.js:1292
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1124
+#: templates/js/translated/bom.js:1132
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650
+#: templates/js/translated/bom.js:1228 templates/js/translated/build.js:1650
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789
+#: templates/js/translated/bom.js:1472 templates/js/translated/build.js:1789
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1486
+#: templates/js/translated/bom.js:1498
msgid "Inherited from parent BOM"
msgstr ""
@@ -8267,12 +8296,12 @@ msgid "No required tests for this build"
msgstr ""
#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697
-#: templates/js/translated/order.js:3438
+#: templates/js/translated/order.js:3632
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698
-#: templates/js/translated/order.js:3439
+#: templates/js/translated/order.js:3633
msgid "Delete stock allocation"
msgstr ""
@@ -8292,20 +8321,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745
+#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3939
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743
+#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3937
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127
-#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757
+#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3951
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837
+#: templates/js/translated/build.js:1930 templates/js/translated/order.js:4031
msgid "Build stock"
msgstr ""
@@ -8313,21 +8342,21 @@ msgstr ""
msgid "Order stock"
msgstr "Commander des stocks"
-#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830
+#: templates/js/translated/build.js:1937 templates/js/translated/order.js:4024
msgid "Allocate stock"
msgstr ""
#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965
+#: templates/js/translated/order.js:1007 templates/js/translated/order.js:3159
#: templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966
+#: templates/js/translated/build.js:1977 templates/js/translated/order.js:3160
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914
+#: templates/js/translated/build.js:2026 templates/js/translated/order.js:3108
msgid "Specify stock allocation quantity"
msgstr ""
@@ -8339,7 +8368,7 @@ msgstr ""
msgid "All selected parts have been fully allocated"
msgstr ""
-#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980
+#: templates/js/translated/build.js:2115 templates/js/translated/order.js:3174
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
@@ -8347,11 +8376,11 @@ msgstr ""
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077
+#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3271
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154
+#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3348
msgid "No matching stock items"
msgstr ""
@@ -8383,9 +8412,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401
-#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1422
+#: templates/js/translated/part.js:1948 templates/js/translated/stock.js:1686
+#: templates/js/translated/stock.js:2382
msgid "Select"
msgstr ""
@@ -8397,7 +8426,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647
+#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2643
msgid "No user information"
msgstr "Pas d'informations sur l'utilisateur"
@@ -8405,111 +8434,115 @@ msgstr "Pas d'informations sur l'utilisateur"
msgid "No parts allocated for"
msgstr ""
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:179
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:181
msgid "Add Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
msgid "Edit Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:167 templates/js/translated/order.js:511
+#: templates/js/translated/company.js:169 templates/js/translated/order.js:576
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:195 templates/js/translated/order.js:734
+#: templates/js/translated/company.js:197 templates/js/translated/order.js:828
msgid "Add Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:262
+#: templates/js/translated/company.js:297
msgid "All selected supplier parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:278
+#: templates/js/translated/company.js:313
msgid "Delete Supplier Parts"
msgstr ""
-#: templates/js/translated/company.js:350
+#: templates/js/translated/company.js:385
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:427
+#: templates/js/translated/company.js:462
msgid "Parts Supplied"
msgstr "Composantes fournies"
-#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:471
msgid "Parts Manufactured"
msgstr "Composantes fabriquées"
-#: templates/js/translated/company.js:451
+#: templates/js/translated/company.js:486
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:492
+#: templates/js/translated/company.js:527
msgid "All selected manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:507
+#: templates/js/translated/company.js:542
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:541
+#: templates/js/translated/company.js:576
msgid "All selected parameters will be deleted"
msgstr ""
-#: templates/js/translated/company.js:555
+#: templates/js/translated/company.js:590
msgid "Delete Parameters"
msgstr ""
-#: templates/js/translated/company.js:596
+#: templates/js/translated/company.js:631
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:616
-#: templates/js/translated/company.js:876 templates/js/translated/part.js:638
-#: templates/js/translated/part.js:723
+#: templates/js/translated/company.js:651
+#: templates/js/translated/company.js:912 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:721
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:620
-#: templates/js/translated/company.js:880 templates/js/translated/part.js:642
-#: templates/js/translated/part.js:727
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:916 templates/js/translated/part.js:640
+#: templates/js/translated/part.js:725
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:748 templates/js/translated/part.js:830
+#: templates/js/translated/company.js:783 templates/js/translated/part.js:828
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:785 templates/js/translated/part.js:872
+#: templates/js/translated/company.js:820 templates/js/translated/part.js:870
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:786 templates/js/translated/part.js:873
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:871
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:805 templates/js/translated/part.js:890
+#: templates/js/translated/company.js:840 templates/js/translated/part.js:888
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:816 templates/js/translated/part.js:902
+#: templates/js/translated/company.js:851 templates/js/translated/part.js:900
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:856
+#: templates/js/translated/company.js:891
msgid "No supplier parts found"
msgstr ""
-#: templates/js/translated/company.js:1002
+#: templates/js/translated/company.js:1032
+msgid "Availability"
+msgstr ""
+
+#: templates/js/translated/company.js:1055
msgid "Edit supplier part"
msgstr ""
-#: templates/js/translated/company.js:1003
+#: templates/js/translated/company.js:1056
msgid "Delete supplier part"
msgstr ""
@@ -8547,61 +8580,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:367 templates/js/translated/forms.js:382
-#: templates/js/translated/forms.js:396 templates/js/translated/forms.js:410
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:369
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:384
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:398
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:670
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:771
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1269 templates/modals.html:19
+#: templates/js/translated/forms.js:1274 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1702
+#: templates/js/translated/forms.js:1707
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1917 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2170
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2648
+#: templates/js/translated/forms.js:2653
msgid "Select Columns"
msgstr ""
@@ -8792,409 +8825,422 @@ msgstr ""
msgid "Notifications will load here"
msgstr ""
-#: templates/js/translated/order.js:96
+#: templates/js/translated/order.js:97
msgid "No stock items have been allocated to this shipment"
msgstr ""
-#: templates/js/translated/order.js:101
+#: templates/js/translated/order.js:102
msgid "The following stock items will be shipped"
msgstr ""
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:142
msgid "Complete Shipment"
msgstr ""
-#: templates/js/translated/order.js:161
+#: templates/js/translated/order.js:162
msgid "Confirm Shipment"
msgstr ""
-#: templates/js/translated/order.js:217
+#: templates/js/translated/order.js:218
msgid "No pending shipments found"
msgstr ""
-#: templates/js/translated/order.js:221
+#: templates/js/translated/order.js:222
msgid "No stock items have been allocated to pending shipments"
msgstr ""
-#: templates/js/translated/order.js:253
+#: templates/js/translated/order.js:254
msgid "Skip"
msgstr ""
-#: templates/js/translated/order.js:283
+#: templates/js/translated/order.js:284
msgid "Complete Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:289
+#: templates/js/translated/order.js:301 templates/js/translated/order.js:413
msgid "Mark this order as complete?"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:307
msgid "All line items have been received"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:312
msgid "This order has line items which have not been marked as received."
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:313 templates/js/translated/order.js:427
msgid "Completing this order means that the order and line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:324
+#: templates/js/translated/order.js:336
msgid "Cancel Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:329
+#: templates/js/translated/order.js:341
msgid "Are you sure you wish to cancel this purchase order?"
msgstr ""
-#: templates/js/translated/order.js:335
+#: templates/js/translated/order.js:347
msgid "This purchase order can not be cancelled"
msgstr ""
-#: templates/js/translated/order.js:358
+#: templates/js/translated/order.js:370
msgid "Issue Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:363
+#: templates/js/translated/order.js:375
msgid "After placing this purchase order, line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:385
+#: templates/js/translated/order.js:426
+msgid "This order has line items which have not been completed."
+msgstr ""
+
+#: templates/js/translated/order.js:450
msgid "Cancel Sales Order"
msgstr ""
-#: templates/js/translated/order.js:390
+#: templates/js/translated/order.js:455
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:444
+#: templates/js/translated/order.js:509
msgid "Create New Shipment"
msgstr ""
-#: templates/js/translated/order.js:469
+#: templates/js/translated/order.js:534
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:494
+#: templates/js/translated/order.js:559
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:555
+#: templates/js/translated/order.js:620
msgid "Select purchase order to duplicate"
msgstr ""
-#: templates/js/translated/order.js:562
+#: templates/js/translated/order.js:627
msgid "Duplicate Line Items"
msgstr ""
-#: templates/js/translated/order.js:563
+#: templates/js/translated/order.js:628
msgid "Duplicate all line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:570
+#: templates/js/translated/order.js:635
msgid "Duplicate Extra Lines"
msgstr ""
-#: templates/js/translated/order.js:571
+#: templates/js/translated/order.js:636
msgid "Duplicate extra line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:588
+#: templates/js/translated/order.js:653
msgid "Edit Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:605
+#: templates/js/translated/order.js:670
msgid "Duplication Options"
msgstr ""
-#: templates/js/translated/order.js:863
+#: templates/js/translated/order.js:957
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:914
+#: templates/js/translated/order.js:1008
msgid "At least one purchaseable part must be selected"
msgstr ""
-#: templates/js/translated/order.js:939
+#: templates/js/translated/order.js:1033
msgid "Quantity to order"
msgstr ""
-#: templates/js/translated/order.js:948
+#: templates/js/translated/order.js:1042
msgid "New supplier part"
msgstr ""
-#: templates/js/translated/order.js:966
+#: templates/js/translated/order.js:1060
msgid "New purchase order"
msgstr ""
-#: templates/js/translated/order.js:999
+#: templates/js/translated/order.js:1093
msgid "Add to purchase order"
msgstr ""
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1233
msgid "No matching supplier parts"
msgstr ""
-#: templates/js/translated/order.js:1123
+#: templates/js/translated/order.js:1252
msgid "No matching purchase orders"
msgstr ""
-#: templates/js/translated/order.js:1300
+#: templates/js/translated/order.js:1429
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1430
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420
+#: templates/js/translated/order.js:1450 templates/js/translated/order.js:1563
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431
+#: templates/js/translated/order.js:1456 templates/js/translated/order.js:1574
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1339
+#: templates/js/translated/order.js:1471
+msgid "Received Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:1482
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144
+#: templates/js/translated/order.js:1546 templates/js/translated/stock.js:2140
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:1494
+#: templates/js/translated/order.js:1639
msgid "Order Code"
msgstr "Référence de commande"
-#: templates/js/translated/order.js:1495
+#: templates/js/translated/order.js:1640
msgid "Ordered"
msgstr "Commandé"
-#: templates/js/translated/order.js:1497
+#: templates/js/translated/order.js:1642
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:1516
+#: templates/js/translated/order.js:1661
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:1517
+#: templates/js/translated/order.js:1662
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943
+#: templates/js/translated/order.js:1940 templates/js/translated/part.js:941
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2803
msgid "Order is overdue"
msgstr "Commande en retard"
-#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674
-#: templates/js/translated/order.js:2815
+#: templates/js/translated/order.js:2017 templates/js/translated/order.js:2868
+#: templates/js/translated/order.js:3009
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889
+#: templates/js/translated/order.js:2115 templates/js/translated/order.js:4083
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911
+#: templates/js/translated/order.js:2132 templates/js/translated/order.js:4105
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:4116
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:2026
+#: templates/js/translated/order.js:2188
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:2215 templates/js/translated/order.js:3817
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309
-#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156
-#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753
+#: templates/js/translated/order.js:2270 templates/js/translated/part.js:1043
+#: templates/js/translated/part.js:1095
+msgid "Total Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:2301 templates/js/translated/order.js:2503
+#: templates/js/translated/order.js:3842 templates/js/translated/order.js:4350
+#: templates/js/translated/part.js:2184 templates/js/translated/part.js:2782
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325
-#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172
+#: templates/js/translated/order.js:2316 templates/js/translated/order.js:2519
+#: templates/js/translated/order.js:3858 templates/js/translated/order.js:4366
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706
-#: templates/js/translated/part.js:1070
+#: templates/js/translated/order.js:2357 templates/js/translated/order.js:3900
+#: templates/js/translated/part.js:1079
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110
+#: templates/js/translated/order.js:2416 templates/js/translated/part.js:1130
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2420 templates/js/translated/order.js:4037
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844
+#: templates/js/translated/order.js:2421 templates/js/translated/order.js:4038
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848
+#: templates/js/translated/order.js:2422 templates/js/translated/order.js:4042
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221
+#: templates/js/translated/order.js:2568 templates/js/translated/order.js:4415
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222
+#: templates/js/translated/order.js:2569 templates/js/translated/order.js:4416
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223
+#: templates/js/translated/order.js:2570 templates/js/translated/order.js:4417
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253
+#: templates/js/translated/order.js:2600 templates/js/translated/order.js:4447
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274
+#: templates/js/translated/order.js:2621 templates/js/translated/order.js:4468
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285
+#: templates/js/translated/order.js:2632 templates/js/translated/order.js:4479
msgid "Delete Line"
msgstr ""
-#: templates/js/translated/order.js:2449
+#: templates/js/translated/order.js:2643
msgid "No matching line"
msgstr ""
-#: templates/js/translated/order.js:2560
+#: templates/js/translated/order.js:2754
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:2623
+#: templates/js/translated/order.js:2817
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:2721
+#: templates/js/translated/order.js:2915
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:2724
+#: templates/js/translated/order.js:2918
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:2729
+#: templates/js/translated/order.js:2923
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:2749
+#: templates/js/translated/order.js:2943
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:2766
+#: templates/js/translated/order.js:2960
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:2800
+#: templates/js/translated/order.js:2994
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:2810
+#: templates/js/translated/order.js:3004
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:2834
+#: templates/js/translated/order.js:3028
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:2840
+#: templates/js/translated/order.js:3034
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:2844
+#: templates/js/translated/order.js:3038
msgid "Invoice"
msgstr ""
-#: templates/js/translated/order.js:3013
+#: templates/js/translated/order.js:3207
msgid "Add Shipment"
msgstr ""
-#: templates/js/translated/order.js:3064
+#: templates/js/translated/order.js:3258
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/order.js:3065
+#: templates/js/translated/order.js:3259
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:3273
+#: templates/js/translated/order.js:3467
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:3352
+#: templates/js/translated/order.js:3546
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3369
+#: templates/js/translated/order.js:3563
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:3370
+#: templates/js/translated/order.js:3564
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504
+#: templates/js/translated/order.js:3609 templates/js/translated/order.js:3698
#: templates/js/translated/stock.js:1602
msgid "Shipped to customer"
msgstr "Livré au client"
-#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513
+#: templates/js/translated/order.js:3617 templates/js/translated/order.js:3707
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3827
+#: templates/js/translated/order.js:4021
msgid "Allocate serial numbers"
msgstr "Allouer des numéros de série"
-#: templates/js/translated/order.js:3833
+#: templates/js/translated/order.js:4027
msgid "Purchase stock"
msgstr "Acheter du stock"
-#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038
+#: templates/js/translated/order.js:4034 templates/js/translated/order.js:4232
msgid "Calculate price"
msgstr "Calculer le prix"
-#: templates/js/translated/order.js:3852
+#: templates/js/translated/order.js:4046
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3855
+#: templates/js/translated/order.js:4049
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3937
+#: templates/js/translated/order.js:4131
msgid "Allocate Serial Numbers"
msgstr "Allouer des numéros de série"
-#: templates/js/translated/order.js:4046
+#: templates/js/translated/order.js:4240
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:4060
+#: templates/js/translated/order.js:4254
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4296
+#: templates/js/translated/order.js:4490
msgid "No matching lines"
msgstr ""
@@ -9374,173 +9420,177 @@ msgstr ""
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498
+#: templates/js/translated/part.js:584 templates/js/translated/part.js:1515
#: templates/js/translated/table_filters.js:468
msgid "Low stock"
msgstr "Stock bas"
-#: templates/js/translated/part.js:596
+#: templates/js/translated/part.js:594
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:715
+#: templates/js/translated/part.js:628 templates/js/translated/part.js:713
msgid "Trackable part"
msgstr "Pièce traçable"
-#: templates/js/translated/part.js:634 templates/js/translated/part.js:719
+#: templates/js/translated/part.js:632 templates/js/translated/part.js:717
msgid "Virtual part"
msgstr "Pièce virtuelle"
-#: templates/js/translated/part.js:646
+#: templates/js/translated/part.js:644
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:650
+#: templates/js/translated/part.js:648
msgid "Salable part"
msgstr "Pièce vendable"
-#: templates/js/translated/part.js:778
+#: templates/js/translated/part.js:776
msgid "No variants found"
msgstr "Aucune variante trouvée"
-#: templates/js/translated/part.js:1180
+#: templates/js/translated/part.js:1200
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1204
+#: templates/js/translated/part.js:1224
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573
+#: templates/js/translated/part.js:1291 templates/js/translated/part.js:1602
msgid "No parts found"
msgstr "Aucune pièce trouvée"
-#: templates/js/translated/part.js:1310
-msgid "Not available"
-msgstr ""
-
-#: templates/js/translated/part.js:1461
+#: templates/js/translated/part.js:1482
msgid "No category"
msgstr "Aucune catégorie"
-#: templates/js/translated/part.js:1496
+#: templates/js/translated/part.js:1513
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840
-#: templates/js/translated/stock.js:2347
+#: templates/js/translated/part.js:1537
+msgid "Allocated to build orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1541
+msgid "Allocated to sales orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1626 templates/js/translated/part.js:1869
+#: templates/js/translated/stock.js:2343
msgid "Display as list"
msgstr "Afficher sous forme de liste"
-#: templates/js/translated/part.js:1613
+#: templates/js/translated/part.js:1642
msgid "Display as grid"
msgstr "Afficher sous forme de grille"
-#: templates/js/translated/part.js:1679
+#: templates/js/translated/part.js:1708
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1684
+#: templates/js/translated/part.js:1713
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:1689
+#: templates/js/translated/part.js:1718
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1702
+#: templates/js/translated/part.js:1731
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366
+#: templates/js/translated/part.js:1888 templates/js/translated/stock.js:2362
msgid "Display as tree"
msgstr "Afficher sous forme d'arborescence"
-#: templates/js/translated/part.js:1938
+#: templates/js/translated/part.js:1967
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:1954
+#: templates/js/translated/part.js:1983
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2012
+#: templates/js/translated/part.js:2041
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299
+#: templates/js/translated/part.js:2092 templates/js/translated/stock.js:1299
msgid "Edit test result"
msgstr "Modifier le résultat du test"
-#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300
+#: templates/js/translated/part.js:2093 templates/js/translated/stock.js:1300
#: templates/js/translated/stock.js:1560
msgid "Delete test result"
msgstr "Supprimer le résultat du test"
-#: templates/js/translated/part.js:2070
+#: templates/js/translated/part.js:2099
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2092
+#: templates/js/translated/part.js:2121
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2106
+#: templates/js/translated/part.js:2135
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2131
+#: templates/js/translated/part.js:2160
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:2188
+#: templates/js/translated/part.js:2217
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2189
+#: templates/js/translated/part.js:2218
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355
+#: templates/js/translated/part.js:2383 templates/js/translated/part.js:2384
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2357
+#: templates/js/translated/part.js:2386
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2363
+#: templates/js/translated/part.js:2392
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2413
+#: templates/js/translated/part.js:2442
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2419
+#: templates/js/translated/part.js:2448
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2515
+#: templates/js/translated/part.js:2544
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2531
+#: templates/js/translated/part.js:2560
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2576
+#: templates/js/translated/part.js:2605
msgid "Minimum Stock Level"
msgstr ""
-#: templates/js/translated/part.js:2677
+#: templates/js/translated/part.js:2706
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:2696
+#: templates/js/translated/part.js:2725
msgid "Single Price Difference"
msgstr ""
@@ -9778,7 +9828,7 @@ msgstr "Supprimer"
msgid "Add Stock"
msgstr "Ajouter du stock"
-#: templates/js/translated/stock.js:942 users/models.py:216
+#: templates/js/translated/stock.js:942 users/models.py:218
msgid "Add"
msgstr "Ajouter"
@@ -9854,156 +9904,156 @@ msgstr "Assigné à une commande de vente"
msgid "No stock location set"
msgstr "Aucun emplacement de stock défini"
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1775
msgid "Stock item is in production"
msgstr "L'article de stock est en production"
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1780
msgid "Stock item assigned to sales order"
msgstr "L'article en stock a été assigné à une commande de vente"
-#: templates/js/translated/stock.js:1787
+#: templates/js/translated/stock.js:1783
msgid "Stock item assigned to customer"
msgstr "L'article en stock a été assigné à un client"
-#: templates/js/translated/stock.js:1790
+#: templates/js/translated/stock.js:1786
msgid "Serialized stock item has been allocated"
msgstr "L'article de stock sérialisé a été alloué"
-#: templates/js/translated/stock.js:1792
+#: templates/js/translated/stock.js:1788
msgid "Stock item has been fully allocated"
msgstr "L'article de stock a été complètement alloué"
-#: templates/js/translated/stock.js:1794
+#: templates/js/translated/stock.js:1790
msgid "Stock item has been partially allocated"
msgstr "L'article de stock a été partiellement alloué"
-#: templates/js/translated/stock.js:1797
+#: templates/js/translated/stock.js:1793
msgid "Stock item has been installed in another item"
msgstr "L'article en stock a été installé dans un autre article"
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1797
msgid "Stock item has expired"
msgstr "L'article en stock a expiré"
-#: templates/js/translated/stock.js:1803
+#: templates/js/translated/stock.js:1799
msgid "Stock item will expire soon"
msgstr "L'article en stock va bientôt expirer"
-#: templates/js/translated/stock.js:1810
+#: templates/js/translated/stock.js:1806
msgid "Stock item has been rejected"
msgstr "L'article de stock a été rejeté"
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:1808
msgid "Stock item is lost"
msgstr "L'article de stock est perdu"
-#: templates/js/translated/stock.js:1814
+#: templates/js/translated/stock.js:1810
msgid "Stock item is destroyed"
msgstr "L'article de stock est détruit"
-#: templates/js/translated/stock.js:1818
+#: templates/js/translated/stock.js:1814
#: templates/js/translated/table_filters.js:196
msgid "Depleted"
msgstr "Epuisé"
-#: templates/js/translated/stock.js:1869
+#: templates/js/translated/stock.js:1865
msgid "Stocktake"
msgstr "Prise d'inventaire"
-#: templates/js/translated/stock.js:1948
+#: templates/js/translated/stock.js:1944
msgid "Supplier part not specified"
msgstr "Pièce de fournisseur non précisée"
-#: templates/js/translated/stock.js:1986
+#: templates/js/translated/stock.js:1982
msgid "No stock items matching query"
msgstr "Aucun article de stock ne correspond à la requête"
-#: templates/js/translated/stock.js:2159
+#: templates/js/translated/stock.js:2155
msgid "Set Stock Status"
msgstr "Définir l'état du stock"
-#: templates/js/translated/stock.js:2173
+#: templates/js/translated/stock.js:2169
msgid "Select Status Code"
msgstr "Sélectionner le code de statut"
-#: templates/js/translated/stock.js:2174
+#: templates/js/translated/stock.js:2170
msgid "Status code must be selected"
msgstr "Le code de statut doit être sélectionné"
-#: templates/js/translated/stock.js:2404
+#: templates/js/translated/stock.js:2400
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2493
+#: templates/js/translated/stock.js:2489
msgid "Details"
msgstr "Détails"
-#: templates/js/translated/stock.js:2509
+#: templates/js/translated/stock.js:2505
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2531
+#: templates/js/translated/stock.js:2527
msgid "Location no longer exists"
msgstr "L'emplacement n'existe plus"
-#: templates/js/translated/stock.js:2550
+#: templates/js/translated/stock.js:2546
msgid "Purchase order no longer exists"
msgstr "La commande d'achat n'existe plus"
-#: templates/js/translated/stock.js:2569
+#: templates/js/translated/stock.js:2565
msgid "Customer no longer exists"
msgstr "Le client n'existe plus"
-#: templates/js/translated/stock.js:2587
+#: templates/js/translated/stock.js:2583
msgid "Stock item no longer exists"
msgstr "L'article de stock n'existe plus"
-#: templates/js/translated/stock.js:2610
+#: templates/js/translated/stock.js:2606
msgid "Added"
msgstr "Ajouté"
-#: templates/js/translated/stock.js:2618
+#: templates/js/translated/stock.js:2614
msgid "Removed"
msgstr "Supprimé"
-#: templates/js/translated/stock.js:2694
+#: templates/js/translated/stock.js:2690
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781
+#: templates/js/translated/stock.js:2741 templates/js/translated/stock.js:2777
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2790
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2815
+#: templates/js/translated/stock.js:2811
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2816
+#: templates/js/translated/stock.js:2812
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2818
+#: templates/js/translated/stock.js:2814
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2819
+#: templates/js/translated/stock.js:2815
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2820
+#: templates/js/translated/stock.js:2816
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2821
+#: templates/js/translated/stock.js:2817
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2834
+#: templates/js/translated/stock.js:2830
msgid "Select part to install"
msgstr ""
@@ -10525,35 +10575,35 @@ msgstr "Droits"
msgid "Important dates"
msgstr "Dates importantes"
-#: users/models.py:203
+#: users/models.py:205
msgid "Permission set"
msgstr "Droit défini"
-#: users/models.py:211
+#: users/models.py:213
msgid "Group"
msgstr "Groupe"
-#: users/models.py:214
+#: users/models.py:216
msgid "View"
msgstr "Vue"
-#: users/models.py:214
+#: users/models.py:216
msgid "Permission to view items"
msgstr "Droit de voir des éléments"
-#: users/models.py:216
+#: users/models.py:218
msgid "Permission to add items"
msgstr "Droit d'ajouter des éléments"
-#: users/models.py:218
+#: users/models.py:220
msgid "Change"
msgstr "Modifier"
-#: users/models.py:218
+#: users/models.py:220
msgid "Permissions to edit items"
msgstr "Droit de modifier des élément"
-#: users/models.py:220
+#: users/models.py:222
msgid "Permission to delete items"
msgstr "Droit de supprimer des éléments"
diff --git a/InvenTree/locale/he/LC_MESSAGES/django.po b/InvenTree/locale/he/LC_MESSAGES/django.po
index 73eb64ca60..1ce24305f6 100644
--- a/InvenTree/locale/he/LC_MESSAGES/django.po
+++ b/InvenTree/locale/he/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-08-25 10:08+0000\n"
-"PO-Revision-Date: 2022-08-26 01:55\n"
+"POT-Creation-Date: 2022-09-09 02:44+0000\n"
+"PO-Revision-Date: 2022-09-09 03:57\n"
"Last-Translator: \n"
"Language-Team: Hebrew\n"
"Language: he_IL\n"
@@ -29,9 +29,9 @@ msgstr ""
msgid "Enter date"
msgstr "הזן תאריך סיום"
-#: InvenTree/fields.py:186 build/serializers.py:384
-#: build/templates/build/sidebar.html:21 company/models.py:523
-#: company/templates/company/sidebar.html:25 order/models.py:906
+#: InvenTree/fields.py:183 build/serializers.py:384
+#: build/templates/build/sidebar.html:21 company/models.py:524
+#: company/templates/company/sidebar.html:25 order/models.py:910
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17
#: part/templates/part/part_sidebar.html:59
@@ -40,11 +40,12 @@ msgstr "הזן תאריך סיום"
#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823
#: stock/serializers.py:922 stock/serializers.py:1054
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099
-#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210
-#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859
-#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208
-#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1107
+#: templates/js/translated/company.js:1022
+#: templates/js/translated/order.js:2404 templates/js/translated/order.js:2555
+#: templates/js/translated/order.js:3053 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:4402 templates/js/translated/stock.js:1374
+#: templates/js/translated/stock.js:1976
msgid "Notes"
msgstr ""
@@ -210,12 +211,12 @@ msgid "Select file to attach"
msgstr "בחר קובץ לצירוף"
#: InvenTree/models.py:402 company/models.py:124 company/models.py:276
-#: company/models.py:510 order/models.py:84 order/models.py:1245
+#: company/models.py:511 order/models.py:84 order/models.py:1249
#: part/models.py:802 part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
-#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848
-#: templates/js/translated/part.js:1534
+#: templates/js/translated/company.js:691
+#: templates/js/translated/company.js:1011
+#: templates/js/translated/order.js:3042 templates/js/translated/part.js:1563
msgid "Link"
msgstr "קישור"
@@ -233,12 +234,12 @@ msgstr "הערה"
msgid "File comment"
msgstr "הערת קובץ"
-#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665
-#: common/models.py:1666 common/models.py:1889 common/models.py:1890
-#: common/models.py:2152 common/models.py:2153 part/models.py:2239
-#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257
+#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1669
+#: common/models.py:1670 common/models.py:1893 common/models.py:1894
+#: common/models.py:2156 common/models.py:2157 part/models.py:2247
+#: part/models.py:2267 plugin/models.py:260 plugin/models.py:261
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2641
+#: templates/js/translated/stock.js:2637
msgid "User"
msgstr "משתמש"
@@ -275,28 +276,28 @@ msgstr "שגיאה בשינוי שם פריט"
msgid "Invalid choice"
msgstr "בחירה שגויה"
-#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875
+#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1879
#: company/models.py:358 label/models.py:101 part/models.py:746
-#: part/models.py:2417 plugin/models.py:94 report/models.py:152
+#: part/models.py:2425 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin.html:134
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:347
-#: templates/js/translated/company.js:545
-#: templates/js/translated/company.js:758
+#: templates/js/translated/company.js:580
+#: templates/js/translated/company.js:793
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:688 templates/js/translated/part.js:840
-#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392
+#: templates/js/translated/part.js:686 templates/js/translated/part.js:838
+#: templates/js/translated/part.js:1955 templates/js/translated/stock.js:2388
msgid "Name"
msgstr "שם"
#: InvenTree/models.py:544 build/models.py:174
#: build/templates/build/detail.html:24 company/models.py:282
-#: company/models.py:516 company/templates/company/company_base.html:71
+#: company/models.py:517 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:87 label/models.py:108
-#: order/models.py:82 part/models.py:769 part/models.py:2429
+#: company/templates/company/supplier_part.html:92 label/models.py:108
+#: order/models.py:82 part/models.py:769 part/models.py:2437
#: part/templates/part/category.html:80 part/templates/part/part_base.html:167
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
@@ -305,14 +306,14 @@ msgstr "שם"
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/InvenTree/settings/settings.html:358
#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846
-#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409
-#: templates/js/translated/company.js:667
-#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637
-#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167
-#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962
-#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743
-#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478
+#: templates/js/translated/build.js:2512 templates/js/translated/company.js:444
+#: templates/js/translated/company.js:702
+#: templates/js/translated/company.js:986 templates/js/translated/order.js:1988
+#: templates/js/translated/order.js:2220 templates/js/translated/order.js:2831
+#: templates/js/translated/part.js:745 templates/js/translated/part.js:1187
+#: templates/js/translated/part.js:1463 templates/js/translated/part.js:1991
+#: templates/js/translated/part.js:2060 templates/js/translated/stock.js:1743
+#: templates/js/translated/stock.js:2420 templates/js/translated/stock.js:2474
msgid "Description"
msgstr "תיאור"
@@ -325,7 +326,7 @@ msgid "parent"
msgstr "מקור"
#: InvenTree/models.py:560 InvenTree/models.py:561
-#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:2426
msgid "Path"
msgstr ""
@@ -337,7 +338,7 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2745
+#: InvenTree/serializers.py:55 part/models.py:2753
msgid "Must be a valid number"
msgstr "המספר חייב להיות תקין"
@@ -522,7 +523,7 @@ msgid "Placed"
msgstr "מוקם"
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr "הושלם"
@@ -542,8 +543,8 @@ msgstr "אבד"
msgid "Returned"
msgstr "הוחזר"
-#: InvenTree/status_codes.py:141 order/models.py:1128
-#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785
+#: InvenTree/status_codes.py:141 order/models.py:1132
+#: templates/js/translated/order.js:3630 templates/js/translated/order.js:3979
msgid "Shipped"
msgstr "נשלח"
@@ -627,7 +628,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080
msgid "Merged stock items"
msgstr ""
@@ -717,7 +718,7 @@ msgstr "מידע אודות המערכת"
msgid "About InvenTree"
msgstr ""
-#: build/api.py:217
+#: build/api.py:219
msgid "Build must be cancelled before it can be deleted"
msgstr ""
@@ -748,15 +749,15 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:166 order/models.py:240 order/models.py:623
-#: order/models.py:904 part/models.py:2663
+#: build/models.py:166 order/models.py:240 order/models.py:627
+#: order/models.py:908 part/models.py:2671
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853
-#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089
-#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629
-#: templates/js/translated/order.js:4137
+#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2251
+#: templates/js/translated/order.js:2484 templates/js/translated/order.js:3823
+#: templates/js/translated/order.js:4331
msgid "Reference"
msgstr "מקט"
@@ -774,12 +775,12 @@ msgid "BuildOrder to which this build is allocated"
msgstr ""
#: build/models.py:191 build/templates/build/build_base.html:80
-#: build/templates/build/detail.html:29 company/models.py:670
-#: order/models.py:1001 order/models.py:1112 order/models.py:1113
-#: part/models.py:343 part/models.py:2185 part/models.py:2200
-#: part/models.py:2219 part/models.py:2237 part/models.py:2336
-#: part/models.py:2463 part/models.py:2553 part/models.py:2638
-#: part/models.py:2914 part/serializers.py:814
+#: build/templates/build/detail.html:29 company/models.py:679
+#: order/models.py:1005 order/models.py:1116 order/models.py:1117
+#: part/models.py:343 part/models.py:2193 part/models.py:2208
+#: part/models.py:2227 part/models.py:2245 part/models.py:2344
+#: part/models.py:2471 part/models.py:2561 part/models.py:2646
+#: part/models.py:2922 part/serializers.py:814
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -795,18 +796,18 @@ msgstr ""
#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800
#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682
#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517
-#: templates/js/translated/company.js:266
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:608
-#: templates/js/translated/company.js:868 templates/js/translated/order.js:105
-#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493
-#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613
-#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224
-#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586
+#: templates/js/translated/company.js:301
+#: templates/js/translated/company.js:531
+#: templates/js/translated/company.js:643
+#: templates/js/translated/company.js:904 templates/js/translated/order.js:106
+#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1638
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:3185
+#: templates/js/translated/order.js:3581 templates/js/translated/order.js:3807
+#: templates/js/translated/part.js:1172 templates/js/translated/part.js:1244
+#: templates/js/translated/part.js:1441 templates/js/translated/stock.js:586
#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504
-#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833
+#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2500
+#: templates/js/translated/stock.js:2695 templates/js/translated/stock.js:2829
msgid "Part"
msgstr "רכיב"
@@ -823,7 +824,7 @@ msgid "SalesOrder to which this build is allocated"
msgstr ""
#: build/models.py:213 build/serializers.py:800
-#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979
+#: templates/js/translated/build.js:2114 templates/js/translated/order.js:3173
msgid "Source Location"
msgstr ""
@@ -863,8 +864,8 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:251 build/serializers.py:225 order/serializers.py:447
-#: stock/models.py:662 templates/js/translated/order.js:1353
+#: build/models.py:251 build/serializers.py:225 order/serializers.py:464
+#: stock/models.py:662 templates/js/translated/order.js:1496
msgid "Batch Code"
msgstr ""
@@ -873,11 +874,11 @@ msgid "Batch code for this build output"
msgstr ""
#: build/models.py:258 order/models.py:86 part/models.py:938
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2844
msgid "Creation Date"
msgstr ""
-#: build/models.py:262 order/models.py:648
+#: build/models.py:262 order/models.py:652
msgid "Target completion date"
msgstr ""
@@ -904,10 +905,10 @@ msgstr ""
#: build/models.py:289 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:100
-#: order/templates/order/order_base.html:179
+#: order/templates/order/order_base.html:185
#: order/templates/order/sales_order_base.html:183 part/models.py:942
#: report/templates/report/inventree_build_order_base.html:158
-#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860
+#: templates/js/translated/build.js:2574 templates/js/translated/order.js:2022
msgid "Responsible"
msgstr ""
@@ -917,9 +918,9 @@ msgstr ""
#: build/models.py:295 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
-#: company/templates/company/supplier_part.html:153
+#: company/templates/company/supplier_part.html:165
#: part/templates/part/part_base.html:346 stock/models.py:656
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr ""
@@ -957,11 +958,11 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1188 order/models.py:1379
+#: build/models.py:1188 order/models.py:1383
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1194 order/models.py:1382
+#: build/models.py:1194 order/models.py:1386
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -973,7 +974,7 @@ msgstr ""
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1326 stock/templates/stock/item_base.html:172
+#: build/models.py:1326 stock/templates/stock/item_base.html:175
#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496
#: templates/navbar.html:38
msgid "Build"
@@ -983,18 +984,18 @@ msgstr ""
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015
-#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754
+#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1035
+#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754
#: stock/serializers.py:880 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:197
#: templates/js/translated/build.js:774 templates/js/translated/build.js:779
#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679
-#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992
-#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299
-#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486
+#: templates/js/translated/order.js:107 templates/js/translated/order.js:3186
+#: templates/js/translated/order.js:3488 templates/js/translated/order.js:3493
+#: templates/js/translated/order.js:3588 templates/js/translated/order.js:3680
#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752
-#: templates/js/translated/stock.js:2577
+#: templates/js/translated/stock.js:2573
msgid "Stock Item"
msgstr ""
@@ -1004,11 +1005,11 @@ msgstr ""
#: build/models.py:1356 build/serializers.py:193
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1697
-#: company/templates/company/supplier_part.html:279 order/models.py:897
-#: order/models.py:1423 order/serializers.py:1155
+#: build/templates/build/detail.html:34 common/models.py:1701
+#: company/templates/company/supplier_part.html:291 order/models.py:901
+#: order/models.py:1427 order/serializers.py:1209
#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40
-#: part/models.py:2654 part/templates/part/detail.html:951
+#: part/models.py:2662 part/templates/part/detail.html:951
#: part/templates/part/detail.html:1037
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -1017,8 +1018,8 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:291 stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
+#: stock/serializers.py:291 stock/templates/stock/item_base.html:290
+#: stock/templates/stock/item_base.html:298
#: templates/email/build_order_completed.html:18
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691
#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458
@@ -1026,16 +1027,16 @@ msgstr ""
#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708
#: templates/js/translated/build.js:2129
#: templates/js/translated/model_renderers.js:120
-#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043
-#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313
-#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492
-#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143
-#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176
-#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686
-#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458
+#: templates/js/translated/order.js:123 templates/js/translated/order.js:1137
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:2490
+#: templates/js/translated/order.js:3187 templates/js/translated/order.js:3507
+#: templates/js/translated/order.js:3594 templates/js/translated/order.js:3686
+#: templates/js/translated/order.js:3829 templates/js/translated/order.js:4337
+#: templates/js/translated/part.js:1036 templates/js/translated/part.js:2205
+#: templates/js/translated/part.js:2674 templates/js/translated/part.js:2715
+#: templates/js/translated/part.js:2793 templates/js/translated/stock.js:458
#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782
-#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2707
msgid "Quantity"
msgstr "כמות"
@@ -1077,7 +1078,7 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:208 build/serializers.py:665 order/models.py:318
-#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545
+#: order/serializers.py:304 order/serializers.py:459 part/serializers.py:545
#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251
#: stock/serializers.py:300
msgid "Quantity must be greater than zero"
@@ -1091,8 +1092,8 @@ msgstr ""
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159
-#: stock/serializers.py:309 templates/js/translated/order.js:1364
+#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213
+#: stock/serializers.py:309 templates/js/translated/order.js:1507
#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459
msgid "Serial Numbers"
msgstr "מספרים סידוריים"
@@ -1117,18 +1118,18 @@ msgstr ""
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532
+#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552
#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532
#: stock/serializers.py:915 stock/serializers.py:1148
-#: stock/templates/stock/item_base.html:385
+#: stock/templates/stock/item_base.html:388
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786
-#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391
-#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411
-#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500
+#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1534
+#: templates/js/translated/order.js:3500 templates/js/translated/order.js:3605
+#: templates/js/translated/order.js:3613 templates/js/translated/order.js:3694
#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588
#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960
-#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2514
msgid "Location"
msgstr ""
@@ -1137,12 +1138,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:373 build/templates/build/build_base.html:145
-#: build/templates/build/detail.html:62 order/models.py:642
-#: order/serializers.py:465 stock/templates/stock/item_base.html:418
+#: build/templates/build/detail.html:62 order/models.py:646
+#: order/serializers.py:482 stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546
-#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830
-#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829
-#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727
+#: templates/js/translated/order.js:1643 templates/js/translated/order.js:1992
+#: templates/js/translated/order.js:2836 templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:2591 templates/js/translated/stock.js:2723
msgid "Status"
msgstr ""
@@ -1202,7 +1203,7 @@ msgstr ""
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:527
+#: build/serializers.py:527 order/serializers.py:208 order/serializers.py:1103
msgid "Accept Incomplete"
msgstr ""
@@ -1218,8 +1219,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772
-#: part/models.py:2906
+#: build/serializers.py:577 build/serializers.py:622 part/models.py:2780
+#: part/models.py:2914
msgid "BOM Item"
msgstr ""
@@ -1239,7 +1240,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:709 order/serializers.py:1073
+#: build/serializers.py:709 order/serializers.py:1093
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1256,7 +1257,7 @@ msgstr ""
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:750 order/serializers.py:1319
+#: build/serializers.py:750 order/serializers.py:1373
msgid "Allocation items must be provided"
msgstr ""
@@ -1371,13 +1372,13 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:154
-#: build/templates/build/detail.html:131 order/models.py:910
-#: order/templates/order/order_base.html:165
+#: build/templates/build/detail.html:131 order/models.py:914
+#: order/templates/order/order_base.html:171
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:125
-#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847
-#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658
-#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042
+#: templates/js/translated/build.js:2586 templates/js/translated/order.js:2009
+#: templates/js/translated/order.js:2351 templates/js/translated/order.js:2852
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1051
msgid "Target Date"
msgstr ""
@@ -1388,7 +1389,7 @@ msgstr ""
#: build/templates/build/build_base.html:159
#: build/templates/build/build_base.html:204
-#: order/templates/order/order_base.html:101
+#: order/templates/order/order_base.html:107
#: order/templates/order/sales_order_base.html:94
#: templates/js/translated/table_filters.js:320
#: templates/js/translated/table_filters.js:361
@@ -1404,15 +1405,15 @@ msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:179
-#: build/templates/build/detail.html:94 order/models.py:1105
-#: order/models.py:1199 order/models.py:1330
+#: build/templates/build/detail.html:94 order/models.py:1109
+#: order/models.py:1203 order/models.py:1334
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:365
+#: stock/templates/stock/item_base.html:368
#: templates/email/overdue_sales_order.html:15
-#: templates/js/translated/order.js:2604
+#: templates/js/translated/order.js:2798
msgid "Sales Order"
msgstr ""
@@ -1438,8 +1439,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1023
-#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199
+#: build/templates/build/detail.html:49 order/models.py:1027
+#: templates/js/translated/order.js:1644 templates/js/translated/order.js:2393
msgid "Destination"
msgstr ""
@@ -1452,18 +1453,18 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:165
+#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1215
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843
-#: templates/js/translated/stock.js:2734
+#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1839
+#: templates/js/translated/stock.js:2730
#: templates/js/translated/table_filters.js:159
#: templates/js/translated/table_filters.js:250
msgid "Batch"
msgstr ""
#: build/templates/build/detail.html:126
-#: order/templates/order/order_base.html:152
+#: order/templates/order/order_base.html:158
#: order/templates/order/sales_order_base.html:158
#: templates/js/translated/build.js:2554
msgid "Created"
@@ -1516,7 +1517,7 @@ msgstr ""
#: build/templates/build/detail.html:187
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:85
-#: part/templates/part/category.html:183 templates/js/translated/order.js:1083
+#: part/templates/part/category.html:183 templates/js/translated/order.js:1177
msgid "Order Parts"
msgstr ""
@@ -1851,7 +1852,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:951 part/models.py:2465 report/models.py:158
+#: common/models.py:951 part/models.py:2473 report/models.py:158
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:484
msgid "Template"
@@ -1861,7 +1862,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446
+#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1454
#: templates/js/translated/table_filters.js:176
#: templates/js/translated/table_filters.js:447
msgid "Assembly"
@@ -2275,349 +2276,349 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1342 common/models.py:1658
+#: common/models.py:1344 common/models.py:1662
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1364
+#: common/models.py:1366
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1365
+#: common/models.py:1367
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1371
+#: common/models.py:1373
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1372
+#: common/models.py:1374
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1378
+#: common/models.py:1380
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1379
+#: common/models.py:1381
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1385
+#: common/models.py:1387
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1386
+#: common/models.py:1388
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1392
+#: common/models.py:1394
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1393
+#: common/models.py:1395
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1399
+#: common/models.py:1401
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1400
+#: common/models.py:1402
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1406
+#: common/models.py:1408
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1407
+#: common/models.py:1409
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1413
+#: common/models.py:1415
msgid "Show low stock"
msgstr ""
-#: common/models.py:1414
+#: common/models.py:1416
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1420
+#: common/models.py:1422
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1421
+#: common/models.py:1423
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1427
+#: common/models.py:1429
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1430
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1434
+#: common/models.py:1436
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1435
+#: common/models.py:1437
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1441
+#: common/models.py:1443
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1442
+#: common/models.py:1444
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1448
+#: common/models.py:1450
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1449
+#: common/models.py:1451
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1455
+#: common/models.py:1457
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1456
+#: common/models.py:1458
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1462
+#: common/models.py:1464
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1463
+#: common/models.py:1465
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1469
+#: common/models.py:1471
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1470
+#: common/models.py:1472
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1476
+#: common/models.py:1478
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1477
+#: common/models.py:1479
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1483
+#: common/models.py:1485
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1484
+#: common/models.py:1486
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1490
+#: common/models.py:1492
msgid "Inline label display"
msgstr ""
-#: common/models.py:1491
+#: common/models.py:1493
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1499
msgid "Inline report display"
msgstr ""
-#: common/models.py:1498
+#: common/models.py:1500
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1506
msgid "Search Parts"
msgstr ""
-#: common/models.py:1505
+#: common/models.py:1507
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1513
msgid "Seach Supplier Parts"
msgstr ""
-#: common/models.py:1512
+#: common/models.py:1514
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1520
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:1519
+#: common/models.py:1521
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:1525
+#: common/models.py:1527
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1526
+#: common/models.py:1528
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1532
+#: common/models.py:1534
msgid "Search Categories"
msgstr ""
-#: common/models.py:1533
+#: common/models.py:1535
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1539
+#: common/models.py:1541
msgid "Search Stock"
msgstr ""
-#: common/models.py:1540
+#: common/models.py:1542
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1546
+#: common/models.py:1548
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1547
+#: common/models.py:1549
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1553
+#: common/models.py:1555
msgid "Search Locations"
msgstr ""
-#: common/models.py:1554
+#: common/models.py:1556
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1560
+#: common/models.py:1562
msgid "Search Companies"
msgstr ""
-#: common/models.py:1561
+#: common/models.py:1563
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1567
+#: common/models.py:1569
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1568
+#: common/models.py:1570
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1574
+#: common/models.py:1576
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1575
+#: common/models.py:1577
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1581
+#: common/models.py:1583
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1582
+#: common/models.py:1584
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1588
+#: common/models.py:1590
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1591
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1595
+#: common/models.py:1597
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1598
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1602
+#: common/models.py:1604
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1605
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1609
+#: common/models.py:1611
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1610
+#: common/models.py:1612
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1616
+#: common/models.py:1618
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1617
+#: common/models.py:1619
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1623
+#: common/models.py:1625
msgid "Date Format"
msgstr ""
-#: common/models.py:1624
+#: common/models.py:1626
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1638 part/templates/part/detail.html:41
+#: common/models.py:1640 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1641
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1698
+#: common/models.py:1702
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1705 company/serializers.py:366
-#: company/templates/company/supplier_part.html:284 order/models.py:938
-#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181
+#: common/models.py:1709 company/serializers.py:372
+#: company/templates/company/supplier_part.html:296 order/models.py:942
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:2210
msgid "Price"
msgstr ""
-#: common/models.py:1706
+#: common/models.py:1710
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1866 common/models.py:2044
+#: common/models.py:1870 common/models.py:2048
msgid "Endpoint"
msgstr ""
-#: common/models.py:1867
+#: common/models.py:1871
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1876
+#: common/models.py:1880
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1881 part/models.py:921 plugin/models.py:100
+#: common/models.py:1885 part/models.py:921 plugin/models.py:100
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:104
#: templates/js/translated/table_filters.js:316
@@ -2625,67 +2626,67 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1886
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1896
+#: common/models.py:1900
msgid "Token"
msgstr ""
-#: common/models.py:1897
+#: common/models.py:1901
msgid "Token for access"
msgstr ""
-#: common/models.py:1904
+#: common/models.py:1908
msgid "Secret"
msgstr ""
-#: common/models.py:1905
+#: common/models.py:1909
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2011
+#: common/models.py:2015
msgid "Message ID"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2016
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2020
+#: common/models.py:2024
msgid "Host"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2025
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2032
msgid "Header"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2033
msgid "Header of this message"
msgstr ""
-#: common/models.py:2035
+#: common/models.py:2039
msgid "Body"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2040
msgid "Body of this message"
msgstr ""
-#: common/models.py:2045
+#: common/models.py:2049
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2054
msgid "Worked on"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2055
msgid "Was the work on this message finished?"
msgstr ""
@@ -2747,7 +2748,7 @@ msgstr ""
#: company/models.py:105 company/templates/company/company_base.html:100
#: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:413
+#: templates/js/translated/company.js:448
msgid "Website"
msgstr ""
@@ -2824,7 +2825,7 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:148 company/serializers.py:372
+#: company/models.py:148 company/serializers.py:378
#: company/templates/company/company_base.html:106 part/serializers.py:153
#: part/serializers.py:184 stock/serializers.py:178
msgid "Currency"
@@ -2834,24 +2835,24 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:248 company/models.py:481 stock/models.py:598
+#: company/models.py:248 company/models.py:482 stock/models.py:598
#: stock/serializers.py:85 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:542
msgid "Base Part"
msgstr ""
-#: company/models.py:252 company/models.py:485
+#: company/models.py:252 company/models.py:486
msgid "Select part"
msgstr ""
#: company/models.py:263 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:124
-#: stock/templates/stock/item_base.html:207
-#: templates/js/translated/company.js:397
-#: templates/js/translated/company.js:498
-#: templates/js/translated/company.js:633
-#: templates/js/translated/company.js:919 templates/js/translated/part.js:236
+#: company/templates/company/supplier_part.html:129
+#: stock/templates/stock/item_base.html:210
+#: templates/js/translated/company.js:432
+#: templates/js/translated/company.js:533
+#: templates/js/translated/company.js:668
+#: templates/js/translated/company.js:956 templates/js/translated/part.js:236
#: templates/js/translated/table_filters.js:419
msgid "Manufacturer"
msgstr ""
@@ -2861,12 +2862,12 @@ msgid "Select manufacturer"
msgstr ""
#: company/models.py:270 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:132
-#: templates/js/translated/company.js:269
-#: templates/js/translated/company.js:497
-#: templates/js/translated/company.js:649
-#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077
-#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027
+#: company/templates/company/supplier_part.html:137
+#: templates/js/translated/company.js:304
+#: templates/js/translated/company.js:532
+#: templates/js/translated/company.js:684
+#: templates/js/translated/company.js:975 templates/js/translated/order.js:2239
+#: templates/js/translated/part.js:247 templates/js/translated/part.js:1025
msgid "MPN"
msgstr ""
@@ -2882,10 +2883,10 @@ msgstr ""
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:328 company/models.py:352 company/models.py:504
+#: company/models.py:328 company/models.py:352 company/models.py:505
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:220
msgid "Manufacturer Part"
msgstr ""
@@ -2895,8 +2896,8 @@ msgstr ""
#: company/models.py:365
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2095 templates/js/translated/company.js:546
-#: templates/js/translated/company.js:764 templates/js/translated/part.js:849
+#: stock/models.py:2095 templates/js/translated/company.js:581
+#: templates/js/translated/company.js:799 templates/js/translated/part.js:847
#: templates/js/translated/stock.js:1360
msgid "Value"
msgstr ""
@@ -2905,10 +2906,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:372 part/models.py:888 part/models.py:2425
+#: company/models.py:372 part/models.py:888 part/models.py:2433
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:352
-#: templates/js/translated/company.js:770 templates/js/translated/part.js:855
+#: templates/js/translated/company.js:805 templates/js/translated/part.js:853
msgid "Units"
msgstr ""
@@ -2916,106 +2917,119 @@ msgstr ""
msgid "Parameter units"
msgstr ""
-#: company/models.py:449
+#: company/models.py:450
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:491 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:108 order/models.py:258
-#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:224
+#: company/models.py:492 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:113 order/models.py:258
+#: order/templates/order/order_base.html:121 part/bom.py:237 part/bom.py:265
+#: stock/templates/stock/item_base.html:227
#: templates/email/overdue_purchase_order.html:16
-#: templates/js/translated/company.js:268
-#: templates/js/translated/company.js:401
-#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813
-#: templates/js/translated/part.js:217 templates/js/translated/part.js:995
+#: templates/js/translated/company.js:303
+#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:929 templates/js/translated/order.js:1975
+#: templates/js/translated/part.js:217 templates/js/translated/part.js:993
#: templates/js/translated/table_filters.js:423
msgid "Supplier"
msgstr ""
-#: company/models.py:492 templates/js/translated/part.js:218
+#: company/models.py:493 templates/js/translated/part.js:218
msgid "Select supplier"
msgstr ""
-#: company/models.py:497 company/templates/company/supplier_part.html:118
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267
-#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228
-#: templates/js/translated/part.js:1013
+#: company/models.py:498 company/templates/company/supplier_part.html:123
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:302
+#: templates/js/translated/order.js:2226 templates/js/translated/part.js:228
+#: templates/js/translated/part.js:1011
msgid "SKU"
msgstr ""
-#: company/models.py:498 templates/js/translated/part.js:229
+#: company/models.py:499 templates/js/translated/part.js:229
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:505
+#: company/models.py:506
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:511
+#: company/models.py:512
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:517
+#: company/models.py:518
msgid "Supplier part description"
msgstr ""
-#: company/models.py:522 company/templates/company/supplier_part.html:146
-#: part/models.py:2666 part/templates/part/upload_bom.html:59
+#: company/models.py:523 company/templates/company/supplier_part.html:158
+#: part/models.py:2674 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399
msgid "Note"
msgstr ""
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "base cost"
msgstr ""
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:528 company/templates/company/supplier_part.html:139
-#: stock/models.py:624 stock/templates/stock/item_base.html:240
-#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976
+#: company/models.py:529 company/templates/company/supplier_part.html:144
+#: stock/models.py:624 stock/templates/stock/item_base.html:243
+#: templates/js/translated/company.js:991 templates/js/translated/stock.js:1972
msgid "Packaging"
msgstr ""
-#: company/models.py:528
+#: company/models.py:529
msgid "Part packaging"
msgstr ""
-#: company/models.py:530 part/models.py:1783
+#: company/models.py:532 company/serializers.py:242
+#: company/templates/company/supplier_part.html:151
+#: templates/js/translated/company.js:996 templates/js/translated/order.js:820
+#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:2270 templates/js/translated/order.js:2287
+#: templates/js/translated/part.js:1043 templates/js/translated/part.js:1095
+msgid "Pack Quantity"
+msgstr ""
+
+#: company/models.py:533
+msgid "Unit quantity supplied in a single pack"
+msgstr ""
+
+#: company/models.py:539 part/models.py:1783
msgid "multiple"
msgstr ""
-#: company/models.py:530
+#: company/models.py:539
msgid "Order multiple"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part.html:94
+#: company/models.py:547 company/templates/company/supplier_part.html:99
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823
-#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979
-#: templates/js/translated/part.js:600 templates/js/translated/part.js:603
+#: templates/js/translated/bom.js:915 templates/js/translated/build.js:1823
+#: templates/js/translated/build.js:2686 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:601
#: templates/js/translated/table_filters.js:186
msgid "Available"
msgstr ""
-#: company/models.py:539
+#: company/models.py:548
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:543
+#: company/models.py:552
msgid "Availability Updated"
msgstr ""
-#: company/models.py:544
+#: company/models.py:553
msgid "Date of last update of availability data"
msgstr ""
-#: company/models.py:672
+#: company/models.py:681
msgid "last updated"
msgstr ""
@@ -3029,12 +3043,12 @@ msgstr ""
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386
+#: templates/InvenTree/search.html:179 templates/js/translated/company.js:421
msgid "Company"
msgstr ""
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:624
+#: templates/js/translated/order.js:689
msgid "Create Purchase Order"
msgstr ""
@@ -3047,7 +3061,7 @@ msgid "Edit company information"
msgstr ""
#: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:329
+#: templates/js/translated/company.js:364
msgid "Edit Company"
msgstr ""
@@ -3070,13 +3084,13 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:86 order/models.py:637
+#: company/templates/company/company_base.html:86 order/models.py:641
#: order/templates/order/sales_order_base.html:116 stock/models.py:643
#: stock/models.py:644 stock/serializers.py:809
-#: stock/templates/stock/item_base.html:396
+#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
-#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619
-#: templates/js/translated/stock.js:2559
+#: templates/js/translated/company.js:428 templates/js/translated/order.js:2813
+#: templates/js/translated/stock.js:2555
#: templates/js/translated/table_filters.js:427
msgid "Customer"
msgstr ""
@@ -3211,23 +3225,23 @@ msgid "Manufacturers"
msgstr ""
#: company/templates/company/manufacturer_part.html:35
-#: company/templates/company/supplier_part.html:186
+#: company/templates/company/supplier_part.html:198
#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80
msgid "Order part"
msgstr ""
#: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:681
+#: templates/js/translated/company.js:716
msgid "Edit manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:682
+#: templates/js/translated/company.js:717
msgid "Delete manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:65
-#: company/templates/company/supplier_part.html:77
+#: company/templates/company/supplier_part.html:82
msgid "Internal Part"
msgstr ""
@@ -3250,8 +3264,8 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:371 part/templates/part/detail.html:401
-#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34
-#: users/models.py:220
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:34
+#: users/models.py:222
msgid "Delete"
msgstr ""
@@ -3296,9 +3310,9 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:607
-#: stock/templates/stock/item_base.html:233
-#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041
-#: templates/js/translated/stock.js:1933
+#: stock/templates/stock/item_base.html:236
+#: templates/js/translated/company.js:945 templates/js/translated/order.js:1135
+#: templates/js/translated/stock.js:1929
msgid "Supplier Part"
msgstr ""
@@ -3308,7 +3322,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:40
#: company/templates/company/supplier_part.html:41
-#: company/templates/company/supplier_part.html:187
+#: company/templates/company/supplier_part.html:199
#: part/templates/part/detail.html:88
msgid "Order Part"
msgstr ""
@@ -3320,81 +3334,87 @@ msgstr ""
#: company/templates/company/supplier_part.html:48
#: company/templates/company/supplier_part.html:49
-#: templates/js/translated/company.js:212
+#: templates/js/translated/company.js:247
msgid "Edit Supplier Part"
msgstr ""
#: company/templates/company/supplier_part.html:53
+#: company/templates/company/supplier_part.html:54
+#: templates/js/translated/company.js:222
+msgid "Duplicate Supplier Part"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:58
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:54
+#: company/templates/company/supplier_part.html:59
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:112
+#: company/templates/company/supplier_part.html:117
msgid "No supplier information available"
msgstr ""
-#: company/templates/company/supplier_part.html:165
+#: company/templates/company/supplier_part.html:177
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr ""
-#: company/templates/company/supplier_part.html:168
+#: company/templates/company/supplier_part.html:180
#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181
msgid "Create new stock item"
msgstr ""
-#: company/templates/company/supplier_part.html:169
+#: company/templates/company/supplier_part.html:181
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182
#: templates/js/translated/stock.js:435
msgid "New Stock Item"
msgstr ""
-#: company/templates/company/supplier_part.html:182
+#: company/templates/company/supplier_part.html:194
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr ""
-#: company/templates/company/supplier_part.html:207
+#: company/templates/company/supplier_part.html:219
#: part/templates/part/prices.html:10
msgid "Pricing Information"
msgstr ""
-#: company/templates/company/supplier_part.html:212
-#: company/templates/company/supplier_part.html:326
-#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253
+#: company/templates/company/supplier_part.html:224
+#: company/templates/company/supplier_part.html:338
+#: part/templates/part/prices.html:276 templates/js/translated/part.js:2282
msgid "Add Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:250
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:252
-#: templates/js/translated/part.js:2263
+#: company/templates/company/supplier_part.html:264
+#: templates/js/translated/part.js:2292
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:266
-#: templates/js/translated/part.js:2277
+#: company/templates/company/supplier_part.html:278
+#: templates/js/translated/part.js:2306
msgid "Edit Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:291
+#: company/templates/company/supplier_part.html:303
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part.html:292
+#: company/templates/company/supplier_part.html:304
msgid "Delete price break"
msgstr ""
-#: company/templates/company/supplier_part.html:301
+#: company/templates/company/supplier_part.html:313
msgid "Last updated"
msgstr ""
-#: company/templates/company/supplier_part.html:382
+#: company/templates/company/supplier_part.html:394
msgid "Update Part Availability"
msgstr ""
@@ -3404,8 +3424,8 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313
-#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959
+#: templates/js/translated/part.js:749 templates/js/translated/part.js:1334
+#: templates/js/translated/part.js:1495 templates/js/translated/stock.js:959
#: templates/js/translated/stock.js:1754 templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -3432,7 +3452,7 @@ msgstr ""
#: stock/templates/stock/location.html:178
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2436 users/models.py:40
+#: templates/js/translated/stock.js:2432 users/models.py:40
msgid "Stock Items"
msgstr ""
@@ -3534,7 +3554,7 @@ msgstr ""
msgid "Order description"
msgstr ""
-#: order/models.py:84 order/models.py:1246
+#: order/models.py:84 order/models.py:1250
msgid "Link to external page"
msgstr ""
@@ -3550,11 +3570,11 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:241 order/models.py:624
+#: order/models.py:241 order/models.py:628
msgid "Order reference"
msgstr ""
-#: order/models.py:249 order/models.py:642
+#: order/models.py:249 order/models.py:646
msgid "Purchase order status"
msgstr ""
@@ -3562,8 +3582,8 @@ msgstr ""
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:262 order/templates/order/order_base.html:127
-#: templates/js/translated/order.js:1822
+#: order/models.py:262 order/templates/order/order_base.html:133
+#: templates/js/translated/order.js:1984
msgid "Supplier Reference"
msgstr ""
@@ -3603,245 +3623,245 @@ msgstr ""
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:638
+#: order/models.py:642
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer Reference "
msgstr ""
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:649
+#: order/models.py:653
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:652 order/models.py:1204
-#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828
+#: order/models.py:656 order/models.py:1208
+#: templates/js/translated/order.js:2860 templates/js/translated/order.js:3022
msgid "Shipment Date"
msgstr ""
-#: order/models.py:659
+#: order/models.py:663
msgid "shipped by"
msgstr ""
-#: order/models.py:714
+#: order/models.py:718
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:718
+#: order/models.py:722
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:721
+#: order/models.py:725 templates/js/translated/order.js:419
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:724
+#: order/models.py:728
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:898
+#: order/models.py:902
msgid "Item quantity"
msgstr ""
-#: order/models.py:904
+#: order/models.py:908
msgid "Line item reference"
msgstr ""
-#: order/models.py:906
+#: order/models.py:910
msgid "Line item notes"
msgstr ""
-#: order/models.py:911
+#: order/models.py:915
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:929
+#: order/models.py:933
msgid "Context"
msgstr ""
-#: order/models.py:930
+#: order/models.py:934
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:939
+#: order/models.py:943
msgid "Unit price"
msgstr ""
-#: order/models.py:969
+#: order/models.py:973
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:977
+#: order/models.py:981
msgid "deleted"
msgstr ""
-#: order/models.py:983 order/models.py:1063 order/models.py:1104
-#: order/models.py:1198 order/models.py:1330
-#: templates/js/translated/order.js:3284
+#: order/models.py:987 order/models.py:1067 order/models.py:1108
+#: order/models.py:1202 order/models.py:1334
+#: templates/js/translated/order.js:3478
msgid "Order"
msgstr ""
-#: order/models.py:984 order/models.py:1063
+#: order/models.py:988 order/models.py:1067
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:179
+#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
-#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042
-#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972
-#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540
+#: templates/js/translated/order.js:619 templates/js/translated/order.js:1136
+#: templates/js/translated/order.js:1959 templates/js/translated/part.js:970
+#: templates/js/translated/stock.js:1909 templates/js/translated/stock.js:2536
msgid "Purchase Order"
msgstr ""
-#: order/models.py:1002
+#: order/models.py:1006
msgid "Supplier part"
msgstr ""
-#: order/models.py:1009 order/templates/order/order_base.html:172
-#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105
+#: order/models.py:1013 order/templates/order/order_base.html:178
+#: templates/js/translated/order.js:1641 templates/js/translated/order.js:2373
+#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1125
#: templates/js/translated/table_filters.js:338
msgid "Received"
msgstr ""
-#: order/models.py:1010
+#: order/models.py:1014
msgid "Number of items received"
msgstr ""
-#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734
-#: stock/serializers.py:169 stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1964
+#: order/models.py:1021 part/templates/part/prices.html:181 stock/models.py:734
+#: stock/serializers.py:169 stock/templates/stock/item_base.html:189
+#: templates/js/translated/stock.js:1960
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1018
+#: order/models.py:1022
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1026
+#: order/models.py:1030
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1092
+#: order/models.py:1096
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1097
+#: order/models.py:1101
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1123 part/templates/part/part_pricing.html:115
+#: order/models.py:1127 part/templates/part/part_pricing.html:115
#: part/templates/part/prices.html:121 part/templates/part/prices.html:290
msgid "Sale Price"
msgstr ""
-#: order/models.py:1124
+#: order/models.py:1128
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1129
+#: order/models.py:1133
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1205
+#: order/models.py:1209
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1212
+#: order/models.py:1216
msgid "Checked By"
msgstr ""
-#: order/models.py:1213
+#: order/models.py:1217
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1220 order/models.py:1405 order/serializers.py:1170
-#: order/serializers.py:1294 templates/js/translated/model_renderers.js:314
+#: order/models.py:1224 order/models.py:1409 order/serializers.py:1224
+#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314
msgid "Shipment"
msgstr ""
-#: order/models.py:1221
+#: order/models.py:1225
msgid "Shipment number"
msgstr ""
-#: order/models.py:1225
+#: order/models.py:1229
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1231
+#: order/models.py:1235
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1232
+#: order/models.py:1236
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1239
+#: order/models.py:1243
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1240
+#: order/models.py:1244
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1258
+#: order/models.py:1262
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1261
+#: order/models.py:1265
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1364 order/models.py:1366
+#: order/models.py:1368 order/models.py:1370
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1370
+#: order/models.py:1374
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1372
+#: order/models.py:1376
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1375
+#: order/models.py:1379
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1385 order/serializers.py:1066
+#: order/models.py:1389 order/serializers.py:1086
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1388
+#: order/models.py:1392
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1389
+#: order/models.py:1393
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1397
+#: order/models.py:1401
msgid "Line"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1410
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1419 templates/js/translated/notification.js:55
+#: order/models.py:1423 templates/js/translated/notification.js:55
msgid "Item"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1424
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1423
+#: order/models.py:1427
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3853,111 +3873,119 @@ msgstr ""
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:294
+#: order/serializers.py:209 order/serializers.py:1104
+msgid "Allow order to be closed with incomplete line items"
+msgstr ""
+
+#: order/serializers.py:220 order/serializers.py:1115
+msgid "Order has incomplete line items"
+msgstr ""
+
+#: order/serializers.py:311
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:318
+#: order/serializers.py:335
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:354
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:342
+#: order/serializers.py:359
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:348
+#: order/serializers.py:365
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:349
+#: order/serializers.py:366
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:413 order/serializers.py:1138
+#: order/serializers.py:430 order/serializers.py:1192
msgid "Line Item"
msgstr ""
-#: order/serializers.py:419
+#: order/serializers.py:436
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:429 order/serializers.py:533
+#: order/serializers.py:446 order/serializers.py:553
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:448 templates/js/translated/order.js:1354
+#: order/serializers.py:465 templates/js/translated/order.js:1497
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:456 templates/js/translated/order.js:1365
+#: order/serializers.py:473 templates/js/translated/order.js:1508
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:469
+#: order/serializers.py:486
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:470
+#: order/serializers.py:487
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:484
+#: order/serializers.py:501
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:507
+#: order/serializers.py:527
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:549
+#: order/serializers.py:569
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:566
+#: order/serializers.py:586
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:577
+#: order/serializers.py:597
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:883
+#: order/serializers.py:903
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:964
+#: order/serializers.py:984
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1027 order/serializers.py:1147
+#: order/serializers.py:1047 order/serializers.py:1201
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1049
+#: order/serializers.py:1069
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1160
+#: order/serializers.py:1214
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1182 order/serializers.py:1302
+#: order/serializers.py:1236 order/serializers.py:1356
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1185 order/serializers.py:1305
+#: order/serializers.py:1239 order/serializers.py:1359
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1235
+#: order/serializers.py:1289
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1245
+#: order/serializers.py:1299
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3993,83 +4021,83 @@ msgstr ""
msgid "Order actions"
msgstr ""
-#: order/templates/order/order_base.html:45
+#: order/templates/order/order_base.html:46
#: order/templates/order/sales_order_base.html:58
msgid "Edit order"
msgstr ""
-#: order/templates/order/order_base.html:47
+#: order/templates/order/order_base.html:50
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr ""
-#: order/templates/order/order_base.html:50
+#: order/templates/order/order_base.html:55
msgid "Duplicate order"
msgstr ""
-#: order/templates/order/order_base.html:55
+#: order/templates/order/order_base.html:61
msgid "Place order"
msgstr ""
-#: order/templates/order/order_base.html:59
+#: order/templates/order/order_base.html:65
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:61
+#: order/templates/order/order_base.html:67
#: order/templates/order/purchase_order_detail.html:30
msgid "Receive Items"
msgstr ""
-#: order/templates/order/order_base.html:63
+#: order/templates/order/order_base.html:69
msgid "Mark order as complete"
msgstr ""
-#: order/templates/order/order_base.html:65
+#: order/templates/order/order_base.html:71
#: order/templates/order/sales_order_base.html:68
msgid "Complete Order"
msgstr ""
-#: order/templates/order/order_base.html:87
+#: order/templates/order/order_base.html:93
#: order/templates/order/sales_order_base.html:80
msgid "Order Reference"
msgstr ""
-#: order/templates/order/order_base.html:92
+#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:85
msgid "Order Description"
msgstr ""
-#: order/templates/order/order_base.html:97
+#: order/templates/order/order_base.html:103
#: order/templates/order/sales_order_base.html:90
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:120
+#: order/templates/order/order_base.html:126
msgid "No suppplier information available"
msgstr ""
-#: order/templates/order/order_base.html:133
+#: order/templates/order/order_base.html:139
#: order/templates/order/sales_order_base.html:129
msgid "Completed Line Items"
msgstr ""
-#: order/templates/order/order_base.html:139
+#: order/templates/order/order_base.html:145
#: order/templates/order/sales_order_base.html:135
#: order/templates/order/sales_order_base.html:145
msgid "Incomplete"
msgstr ""
-#: order/templates/order/order_base.html:158
+#: order/templates/order/order_base.html:164
#: report/templates/report/inventree_build_order_base.html:121
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:186
+#: order/templates/order/order_base.html:192
#: order/templates/order/sales_order_base.html:190
msgid "Total cost"
msgstr ""
-#: order/templates/order/order_base.html:190
+#: order/templates/order/order_base.html:196
#: order/templates/order/sales_order_base.html:194
msgid "Total cost could not be calculated"
msgstr ""
@@ -4102,8 +4130,8 @@ msgstr ""
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463
#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015
-#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443
-#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625
+#: templates/js/translated/order.js:1084 templates/js/translated/order.js:1586
+#: templates/js/translated/order.js:3097 templates/js/translated/stock.js:625
#: templates/js/translated/stock.js:793
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
@@ -4139,7 +4167,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:26
#: order/templates/order/sales_order_detail.html:22
#: order/templates/order/sales_order_detail.html:255
-#: templates/js/translated/order.js:663
+#: templates/js/translated/order.js:728
msgid "Add Line Item"
msgstr ""
@@ -4167,7 +4195,7 @@ msgstr ""
msgid "Order Notes"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:228
+#: order/templates/order/purchase_order_detail.html:232
msgid "Add Order Line"
msgstr ""
@@ -4185,12 +4213,12 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:231
+#: templates/js/translated/order.js:232
msgid "Complete Shipments"
msgstr ""
#: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:258
+#: templates/js/translated/order.js:397
msgid "Complete Sales Order"
msgstr ""
@@ -4199,7 +4227,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2632
+#: templates/js/translated/order.js:2826
msgid "Customer Reference"
msgstr ""
@@ -4223,7 +4251,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:72
-#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1116
#: templates/js/translated/build.js:1923
msgid "Actions"
msgstr ""
@@ -4308,14 +4336,14 @@ msgid "Total Stock"
msgstr ""
#: part/bom.py:129 part/templates/part/part_base.html:189
-#: templates/js/translated/order.js:3724
+#: templates/js/translated/order.js:3918
msgid "Available Stock"
msgstr ""
#: part/bom.py:130 part/templates/part/part_base.html:207
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853
-#: templates/js/translated/part.js:590 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503
+#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1853
+#: templates/js/translated/part.js:588 templates/js/translated/part.js:608
+#: templates/js/translated/part.js:1337 templates/js/translated/part.js:1520
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr ""
@@ -4344,7 +4372,7 @@ msgstr ""
msgid "Icon (optional)"
msgstr ""
-#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16
+#: part/models.py:122 part/models.py:2516 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -4361,7 +4389,7 @@ msgstr ""
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146
+#: templates/js/translated/part.js:2004 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr ""
@@ -4391,7 +4419,7 @@ msgstr ""
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:745 part/models.py:2562
+#: part/models.py:745 part/models.py:2570
msgid "Part name"
msgstr ""
@@ -4424,11 +4452,11 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:783 part/models.py:2257 part/models.py:2507
+#: part/models.py:783 part/models.py:2265 part/models.py:2515
#: part/templates/part/part_base.html:257
#: templates/InvenTree/settings/settings.html:232
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688
+#: templates/js/translated/part.js:1477 templates/js/translated/part.js:1717
msgid "Category"
msgstr ""
@@ -4437,7 +4465,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:789 part/templates/part/part_base.html:266
-#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:1430
#: templates/js/translated/stock.js:1726
msgid "IPN"
msgstr ""
@@ -4451,7 +4479,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:797 part/templates/part/part_base.html:273
-#: report/models.py:171 templates/js/translated/part.js:743
+#: report/models.py:171 templates/js/translated/part.js:741
msgid "Revision"
msgstr ""
@@ -4543,245 +4571,245 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2304
+#: part/models.py:2312
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2321
+#: part/models.py:2329
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2341 templates/js/translated/part.js:2026
+#: part/models.py:2349 templates/js/translated/part.js:2055
#: templates/js/translated/stock.js:1340
msgid "Test Name"
msgstr ""
-#: part/models.py:2342
+#: part/models.py:2350
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2347
+#: part/models.py:2355
msgid "Test Description"
msgstr ""
-#: part/models.py:2348
+#: part/models.py:2356
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2353 templates/js/translated/part.js:2035
+#: part/models.py:2361 templates/js/translated/part.js:2064
#: templates/js/translated/table_filters.js:302
msgid "Required"
msgstr ""
-#: part/models.py:2354
+#: part/models.py:2362
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2359 templates/js/translated/part.js:2043
+#: part/models.py:2367 templates/js/translated/part.js:2072
msgid "Requires Value"
msgstr ""
-#: part/models.py:2360
+#: part/models.py:2368
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2365 templates/js/translated/part.js:2050
+#: part/models.py:2373 templates/js/translated/part.js:2079
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2366
+#: part/models.py:2374
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2374
+#: part/models.py:2382
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2410
+#: part/models.py:2418
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2418
+#: part/models.py:2426
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2433
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2430
+#: part/models.py:2438
msgid "Parameter description"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2471
msgid "Parent Part"
msgstr ""
-#: part/models.py:2465 part/models.py:2513 part/models.py:2514
+#: part/models.py:2473 part/models.py:2521 part/models.py:2522
#: templates/InvenTree/settings/settings.html:227
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Data"
msgstr ""
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2518 templates/InvenTree/settings/settings.html:236
+#: part/models.py:2526 templates/InvenTree/settings/settings.html:236
msgid "Default Value"
msgstr ""
-#: part/models.py:2519
+#: part/models.py:2527
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2554
+#: part/models.py:2562
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2557 templates/js/translated/model_renderers.js:212
+#: part/models.py:2565 templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr ""
-#: part/models.py:2558
+#: part/models.py:2566
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2561
+#: part/models.py:2569
msgid "Part Name"
msgstr ""
-#: part/models.py:2565
+#: part/models.py:2573
msgid "Part IPN"
msgstr ""
-#: part/models.py:2566
+#: part/models.py:2574
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2569
+#: part/models.py:2577
msgid "Level"
msgstr ""
-#: part/models.py:2570
+#: part/models.py:2578
msgid "BOM level"
msgstr ""
-#: part/models.py:2639
+#: part/models.py:2647
msgid "Select parent part"
msgstr ""
-#: part/models.py:2647
+#: part/models.py:2655
msgid "Sub part"
msgstr ""
-#: part/models.py:2648
+#: part/models.py:2656
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2654
+#: part/models.py:2662
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2656 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997
+#: part/models.py:2664 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:876 templates/js/translated/bom.js:1005
#: templates/js/translated/table_filters.js:100
msgid "Optional"
msgstr ""
-#: part/models.py:2656
+#: part/models.py:2664
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2659 part/templates/part/upload_bom.html:55
+#: part/models.py:2667 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2660
+#: part/models.py:2668
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2671
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2666
+#: part/models.py:2674
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "Checksum"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2672 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1014
+#: part/models.py:2680 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:1022
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:96
msgid "Inherited"
msgstr ""
-#: part/models.py:2673
+#: part/models.py:2681
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2678 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1006
+#: part/models.py:2686 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:1014
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2679
+#: part/models.py:2687
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2757 stock/models.py:468
+#: part/models.py:2765 stock/models.py:468
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2766 part/models.py:2768
+#: part/models.py:2774 part/models.py:2776
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2873
+#: part/models.py:2881
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2902
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2915
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2923
msgid "Substitute part"
msgstr ""
-#: part/models.py:2930
+#: part/models.py:2938
msgid "Part 1"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Part 2"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2960
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:2956
+#: part/models.py:2964
msgid "Duplicate relationship already exists"
msgstr ""
@@ -5309,10 +5337,10 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:624
-#: templates/js/translated/company.js:884
+#: templates/js/translated/company.js:659
+#: templates/js/translated/company.js:920
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:654 templates/js/translated/part.js:731
+#: templates/js/translated/part.js:652 templates/js/translated/part.js:729
msgid "Inactive"
msgstr ""
@@ -5327,28 +5355,28 @@ msgid "This part is a variant of %(link)s"
msgstr ""
#: part/templates/part/part_base.html:194
-#: templates/js/translated/company.js:974
+#: templates/js/translated/company.js:1027
#: templates/js/translated/table_filters.js:201
msgid "In Stock"
msgstr ""
#: part/templates/part/part_base.html:215
-#: stock/templates/stock/item_base.html:379
+#: stock/templates/stock/item_base.html:382
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:224
-#: stock/templates/stock/item_base.html:372
+#: stock/templates/stock/item_base.html:375
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1043
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320
-#: templates/js/translated/part.js:1510
+#: part/templates/part/part_base.html:238 templates/js/translated/part.js:591
+#: templates/js/translated/part.js:611 templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1527
msgid "Building"
msgstr ""
@@ -5361,7 +5389,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:328
+#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
@@ -5400,7 +5428,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:989
+#: templates/js/translated/bom.js:997
msgid "No supplier pricing available"
msgstr ""
@@ -5439,7 +5467,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:53
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468
+#: templates/js/translated/order.js:2001 templates/js/translated/stock.js:2464
msgid "Date"
msgstr ""
@@ -5495,7 +5523,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983
+#: part/templates/part/prices.html:160 templates/js/translated/bom.js:991
msgid "Supplier Cost"
msgstr ""
@@ -5533,8 +5561,8 @@ msgstr ""
msgid "No sale pice history available for this part."
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616
-#: templates/js/translated/part.js:1308
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:614
+#: templates/js/translated/part.js:1329 templates/js/translated/part.js:1331
msgid "No Stock"
msgstr ""
@@ -5735,19 +5763,19 @@ msgstr ""
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:186
+#: plugin/models.py:188
msgid "Plugin"
msgstr ""
-#: plugin/models.py:249
+#: plugin/models.py:253
msgid "Method"
msgstr ""
-#: plugin/plugin.py:251
+#: plugin/plugin.py:252
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:263
+#: plugin/plugin.py:264
msgid "No date found"
msgstr ""
@@ -5925,12 +5953,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:648 stock/templates/stock/item_base.html:317
+#: stock/models.py:648 stock/templates/stock/item_base.html:320
#: templates/js/translated/build.js:456 templates/js/translated/build.js:608
#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706
#: templates/js/translated/model_renderers.js:118
-#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403
-#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490
+#: templates/js/translated/order.js:121 templates/js/translated/order.js:3597
+#: templates/js/translated/order.js:3684 templates/js/translated/stock.js:490
msgid "Serial Number"
msgstr ""
@@ -5963,7 +5991,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780
-#: templates/js/translated/stock.js:2717
+#: templates/js/translated/stock.js:2713
msgid "Serial"
msgstr ""
@@ -5980,7 +6008,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
#: stock/models.py:89 stock/models.py:739
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:250
msgid "Owner"
msgstr ""
@@ -6046,7 +6074,7 @@ msgstr ""
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:631 stock/templates/stock/item_base.html:356
+#: stock/models.py:631 stock/templates/stock/item_base.html:359
msgid "Installed In"
msgstr ""
@@ -6086,8 +6114,8 @@ msgstr ""
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:706 stock/templates/stock/item_base.html:424
-#: templates/js/translated/stock.js:1883
+#: stock/models.py:706 stock/templates/stock/item_base.html:427
+#: templates/js/translated/stock.js:1879
msgid "Expiry Date"
msgstr ""
@@ -6379,7 +6407,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2857
msgid "Install Stock Item"
msgstr ""
@@ -6479,134 +6507,135 @@ msgstr ""
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:158
+#: stock/templates/stock/item_base.html:161
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:193
+#: stock/templates/stock/item_base.html:196
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:214
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:254
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/location.html:132
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:268
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:266
+#: stock/templates/stock/item_base.html:269
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:279
+#: stock/templates/stock/item_base.html:282
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:290
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:298
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:301
+#: stock/templates/stock/item_base.html:304
msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
msgstr ""
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:345
+#: stock/templates/stock/item_base.html:348
msgid "Available Quantity"
msgstr ""
-#: stock/templates/stock/item_base.html:389
+#: stock/templates/stock/item_base.html:392
#: templates/js/translated/build.js:1729
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:404
+#: stock/templates/stock/item_base.html:407
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#: templates/js/translated/table_filters.js:269
msgid "Expired"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:275
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:437
-#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899
+#: stock/templates/stock/item_base.html:440
+#: templates/js/translated/company.js:1038
+#: templates/js/translated/stock.js:1895
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:442
+#: stock/templates/stock/item_base.html:445
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:516
+#: stock/templates/stock/item_base.html:519
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:589
+#: stock/templates/stock/item_base.html:592
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:592
+#: stock/templates/stock/item_base.html:595
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:593
+#: stock/templates/stock/item_base.html:596
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:601
+#: stock/templates/stock/item_base.html:604
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:629
+#: stock/templates/stock/item_base.html:632
msgid "Return to Stock"
msgstr ""
@@ -6739,11 +6768,11 @@ msgstr ""
msgid "Refer to the error log in the admin interface for further details"
msgstr ""
-#: templates/503.html:11 templates/503.html:36
+#: templates/503.html:11 templates/503.html:34
msgid "Site is in Maintenance"
msgstr ""
-#: templates/503.html:42
+#: templates/503.html:40
msgid "The site is currently in maintenance and should be up again soon!"
msgstr ""
@@ -7509,7 +7538,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:644
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "אשר"
@@ -7728,7 +7757,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1481
+#: templates/js/translated/bom.js:1489
msgid "Required Quantity"
msgstr ""
@@ -7742,7 +7771,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2522
+#: templates/js/translated/part.js:2551
msgid "Minimum Quantity"
msgstr ""
@@ -7947,7 +7976,7 @@ msgstr ""
#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620
#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601
#: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003
-#: templates/js/translated/order.js:1085 templates/modals.html:15
+#: templates/js/translated/order.js:1179 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -7957,12 +7986,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145
+#: templates/js/translated/order.js:960 templates/js/translated/tables.js:145
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:867
+#: templates/js/translated/order.js:961
msgid "Select file format"
msgstr ""
@@ -8058,73 +8087,73 @@ msgstr ""
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857
-#: templates/js/translated/order.js:3738
+#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1857
+#: templates/js/translated/order.js:3932
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861
+#: templates/js/translated/bom.js:940 templates/js/translated/build.js:1861
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516
+#: templates/js/translated/bom.js:942 templates/js/translated/build.js:1863
+#: templates/js/translated/part.js:761 templates/js/translated/part.js:1533
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865
+#: templates/js/translated/bom.js:944 templates/js/translated/build.js:1865
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:954
+#: templates/js/translated/bom.js:962
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:969
+#: templates/js/translated/bom.js:977
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:976
+#: templates/js/translated/bom.js:984
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145
+#: templates/js/translated/bom.js:1033 templates/js/translated/bom.js:1153
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1052
+#: templates/js/translated/bom.js:1060
msgid "Including On Order"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1124
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1118
+#: templates/js/translated/bom.js:1126
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1120
+#: templates/js/translated/bom.js:1128
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284
+#: templates/js/translated/bom.js:1130 templates/js/translated/bom.js:1292
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1124
+#: templates/js/translated/bom.js:1132
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650
+#: templates/js/translated/bom.js:1228 templates/js/translated/build.js:1650
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789
+#: templates/js/translated/bom.js:1472 templates/js/translated/build.js:1789
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1486
+#: templates/js/translated/bom.js:1498
msgid "Inherited from parent BOM"
msgstr ""
@@ -8267,12 +8296,12 @@ msgid "No required tests for this build"
msgstr ""
#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697
-#: templates/js/translated/order.js:3438
+#: templates/js/translated/order.js:3632
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698
-#: templates/js/translated/order.js:3439
+#: templates/js/translated/order.js:3633
msgid "Delete stock allocation"
msgstr ""
@@ -8292,20 +8321,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745
+#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3939
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743
+#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3937
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127
-#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757
+#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3951
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837
+#: templates/js/translated/build.js:1930 templates/js/translated/order.js:4031
msgid "Build stock"
msgstr ""
@@ -8313,21 +8342,21 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830
+#: templates/js/translated/build.js:1937 templates/js/translated/order.js:4024
msgid "Allocate stock"
msgstr ""
#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965
+#: templates/js/translated/order.js:1007 templates/js/translated/order.js:3159
#: templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966
+#: templates/js/translated/build.js:1977 templates/js/translated/order.js:3160
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914
+#: templates/js/translated/build.js:2026 templates/js/translated/order.js:3108
msgid "Specify stock allocation quantity"
msgstr ""
@@ -8339,7 +8368,7 @@ msgstr ""
msgid "All selected parts have been fully allocated"
msgstr ""
-#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980
+#: templates/js/translated/build.js:2115 templates/js/translated/order.js:3174
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
@@ -8347,11 +8376,11 @@ msgstr ""
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077
+#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3271
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154
+#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3348
msgid "No matching stock items"
msgstr ""
@@ -8383,9 +8412,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401
-#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1422
+#: templates/js/translated/part.js:1948 templates/js/translated/stock.js:1686
+#: templates/js/translated/stock.js:2382
msgid "Select"
msgstr ""
@@ -8397,7 +8426,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647
+#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2643
msgid "No user information"
msgstr ""
@@ -8405,111 +8434,115 @@ msgstr ""
msgid "No parts allocated for"
msgstr ""
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:179
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:181
msgid "Add Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
msgid "Edit Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:167 templates/js/translated/order.js:511
+#: templates/js/translated/company.js:169 templates/js/translated/order.js:576
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:195 templates/js/translated/order.js:734
+#: templates/js/translated/company.js:197 templates/js/translated/order.js:828
msgid "Add Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:262
+#: templates/js/translated/company.js:297
msgid "All selected supplier parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:278
+#: templates/js/translated/company.js:313
msgid "Delete Supplier Parts"
msgstr ""
-#: templates/js/translated/company.js:350
+#: templates/js/translated/company.js:385
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:427
+#: templates/js/translated/company.js:462
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:471
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:451
+#: templates/js/translated/company.js:486
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:492
+#: templates/js/translated/company.js:527
msgid "All selected manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:507
+#: templates/js/translated/company.js:542
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:541
+#: templates/js/translated/company.js:576
msgid "All selected parameters will be deleted"
msgstr ""
-#: templates/js/translated/company.js:555
+#: templates/js/translated/company.js:590
msgid "Delete Parameters"
msgstr ""
-#: templates/js/translated/company.js:596
+#: templates/js/translated/company.js:631
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:616
-#: templates/js/translated/company.js:876 templates/js/translated/part.js:638
-#: templates/js/translated/part.js:723
+#: templates/js/translated/company.js:651
+#: templates/js/translated/company.js:912 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:721
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:620
-#: templates/js/translated/company.js:880 templates/js/translated/part.js:642
-#: templates/js/translated/part.js:727
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:916 templates/js/translated/part.js:640
+#: templates/js/translated/part.js:725
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:748 templates/js/translated/part.js:830
+#: templates/js/translated/company.js:783 templates/js/translated/part.js:828
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:785 templates/js/translated/part.js:872
+#: templates/js/translated/company.js:820 templates/js/translated/part.js:870
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:786 templates/js/translated/part.js:873
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:871
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:805 templates/js/translated/part.js:890
+#: templates/js/translated/company.js:840 templates/js/translated/part.js:888
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:816 templates/js/translated/part.js:902
+#: templates/js/translated/company.js:851 templates/js/translated/part.js:900
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:856
+#: templates/js/translated/company.js:891
msgid "No supplier parts found"
msgstr ""
-#: templates/js/translated/company.js:1002
+#: templates/js/translated/company.js:1032
+msgid "Availability"
+msgstr ""
+
+#: templates/js/translated/company.js:1055
msgid "Edit supplier part"
msgstr ""
-#: templates/js/translated/company.js:1003
+#: templates/js/translated/company.js:1056
msgid "Delete supplier part"
msgstr ""
@@ -8547,61 +8580,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:367 templates/js/translated/forms.js:382
-#: templates/js/translated/forms.js:396 templates/js/translated/forms.js:410
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:369
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:384
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:398
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:670
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:771
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1269 templates/modals.html:19
+#: templates/js/translated/forms.js:1274 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1702
+#: templates/js/translated/forms.js:1707
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1917 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2170
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2648
+#: templates/js/translated/forms.js:2653
msgid "Select Columns"
msgstr ""
@@ -8792,409 +8825,422 @@ msgstr ""
msgid "Notifications will load here"
msgstr ""
-#: templates/js/translated/order.js:96
+#: templates/js/translated/order.js:97
msgid "No stock items have been allocated to this shipment"
msgstr ""
-#: templates/js/translated/order.js:101
+#: templates/js/translated/order.js:102
msgid "The following stock items will be shipped"
msgstr ""
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:142
msgid "Complete Shipment"
msgstr ""
-#: templates/js/translated/order.js:161
+#: templates/js/translated/order.js:162
msgid "Confirm Shipment"
msgstr ""
-#: templates/js/translated/order.js:217
+#: templates/js/translated/order.js:218
msgid "No pending shipments found"
msgstr ""
-#: templates/js/translated/order.js:221
+#: templates/js/translated/order.js:222
msgid "No stock items have been allocated to pending shipments"
msgstr ""
-#: templates/js/translated/order.js:253
+#: templates/js/translated/order.js:254
msgid "Skip"
msgstr ""
-#: templates/js/translated/order.js:283
+#: templates/js/translated/order.js:284
msgid "Complete Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:289
+#: templates/js/translated/order.js:301 templates/js/translated/order.js:413
msgid "Mark this order as complete?"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:307
msgid "All line items have been received"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:312
msgid "This order has line items which have not been marked as received."
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:313 templates/js/translated/order.js:427
msgid "Completing this order means that the order and line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:324
+#: templates/js/translated/order.js:336
msgid "Cancel Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:329
+#: templates/js/translated/order.js:341
msgid "Are you sure you wish to cancel this purchase order?"
msgstr ""
-#: templates/js/translated/order.js:335
+#: templates/js/translated/order.js:347
msgid "This purchase order can not be cancelled"
msgstr ""
-#: templates/js/translated/order.js:358
+#: templates/js/translated/order.js:370
msgid "Issue Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:363
+#: templates/js/translated/order.js:375
msgid "After placing this purchase order, line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:385
+#: templates/js/translated/order.js:426
+msgid "This order has line items which have not been completed."
+msgstr ""
+
+#: templates/js/translated/order.js:450
msgid "Cancel Sales Order"
msgstr ""
-#: templates/js/translated/order.js:390
+#: templates/js/translated/order.js:455
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:444
+#: templates/js/translated/order.js:509
msgid "Create New Shipment"
msgstr ""
-#: templates/js/translated/order.js:469
+#: templates/js/translated/order.js:534
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:494
+#: templates/js/translated/order.js:559
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:555
+#: templates/js/translated/order.js:620
msgid "Select purchase order to duplicate"
msgstr ""
-#: templates/js/translated/order.js:562
+#: templates/js/translated/order.js:627
msgid "Duplicate Line Items"
msgstr ""
-#: templates/js/translated/order.js:563
+#: templates/js/translated/order.js:628
msgid "Duplicate all line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:570
+#: templates/js/translated/order.js:635
msgid "Duplicate Extra Lines"
msgstr ""
-#: templates/js/translated/order.js:571
+#: templates/js/translated/order.js:636
msgid "Duplicate extra line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:588
+#: templates/js/translated/order.js:653
msgid "Edit Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:605
+#: templates/js/translated/order.js:670
msgid "Duplication Options"
msgstr ""
-#: templates/js/translated/order.js:863
+#: templates/js/translated/order.js:957
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:914
+#: templates/js/translated/order.js:1008
msgid "At least one purchaseable part must be selected"
msgstr ""
-#: templates/js/translated/order.js:939
+#: templates/js/translated/order.js:1033
msgid "Quantity to order"
msgstr ""
-#: templates/js/translated/order.js:948
+#: templates/js/translated/order.js:1042
msgid "New supplier part"
msgstr ""
-#: templates/js/translated/order.js:966
+#: templates/js/translated/order.js:1060
msgid "New purchase order"
msgstr ""
-#: templates/js/translated/order.js:999
+#: templates/js/translated/order.js:1093
msgid "Add to purchase order"
msgstr ""
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1233
msgid "No matching supplier parts"
msgstr ""
-#: templates/js/translated/order.js:1123
+#: templates/js/translated/order.js:1252
msgid "No matching purchase orders"
msgstr ""
-#: templates/js/translated/order.js:1300
+#: templates/js/translated/order.js:1429
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1430
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420
+#: templates/js/translated/order.js:1450 templates/js/translated/order.js:1563
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431
+#: templates/js/translated/order.js:1456 templates/js/translated/order.js:1574
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1339
+#: templates/js/translated/order.js:1471
+msgid "Received Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:1482
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144
+#: templates/js/translated/order.js:1546 templates/js/translated/stock.js:2140
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:1494
+#: templates/js/translated/order.js:1639
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:1495
+#: templates/js/translated/order.js:1640
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:1497
+#: templates/js/translated/order.js:1642
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:1516
+#: templates/js/translated/order.js:1661
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:1517
+#: templates/js/translated/order.js:1662
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943
+#: templates/js/translated/order.js:1940 templates/js/translated/part.js:941
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2803
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674
-#: templates/js/translated/order.js:2815
+#: templates/js/translated/order.js:2017 templates/js/translated/order.js:2868
+#: templates/js/translated/order.js:3009
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889
+#: templates/js/translated/order.js:2115 templates/js/translated/order.js:4083
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911
+#: templates/js/translated/order.js:2132 templates/js/translated/order.js:4105
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:4116
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:2026
+#: templates/js/translated/order.js:2188
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:2215 templates/js/translated/order.js:3817
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309
-#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156
-#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753
+#: templates/js/translated/order.js:2270 templates/js/translated/part.js:1043
+#: templates/js/translated/part.js:1095
+msgid "Total Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:2301 templates/js/translated/order.js:2503
+#: templates/js/translated/order.js:3842 templates/js/translated/order.js:4350
+#: templates/js/translated/part.js:2184 templates/js/translated/part.js:2782
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325
-#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172
+#: templates/js/translated/order.js:2316 templates/js/translated/order.js:2519
+#: templates/js/translated/order.js:3858 templates/js/translated/order.js:4366
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706
-#: templates/js/translated/part.js:1070
+#: templates/js/translated/order.js:2357 templates/js/translated/order.js:3900
+#: templates/js/translated/part.js:1079
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110
+#: templates/js/translated/order.js:2416 templates/js/translated/part.js:1130
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2420 templates/js/translated/order.js:4037
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844
+#: templates/js/translated/order.js:2421 templates/js/translated/order.js:4038
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848
+#: templates/js/translated/order.js:2422 templates/js/translated/order.js:4042
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221
+#: templates/js/translated/order.js:2568 templates/js/translated/order.js:4415
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222
+#: templates/js/translated/order.js:2569 templates/js/translated/order.js:4416
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223
+#: templates/js/translated/order.js:2570 templates/js/translated/order.js:4417
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253
+#: templates/js/translated/order.js:2600 templates/js/translated/order.js:4447
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274
+#: templates/js/translated/order.js:2621 templates/js/translated/order.js:4468
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285
+#: templates/js/translated/order.js:2632 templates/js/translated/order.js:4479
msgid "Delete Line"
msgstr ""
-#: templates/js/translated/order.js:2449
+#: templates/js/translated/order.js:2643
msgid "No matching line"
msgstr ""
-#: templates/js/translated/order.js:2560
+#: templates/js/translated/order.js:2754
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:2623
+#: templates/js/translated/order.js:2817
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:2721
+#: templates/js/translated/order.js:2915
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:2724
+#: templates/js/translated/order.js:2918
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:2729
+#: templates/js/translated/order.js:2923
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:2749
+#: templates/js/translated/order.js:2943
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:2766
+#: templates/js/translated/order.js:2960
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:2800
+#: templates/js/translated/order.js:2994
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:2810
+#: templates/js/translated/order.js:3004
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:2834
+#: templates/js/translated/order.js:3028
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:2840
+#: templates/js/translated/order.js:3034
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:2844
+#: templates/js/translated/order.js:3038
msgid "Invoice"
msgstr ""
-#: templates/js/translated/order.js:3013
+#: templates/js/translated/order.js:3207
msgid "Add Shipment"
msgstr ""
-#: templates/js/translated/order.js:3064
+#: templates/js/translated/order.js:3258
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/order.js:3065
+#: templates/js/translated/order.js:3259
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:3273
+#: templates/js/translated/order.js:3467
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:3352
+#: templates/js/translated/order.js:3546
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3369
+#: templates/js/translated/order.js:3563
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:3370
+#: templates/js/translated/order.js:3564
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504
+#: templates/js/translated/order.js:3609 templates/js/translated/order.js:3698
#: templates/js/translated/stock.js:1602
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513
+#: templates/js/translated/order.js:3617 templates/js/translated/order.js:3707
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3827
+#: templates/js/translated/order.js:4021
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3833
+#: templates/js/translated/order.js:4027
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038
+#: templates/js/translated/order.js:4034 templates/js/translated/order.js:4232
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3852
+#: templates/js/translated/order.js:4046
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3855
+#: templates/js/translated/order.js:4049
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3937
+#: templates/js/translated/order.js:4131
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:4046
+#: templates/js/translated/order.js:4240
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:4060
+#: templates/js/translated/order.js:4254
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4296
+#: templates/js/translated/order.js:4490
msgid "No matching lines"
msgstr ""
@@ -9374,173 +9420,177 @@ msgstr ""
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498
+#: templates/js/translated/part.js:584 templates/js/translated/part.js:1515
#: templates/js/translated/table_filters.js:468
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:596
+#: templates/js/translated/part.js:594
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:715
+#: templates/js/translated/part.js:628 templates/js/translated/part.js:713
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:634 templates/js/translated/part.js:719
+#: templates/js/translated/part.js:632 templates/js/translated/part.js:717
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:646
+#: templates/js/translated/part.js:644
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:650
+#: templates/js/translated/part.js:648
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:778
+#: templates/js/translated/part.js:776
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1180
+#: templates/js/translated/part.js:1200
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1204
+#: templates/js/translated/part.js:1224
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573
+#: templates/js/translated/part.js:1291 templates/js/translated/part.js:1602
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1310
-msgid "Not available"
-msgstr ""
-
-#: templates/js/translated/part.js:1461
+#: templates/js/translated/part.js:1482
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1496
+#: templates/js/translated/part.js:1513
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840
-#: templates/js/translated/stock.js:2347
+#: templates/js/translated/part.js:1537
+msgid "Allocated to build orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1541
+msgid "Allocated to sales orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1626 templates/js/translated/part.js:1869
+#: templates/js/translated/stock.js:2343
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1613
+#: templates/js/translated/part.js:1642
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1679
+#: templates/js/translated/part.js:1708
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1684
+#: templates/js/translated/part.js:1713
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:1689
+#: templates/js/translated/part.js:1718
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1702
+#: templates/js/translated/part.js:1731
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366
+#: templates/js/translated/part.js:1888 templates/js/translated/stock.js:2362
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1938
+#: templates/js/translated/part.js:1967
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:1954
+#: templates/js/translated/part.js:1983
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2012
+#: templates/js/translated/part.js:2041
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299
+#: templates/js/translated/part.js:2092 templates/js/translated/stock.js:1299
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300
+#: templates/js/translated/part.js:2093 templates/js/translated/stock.js:1300
#: templates/js/translated/stock.js:1560
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2070
+#: templates/js/translated/part.js:2099
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2092
+#: templates/js/translated/part.js:2121
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2106
+#: templates/js/translated/part.js:2135
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2131
+#: templates/js/translated/part.js:2160
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:2188
+#: templates/js/translated/part.js:2217
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2189
+#: templates/js/translated/part.js:2218
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355
+#: templates/js/translated/part.js:2383 templates/js/translated/part.js:2384
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2357
+#: templates/js/translated/part.js:2386
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2363
+#: templates/js/translated/part.js:2392
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2413
+#: templates/js/translated/part.js:2442
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2419
+#: templates/js/translated/part.js:2448
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2515
+#: templates/js/translated/part.js:2544
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2531
+#: templates/js/translated/part.js:2560
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2576
+#: templates/js/translated/part.js:2605
msgid "Minimum Stock Level"
msgstr ""
-#: templates/js/translated/part.js:2677
+#: templates/js/translated/part.js:2706
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:2696
+#: templates/js/translated/part.js:2725
msgid "Single Price Difference"
msgstr ""
@@ -9778,7 +9828,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:942 users/models.py:216
+#: templates/js/translated/stock.js:942 users/models.py:218
msgid "Add"
msgstr ""
@@ -9854,156 +9904,156 @@ msgstr ""
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1775
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1780
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1787
+#: templates/js/translated/stock.js:1783
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1790
+#: templates/js/translated/stock.js:1786
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1792
+#: templates/js/translated/stock.js:1788
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1794
+#: templates/js/translated/stock.js:1790
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1797
+#: templates/js/translated/stock.js:1793
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1797
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1803
+#: templates/js/translated/stock.js:1799
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1810
+#: templates/js/translated/stock.js:1806
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:1808
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1814
+#: templates/js/translated/stock.js:1810
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1818
+#: templates/js/translated/stock.js:1814
#: templates/js/translated/table_filters.js:196
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1869
+#: templates/js/translated/stock.js:1865
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1948
+#: templates/js/translated/stock.js:1944
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1986
+#: templates/js/translated/stock.js:1982
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2159
+#: templates/js/translated/stock.js:2155
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2173
+#: templates/js/translated/stock.js:2169
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2174
+#: templates/js/translated/stock.js:2170
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2404
+#: templates/js/translated/stock.js:2400
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2493
+#: templates/js/translated/stock.js:2489
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2509
+#: templates/js/translated/stock.js:2505
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2531
+#: templates/js/translated/stock.js:2527
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2550
+#: templates/js/translated/stock.js:2546
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2569
+#: templates/js/translated/stock.js:2565
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2587
+#: templates/js/translated/stock.js:2583
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2610
+#: templates/js/translated/stock.js:2606
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2618
+#: templates/js/translated/stock.js:2614
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2694
+#: templates/js/translated/stock.js:2690
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781
+#: templates/js/translated/stock.js:2741 templates/js/translated/stock.js:2777
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2790
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2815
+#: templates/js/translated/stock.js:2811
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2816
+#: templates/js/translated/stock.js:2812
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2818
+#: templates/js/translated/stock.js:2814
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2819
+#: templates/js/translated/stock.js:2815
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2820
+#: templates/js/translated/stock.js:2816
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2821
+#: templates/js/translated/stock.js:2817
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2834
+#: templates/js/translated/stock.js:2830
msgid "Select part to install"
msgstr ""
@@ -10525,35 +10575,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:203
+#: users/models.py:205
msgid "Permission set"
msgstr ""
-#: users/models.py:211
+#: users/models.py:213
msgid "Group"
msgstr ""
-#: users/models.py:214
+#: users/models.py:216
msgid "View"
msgstr ""
-#: users/models.py:214
+#: users/models.py:216
msgid "Permission to view items"
msgstr ""
-#: users/models.py:216
+#: users/models.py:218
msgid "Permission to add items"
msgstr ""
-#: users/models.py:218
+#: users/models.py:220
msgid "Change"
msgstr ""
-#: users/models.py:218
+#: users/models.py:220
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:222
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/hu/LC_MESSAGES/django.po b/InvenTree/locale/hu/LC_MESSAGES/django.po
index d217f9ed92..8c6d8516b1 100644
--- a/InvenTree/locale/hu/LC_MESSAGES/django.po
+++ b/InvenTree/locale/hu/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-08-25 10:08+0000\n"
-"PO-Revision-Date: 2022-08-26 01:55\n"
+"POT-Creation-Date: 2022-09-09 02:44+0000\n"
+"PO-Revision-Date: 2022-09-09 03:57\n"
"Last-Translator: \n"
"Language-Team: Hungarian\n"
"Language: hu_HU\n"
@@ -29,9 +29,9 @@ msgstr "A hiba részleteit megtalálod az admin panelen"
msgid "Enter date"
msgstr "Dátum megadása"
-#: InvenTree/fields.py:186 build/serializers.py:384
-#: build/templates/build/sidebar.html:21 company/models.py:523
-#: company/templates/company/sidebar.html:25 order/models.py:906
+#: InvenTree/fields.py:183 build/serializers.py:384
+#: build/templates/build/sidebar.html:21 company/models.py:524
+#: company/templates/company/sidebar.html:25 order/models.py:910
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17
#: part/templates/part/part_sidebar.html:59
@@ -40,11 +40,12 @@ msgstr "Dátum megadása"
#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823
#: stock/serializers.py:922 stock/serializers.py:1054
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099
-#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210
-#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859
-#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208
-#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1107
+#: templates/js/translated/company.js:1022
+#: templates/js/translated/order.js:2404 templates/js/translated/order.js:2555
+#: templates/js/translated/order.js:3053 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:4402 templates/js/translated/stock.js:1374
+#: templates/js/translated/stock.js:1976
msgid "Notes"
msgstr "Megjegyzések"
@@ -210,12 +211,12 @@ msgid "Select file to attach"
msgstr "Válaszd ki a mellekelni kívánt fájlt"
#: InvenTree/models.py:402 company/models.py:124 company/models.py:276
-#: company/models.py:510 order/models.py:84 order/models.py:1245
+#: company/models.py:511 order/models.py:84 order/models.py:1249
#: part/models.py:802 part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
-#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848
-#: templates/js/translated/part.js:1534
+#: templates/js/translated/company.js:691
+#: templates/js/translated/company.js:1011
+#: templates/js/translated/order.js:3042 templates/js/translated/part.js:1563
msgid "Link"
msgstr "Link"
@@ -233,12 +234,12 @@ msgstr "Megjegyzés"
msgid "File comment"
msgstr "Leírás, bővebb infó"
-#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665
-#: common/models.py:1666 common/models.py:1889 common/models.py:1890
-#: common/models.py:2152 common/models.py:2153 part/models.py:2239
-#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257
+#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1669
+#: common/models.py:1670 common/models.py:1893 common/models.py:1894
+#: common/models.py:2156 common/models.py:2157 part/models.py:2247
+#: part/models.py:2267 plugin/models.py:260 plugin/models.py:261
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2641
+#: templates/js/translated/stock.js:2637
msgid "User"
msgstr "Felhasználó"
@@ -275,28 +276,28 @@ msgstr "Hiba a fájl átnevezésekor"
msgid "Invalid choice"
msgstr "Érvénytelen választás"
-#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875
+#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1879
#: company/models.py:358 label/models.py:101 part/models.py:746
-#: part/models.py:2417 plugin/models.py:94 report/models.py:152
+#: part/models.py:2425 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin.html:134
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:347
-#: templates/js/translated/company.js:545
-#: templates/js/translated/company.js:758
+#: templates/js/translated/company.js:580
+#: templates/js/translated/company.js:793
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:688 templates/js/translated/part.js:840
-#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392
+#: templates/js/translated/part.js:686 templates/js/translated/part.js:838
+#: templates/js/translated/part.js:1955 templates/js/translated/stock.js:2388
msgid "Name"
msgstr "Név"
#: InvenTree/models.py:544 build/models.py:174
#: build/templates/build/detail.html:24 company/models.py:282
-#: company/models.py:516 company/templates/company/company_base.html:71
+#: company/models.py:517 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:87 label/models.py:108
-#: order/models.py:82 part/models.py:769 part/models.py:2429
+#: company/templates/company/supplier_part.html:92 label/models.py:108
+#: order/models.py:82 part/models.py:769 part/models.py:2437
#: part/templates/part/category.html:80 part/templates/part/part_base.html:167
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
@@ -305,14 +306,14 @@ msgstr "Név"
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/InvenTree/settings/settings.html:358
#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846
-#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409
-#: templates/js/translated/company.js:667
-#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637
-#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167
-#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962
-#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743
-#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478
+#: templates/js/translated/build.js:2512 templates/js/translated/company.js:444
+#: templates/js/translated/company.js:702
+#: templates/js/translated/company.js:986 templates/js/translated/order.js:1988
+#: templates/js/translated/order.js:2220 templates/js/translated/order.js:2831
+#: templates/js/translated/part.js:745 templates/js/translated/part.js:1187
+#: templates/js/translated/part.js:1463 templates/js/translated/part.js:1991
+#: templates/js/translated/part.js:2060 templates/js/translated/stock.js:1743
+#: templates/js/translated/stock.js:2420 templates/js/translated/stock.js:2474
msgid "Description"
msgstr "Leírás"
@@ -325,7 +326,7 @@ msgid "parent"
msgstr "szülő"
#: InvenTree/models.py:560 InvenTree/models.py:561
-#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:2426
msgid "Path"
msgstr "Elérési út"
@@ -337,7 +338,7 @@ msgstr "Kiszolgálóhiba"
msgid "An error has been logged by the server."
msgstr "A kiszolgáló egy hibaüzenetet rögzített."
-#: InvenTree/serializers.py:55 part/models.py:2745
+#: InvenTree/serializers.py:55 part/models.py:2753
msgid "Must be a valid number"
msgstr "Érvényes számnak kell lennie"
@@ -522,7 +523,7 @@ msgid "Placed"
msgstr "Kiküldve"
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr "Kész"
@@ -542,8 +543,8 @@ msgstr "Elveszett"
msgid "Returned"
msgstr "Visszaküldve"
-#: InvenTree/status_codes.py:141 order/models.py:1128
-#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785
+#: InvenTree/status_codes.py:141 order/models.py:1132
+#: templates/js/translated/order.js:3630 templates/js/translated/order.js:3979
msgid "Shipped"
msgstr "Kiszállítva"
@@ -627,7 +628,7 @@ msgstr "Szülő tételből szétválasztva"
msgid "Split child item"
msgstr "Szétválasztott gyermek tétel"
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080
msgid "Merged stock items"
msgstr "Összevont készlet tétel"
@@ -717,7 +718,7 @@ msgstr "Rendszerinformáció"
msgid "About InvenTree"
msgstr "Verzió információk"
-#: build/api.py:217
+#: build/api.py:219
msgid "Build must be cancelled before it can be deleted"
msgstr "A gyártást be kell fejezni a törlés előtt"
@@ -748,15 +749,15 @@ msgstr "Gyártási utasítások"
msgid "Build Order Reference"
msgstr "Gyártási utasítás azonosító"
-#: build/models.py:166 order/models.py:240 order/models.py:623
-#: order/models.py:904 part/models.py:2663
+#: build/models.py:166 order/models.py:240 order/models.py:627
+#: order/models.py:908 part/models.py:2671
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853
-#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089
-#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629
-#: templates/js/translated/order.js:4137
+#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2251
+#: templates/js/translated/order.js:2484 templates/js/translated/order.js:3823
+#: templates/js/translated/order.js:4331
msgid "Reference"
msgstr "Azonosító"
@@ -774,12 +775,12 @@ msgid "BuildOrder to which this build is allocated"
msgstr "Gyártás, amihez ez a gyártás hozzá van rendelve"
#: build/models.py:191 build/templates/build/build_base.html:80
-#: build/templates/build/detail.html:29 company/models.py:670
-#: order/models.py:1001 order/models.py:1112 order/models.py:1113
-#: part/models.py:343 part/models.py:2185 part/models.py:2200
-#: part/models.py:2219 part/models.py:2237 part/models.py:2336
-#: part/models.py:2463 part/models.py:2553 part/models.py:2638
-#: part/models.py:2914 part/serializers.py:814
+#: build/templates/build/detail.html:29 company/models.py:679
+#: order/models.py:1005 order/models.py:1116 order/models.py:1117
+#: part/models.py:343 part/models.py:2193 part/models.py:2208
+#: part/models.py:2227 part/models.py:2245 part/models.py:2344
+#: part/models.py:2471 part/models.py:2561 part/models.py:2646
+#: part/models.py:2922 part/serializers.py:814
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -795,18 +796,18 @@ msgstr "Gyártás, amihez ez a gyártás hozzá van rendelve"
#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800
#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682
#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517
-#: templates/js/translated/company.js:266
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:608
-#: templates/js/translated/company.js:868 templates/js/translated/order.js:105
-#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493
-#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613
-#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224
-#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586
+#: templates/js/translated/company.js:301
+#: templates/js/translated/company.js:531
+#: templates/js/translated/company.js:643
+#: templates/js/translated/company.js:904 templates/js/translated/order.js:106
+#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1638
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:3185
+#: templates/js/translated/order.js:3581 templates/js/translated/order.js:3807
+#: templates/js/translated/part.js:1172 templates/js/translated/part.js:1244
+#: templates/js/translated/part.js:1441 templates/js/translated/stock.js:586
#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504
-#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833
+#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2500
+#: templates/js/translated/stock.js:2695 templates/js/translated/stock.js:2829
msgid "Part"
msgstr "Alkatrész"
@@ -823,7 +824,7 @@ msgid "SalesOrder to which this build is allocated"
msgstr "Vevői rendelés amihez ez a gyártás hozzá van rendelve"
#: build/models.py:213 build/serializers.py:800
-#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979
+#: templates/js/translated/build.js:2114 templates/js/translated/order.js:3173
msgid "Source Location"
msgstr "Forrás hely"
@@ -863,8 +864,8 @@ msgstr "Gyártási állapot"
msgid "Build status code"
msgstr "Gyártás státusz kód"
-#: build/models.py:251 build/serializers.py:225 order/serializers.py:447
-#: stock/models.py:662 templates/js/translated/order.js:1353
+#: build/models.py:251 build/serializers.py:225 order/serializers.py:464
+#: stock/models.py:662 templates/js/translated/order.js:1496
msgid "Batch Code"
msgstr "Batch kód"
@@ -873,11 +874,11 @@ msgid "Batch code for this build output"
msgstr "Batch kód a gyártás kimenetéhez"
#: build/models.py:258 order/models.py:86 part/models.py:938
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2844
msgid "Creation Date"
msgstr "Létrehozás dátuma"
-#: build/models.py:262 order/models.py:648
+#: build/models.py:262 order/models.py:652
msgid "Target completion date"
msgstr "Befejezés cél dátuma"
@@ -904,10 +905,10 @@ msgstr "Felhasználó aki ezt a gyártási utasítást kiállította"
#: build/models.py:289 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:100
-#: order/templates/order/order_base.html:179
+#: order/templates/order/order_base.html:185
#: order/templates/order/sales_order_base.html:183 part/models.py:942
#: report/templates/report/inventree_build_order_base.html:158
-#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860
+#: templates/js/translated/build.js:2574 templates/js/translated/order.js:2022
msgid "Responsible"
msgstr "Felelős"
@@ -917,9 +918,9 @@ msgstr "Felhasználó aki felelős ezért a gyártási utasításért"
#: build/models.py:295 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
-#: company/templates/company/supplier_part.html:153
+#: company/templates/company/supplier_part.html:165
#: part/templates/part/part_base.html:346 stock/models.py:656
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr "Külső link"
@@ -957,11 +958,11 @@ msgstr "Gyártási tételnek meg kell adnia a gyártási kimenetet, mivel a fő
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "A lefoglalt mennyiség ({q}) nem lépheti túl a szabad készletet ({a})"
-#: build/models.py:1188 order/models.py:1379
+#: build/models.py:1188 order/models.py:1383
msgid "Stock item is over-allocated"
msgstr "Készlet túlfoglalva"
-#: build/models.py:1194 order/models.py:1382
+#: build/models.py:1194 order/models.py:1386
msgid "Allocation quantity must be greater than zero"
msgstr "Lefoglalt mennyiségnek nullánál többnek kell lennie"
@@ -973,7 +974,7 @@ msgstr "Egyedi követésre kötelezett tételeknél a menyiség 1 kell legyen"
msgid "Selected stock item not found in BOM"
msgstr "Kiválasztott készlet tétel nem található az alkatrészjegyzékben"
-#: build/models.py:1326 stock/templates/stock/item_base.html:172
+#: build/models.py:1326 stock/templates/stock/item_base.html:175
#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496
#: templates/navbar.html:38
msgid "Build"
@@ -983,18 +984,18 @@ msgstr "Gyártás"
msgid "Build to allocate parts"
msgstr "Gyártás amihez készletet foglaljunk"
-#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015
-#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754
+#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1035
+#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754
#: stock/serializers.py:880 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:197
#: templates/js/translated/build.js:774 templates/js/translated/build.js:779
#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679
-#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992
-#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299
-#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486
+#: templates/js/translated/order.js:107 templates/js/translated/order.js:3186
+#: templates/js/translated/order.js:3488 templates/js/translated/order.js:3493
+#: templates/js/translated/order.js:3588 templates/js/translated/order.js:3680
#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752
-#: templates/js/translated/stock.js:2577
+#: templates/js/translated/stock.js:2573
msgid "Stock Item"
msgstr "Készlet tétel"
@@ -1004,11 +1005,11 @@ msgstr "Forrás készlet tétel"
#: build/models.py:1356 build/serializers.py:193
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1697
-#: company/templates/company/supplier_part.html:279 order/models.py:897
-#: order/models.py:1423 order/serializers.py:1155
+#: build/templates/build/detail.html:34 common/models.py:1701
+#: company/templates/company/supplier_part.html:291 order/models.py:901
+#: order/models.py:1427 order/serializers.py:1209
#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40
-#: part/models.py:2654 part/templates/part/detail.html:951
+#: part/models.py:2662 part/templates/part/detail.html:951
#: part/templates/part/detail.html:1037
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -1017,8 +1018,8 @@ msgstr "Forrás készlet tétel"
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:291 stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
+#: stock/serializers.py:291 stock/templates/stock/item_base.html:290
+#: stock/templates/stock/item_base.html:298
#: templates/email/build_order_completed.html:18
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691
#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458
@@ -1026,16 +1027,16 @@ msgstr "Forrás készlet tétel"
#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708
#: templates/js/translated/build.js:2129
#: templates/js/translated/model_renderers.js:120
-#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043
-#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313
-#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492
-#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143
-#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176
-#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686
-#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458
+#: templates/js/translated/order.js:123 templates/js/translated/order.js:1137
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:2490
+#: templates/js/translated/order.js:3187 templates/js/translated/order.js:3507
+#: templates/js/translated/order.js:3594 templates/js/translated/order.js:3686
+#: templates/js/translated/order.js:3829 templates/js/translated/order.js:4337
+#: templates/js/translated/part.js:1036 templates/js/translated/part.js:2205
+#: templates/js/translated/part.js:2674 templates/js/translated/part.js:2715
+#: templates/js/translated/part.js:2793 templates/js/translated/stock.js:458
#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782
-#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2707
msgid "Quantity"
msgstr "Mennyiség"
@@ -1077,7 +1078,7 @@ msgid "Enter quantity for build output"
msgstr "Add meg a mennyiséget a gyártás kimenetéhez"
#: build/serializers.py:208 build/serializers.py:665 order/models.py:318
-#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545
+#: order/serializers.py:304 order/serializers.py:459 part/serializers.py:545
#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251
#: stock/serializers.py:300
msgid "Quantity must be greater than zero"
@@ -1091,8 +1092,8 @@ msgstr "Egész számú mennyiség szükséges az egyedi követésre kötelezett
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr "Egész számú mennyiség szükséges, mivel az alkatrészjegyzék egyedi követésre kötelezett alkatrészeket tartalmaz"
-#: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159
-#: stock/serializers.py:309 templates/js/translated/order.js:1364
+#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213
+#: stock/serializers.py:309 templates/js/translated/order.js:1507
#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459
msgid "Serial Numbers"
msgstr "Sorozatszámok"
@@ -1117,18 +1118,18 @@ msgstr "A következő sorozatszámok már léteznek"
msgid "A list of build outputs must be provided"
msgstr "A gyártási kimenetek listáját meg kell adni"
-#: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532
+#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552
#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532
#: stock/serializers.py:915 stock/serializers.py:1148
-#: stock/templates/stock/item_base.html:385
+#: stock/templates/stock/item_base.html:388
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786
-#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391
-#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411
-#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500
+#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1534
+#: templates/js/translated/order.js:3500 templates/js/translated/order.js:3605
+#: templates/js/translated/order.js:3613 templates/js/translated/order.js:3694
#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588
#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960
-#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2514
msgid "Location"
msgstr "Hely"
@@ -1137,12 +1138,12 @@ msgid "Location for completed build outputs"
msgstr "A kész gyártási kimenetek helye"
#: build/serializers.py:373 build/templates/build/build_base.html:145
-#: build/templates/build/detail.html:62 order/models.py:642
-#: order/serializers.py:465 stock/templates/stock/item_base.html:418
+#: build/templates/build/detail.html:62 order/models.py:646
+#: order/serializers.py:482 stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546
-#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830
-#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829
-#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727
+#: templates/js/translated/order.js:1643 templates/js/translated/order.js:1992
+#: templates/js/translated/order.js:2836 templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:2591 templates/js/translated/stock.js:2723
msgid "Status"
msgstr "Állapot"
@@ -1203,7 +1204,7 @@ msgstr "Fogadd el hogy a készlet tételek nincsenek teljesen lefoglalva ehhez a
msgid "Required stock has not been fully allocated"
msgstr "A szükséges készlet nem lett teljesen lefoglalva"
-#: build/serializers.py:527
+#: build/serializers.py:527 order/serializers.py:208 order/serializers.py:1103
msgid "Accept Incomplete"
msgstr "Befejezetlenek elfogadása"
@@ -1219,8 +1220,8 @@ msgstr "Szükséges gyártási mennyiség nem lett elérve"
msgid "Build order has incomplete outputs"
msgstr "A gyártási utasítás befejezetlen kimeneteket tartalmaz"
-#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772
-#: part/models.py:2906
+#: build/serializers.py:577 build/serializers.py:622 part/models.py:2780
+#: part/models.py:2914
msgid "BOM Item"
msgstr "Alkatrészjegyzék tétel"
@@ -1240,7 +1241,7 @@ msgstr "bom_item.part ugyanarra az alkatrészre kell mutasson mint a gyártási
msgid "Item must be in stock"
msgstr "A tételnek kell legyen készlete"
-#: build/serializers.py:709 order/serializers.py:1073
+#: build/serializers.py:709 order/serializers.py:1093
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Rendelkezésre álló mennyiség ({q}) túllépve"
@@ -1257,7 +1258,7 @@ msgstr "Gyártási kimenetet nem lehet megadni a követésre kötelezett alkatr
msgid "This stock item has already been allocated to this build output"
msgstr "Ez a készlet tétel már le lett foglalva ehhez a gyártási kimenethez"
-#: build/serializers.py:750 order/serializers.py:1319
+#: build/serializers.py:750 order/serializers.py:1373
msgid "Allocation items must be provided"
msgstr "A lefoglalandó tételeket meg kell adni"
@@ -1372,13 +1373,13 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr "Még nincs lefoglalva a szükséges készlet"
#: build/templates/build/build_base.html:154
-#: build/templates/build/detail.html:131 order/models.py:910
-#: order/templates/order/order_base.html:165
+#: build/templates/build/detail.html:131 order/models.py:914
+#: order/templates/order/order_base.html:171
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:125
-#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847
-#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658
-#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042
+#: templates/js/translated/build.js:2586 templates/js/translated/order.js:2009
+#: templates/js/translated/order.js:2351 templates/js/translated/order.js:2852
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1051
msgid "Target Date"
msgstr "Cél dátum"
@@ -1389,7 +1390,7 @@ msgstr "Ez a gyártás %(target)s-n volt esedékes"
#: build/templates/build/build_base.html:159
#: build/templates/build/build_base.html:204
-#: order/templates/order/order_base.html:101
+#: order/templates/order/order_base.html:107
#: order/templates/order/sales_order_base.html:94
#: templates/js/translated/table_filters.js:320
#: templates/js/translated/table_filters.js:361
@@ -1405,15 +1406,15 @@ msgid "Completed"
msgstr "Kész"
#: build/templates/build/build_base.html:179
-#: build/templates/build/detail.html:94 order/models.py:1105
-#: order/models.py:1199 order/models.py:1330
+#: build/templates/build/detail.html:94 order/models.py:1109
+#: order/models.py:1203 order/models.py:1334
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:365
+#: stock/templates/stock/item_base.html:368
#: templates/email/overdue_sales_order.html:15
-#: templates/js/translated/order.js:2604
+#: templates/js/translated/order.js:2798
msgid "Sales Order"
msgstr "Vevői rendelés"
@@ -1439,8 +1440,8 @@ msgstr "Készlet forrás"
msgid "Stock can be taken from any available location."
msgstr "Készlet bármely rendelkezésre álló helyről felhasználható."
-#: build/templates/build/detail.html:49 order/models.py:1023
-#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199
+#: build/templates/build/detail.html:49 order/models.py:1027
+#: templates/js/translated/order.js:1644 templates/js/translated/order.js:2393
msgid "Destination"
msgstr "Cél"
@@ -1453,18 +1454,18 @@ msgid "Allocated Parts"
msgstr "Lefoglalt alkatrészek"
#: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:165
+#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1215
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843
-#: templates/js/translated/stock.js:2734
+#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1839
+#: templates/js/translated/stock.js:2730
#: templates/js/translated/table_filters.js:159
#: templates/js/translated/table_filters.js:250
msgid "Batch"
msgstr "Batch"
#: build/templates/build/detail.html:126
-#: order/templates/order/order_base.html:152
+#: order/templates/order/order_base.html:158
#: order/templates/order/sales_order_base.html:158
#: templates/js/translated/build.js:2554
msgid "Created"
@@ -1517,7 +1518,7 @@ msgstr "Szükséges alkatrészek rendelése"
#: build/templates/build/detail.html:187
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:85
-#: part/templates/part/category.html:183 templates/js/translated/order.js:1083
+#: part/templates/part/category.html:183 templates/js/translated/order.js:1177
msgid "Order Parts"
msgstr "Alkatrész rendelés"
@@ -1852,7 +1853,7 @@ msgstr "Kategória paraméter sablonok másolása"
msgid "Copy category parameter templates when creating a part"
msgstr "Kategória paraméter sablonok másolása alkatrész létrehozásakor"
-#: common/models.py:951 part/models.py:2465 report/models.py:158
+#: common/models.py:951 part/models.py:2473 report/models.py:158
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:484
msgid "Template"
@@ -1862,7 +1863,7 @@ msgstr "Sablon"
msgid "Parts are templates by default"
msgstr "Alkatrészek alapból sablon alkatrészek legyenek"
-#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446
+#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1454
#: templates/js/translated/table_filters.js:176
#: templates/js/translated/table_filters.js:447
msgid "Assembly"
@@ -2276,349 +2277,349 @@ msgstr "Esemény integráció engedélyezése"
msgid "Enable plugins to respond to internal events"
msgstr "Belső eseményekre reagálás engedélyezése a pluginok számára"
-#: common/models.py:1342 common/models.py:1658
+#: common/models.py:1344 common/models.py:1662
msgid "Settings key (must be unique - case insensitive"
msgstr "Beállítások kulcs (egyedinek kell lennie, nem kis- nagybetű érzékeny"
-#: common/models.py:1364
+#: common/models.py:1366
msgid "Show subscribed parts"
msgstr "Értesítésre beállított alkatrészek megjelenítése"
-#: common/models.py:1365
+#: common/models.py:1367
msgid "Show subscribed parts on the homepage"
msgstr "Alkatrész értesítések megjelenítése a főoldalon"
-#: common/models.py:1371
+#: common/models.py:1373
msgid "Show subscribed categories"
msgstr "Értesítésre beállított kategóriák megjelenítése"
-#: common/models.py:1372
+#: common/models.py:1374
msgid "Show subscribed part categories on the homepage"
msgstr "Alkatrész kategória értesítések megjelenítése a főoldalon"
-#: common/models.py:1378
+#: common/models.py:1380
msgid "Show latest parts"
msgstr "Legújabb alkatrészek megjelenítése"
-#: common/models.py:1379
+#: common/models.py:1381
msgid "Show latest parts on the homepage"
msgstr "Legújabb alkatrészek megjelenítése a főoldalon"
-#: common/models.py:1385
+#: common/models.py:1387
msgid "Recent Part Count"
msgstr "Legfrissebb alkatrész szám"
-#: common/models.py:1386
+#: common/models.py:1388
msgid "Number of recent parts to display on index page"
msgstr "Főoldalon megjelenítendő legújabb alkatrészek"
-#: common/models.py:1392
+#: common/models.py:1394
msgid "Show unvalidated BOMs"
msgstr "Jóváhagyás nélküli alkatrészjegyzékek megjelenítése"
-#: common/models.py:1393
+#: common/models.py:1395
msgid "Show BOMs that await validation on the homepage"
msgstr "Jóváhagyásra váró alkatrészjegyzékek megjelenítése a főoldalon"
-#: common/models.py:1399
+#: common/models.py:1401
msgid "Show recent stock changes"
msgstr "Legfrissebb készlet változások megjelenítése"
-#: common/models.py:1400
+#: common/models.py:1402
msgid "Show recently changed stock items on the homepage"
msgstr "Legutóbb megváltozott alkatrészek megjelenítése a főoldalon"
-#: common/models.py:1406
+#: common/models.py:1408
msgid "Recent Stock Count"
msgstr "Legfrissebb készlet mennyiség"
-#: common/models.py:1407
+#: common/models.py:1409
msgid "Number of recent stock items to display on index page"
msgstr "Főoldalon megjelenítendő legújabb készlet tételek száma"
-#: common/models.py:1413
+#: common/models.py:1415
msgid "Show low stock"
msgstr "Alacsony készlet megjelenítése"
-#: common/models.py:1414
+#: common/models.py:1416
msgid "Show low stock items on the homepage"
msgstr "Alacsony készletek megjelenítése a főoldalon"
-#: common/models.py:1420
+#: common/models.py:1422
msgid "Show depleted stock"
msgstr "Kimerült készlet megjelenítése"
-#: common/models.py:1421
+#: common/models.py:1423
msgid "Show depleted stock items on the homepage"
msgstr "Kimerült készletek megjelenítése a főoldalon"
-#: common/models.py:1427
+#: common/models.py:1429
msgid "Show needed stock"
msgstr "Gyártáshoz szükséges készlet megjelenítése"
-#: common/models.py:1428
+#: common/models.py:1430
msgid "Show stock items needed for builds on the homepage"
msgstr "Gyártáshoz szükséges készletek megjelenítése a főoldalon"
-#: common/models.py:1434
+#: common/models.py:1436
msgid "Show expired stock"
msgstr "Lejárt készlet megjelenítése"
-#: common/models.py:1435
+#: common/models.py:1437
msgid "Show expired stock items on the homepage"
msgstr "Lejárt készletek megjelenítése a főoldalon"
-#: common/models.py:1441
+#: common/models.py:1443
msgid "Show stale stock"
msgstr "Állott készlet megjelenítése"
-#: common/models.py:1442
+#: common/models.py:1444
msgid "Show stale stock items on the homepage"
msgstr "Álló készletek megjelenítése a főoldalon"
-#: common/models.py:1448
+#: common/models.py:1450
msgid "Show pending builds"
msgstr "Függő gyártások megjelenítése"
-#: common/models.py:1449
+#: common/models.py:1451
msgid "Show pending builds on the homepage"
msgstr "Folyamatban lévő gyártások megjelenítése a főoldalon"
-#: common/models.py:1455
+#: common/models.py:1457
msgid "Show overdue builds"
msgstr "Késésben lévő gyártások megjelenítése"
-#: common/models.py:1456
+#: common/models.py:1458
msgid "Show overdue builds on the homepage"
msgstr "Késésben lévő gyártások megjelenítése a főoldalon"
-#: common/models.py:1462
+#: common/models.py:1464
msgid "Show outstanding POs"
msgstr "Kintlévő beszerzési rendelések megjelenítése"
-#: common/models.py:1463
+#: common/models.py:1465
msgid "Show outstanding POs on the homepage"
msgstr "Kintlévő beszerzési rendelések megjelenítése a főoldalon"
-#: common/models.py:1469
+#: common/models.py:1471
msgid "Show overdue POs"
msgstr "Késésben lévő megrendelések megjelenítése"
-#: common/models.py:1470
+#: common/models.py:1472
msgid "Show overdue POs on the homepage"
msgstr "Késésben lévő megrendelések megjelenítése a főoldalon"
-#: common/models.py:1476
+#: common/models.py:1478
msgid "Show outstanding SOs"
msgstr "Függő vevői rendelések megjelenítése"
-#: common/models.py:1477
+#: common/models.py:1479
msgid "Show outstanding SOs on the homepage"
msgstr "Függő vevői rendelések megjelenítése a főoldalon"
-#: common/models.py:1483
+#: common/models.py:1485
msgid "Show overdue SOs"
msgstr "Késésben lévő vevői rendelések megjelenítése"
-#: common/models.py:1484
+#: common/models.py:1486
msgid "Show overdue SOs on the homepage"
msgstr "Késésben lévő vevői rendelések megjelenítése a főoldalon"
-#: common/models.py:1490
+#: common/models.py:1492
msgid "Inline label display"
msgstr "Beágyazott címke megjelenítés"
-#: common/models.py:1491
+#: common/models.py:1493
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr "PDF címkék megjelenítése a böngészőben letöltés helyett"
-#: common/models.py:1497
+#: common/models.py:1499
msgid "Inline report display"
msgstr "Beágyazott riport megjelenítés"
-#: common/models.py:1498
+#: common/models.py:1500
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr "PDF riport megjelenítése a böngészőben letöltés helyett"
-#: common/models.py:1504
+#: common/models.py:1506
msgid "Search Parts"
msgstr "Alkatrészek keresése"
-#: common/models.py:1505
+#: common/models.py:1507
msgid "Display parts in search preview window"
msgstr "Alkatrészek megjelenítése a keresési előnézetben"
-#: common/models.py:1511
+#: common/models.py:1513
msgid "Seach Supplier Parts"
msgstr "Beszállítói alkatrészek keresése"
-#: common/models.py:1512
+#: common/models.py:1514
msgid "Display supplier parts in search preview window"
msgstr "Beszállítói alkatrészek megjelenítése a keresési előnézetben"
-#: common/models.py:1518
+#: common/models.py:1520
msgid "Search Manufacturer Parts"
msgstr "Gyártói alkatrészek keresése"
-#: common/models.py:1519
+#: common/models.py:1521
msgid "Display manufacturer parts in search preview window"
msgstr "Gyártói alkatrészek megjelenítése a keresési előnézetben"
-#: common/models.py:1525
+#: common/models.py:1527
msgid "Hide Inactive Parts"
msgstr "Inaktív alkatrészek elrejtése"
-#: common/models.py:1526
+#: common/models.py:1528
msgid "Excluded inactive parts from search preview window"
msgstr "Inaktív alkatrészek kihagyása a keresési előnézet találataiból"
-#: common/models.py:1532
+#: common/models.py:1534
msgid "Search Categories"
msgstr "Kategóriák keresése"
-#: common/models.py:1533
+#: common/models.py:1535
msgid "Display part categories in search preview window"
msgstr "Alkatrész kategóriák megjelenítése a keresési előnézetben"
-#: common/models.py:1539
+#: common/models.py:1541
msgid "Search Stock"
msgstr "Készlet keresése"
-#: common/models.py:1540
+#: common/models.py:1542
msgid "Display stock items in search preview window"
msgstr "Készlet tételek megjelenítése a keresési előnézetben"
-#: common/models.py:1546
+#: common/models.py:1548
msgid "Hide Unavailable Stock Items"
msgstr "Nem elérhető készlet tételek elrejtése"
-#: common/models.py:1547
+#: common/models.py:1549
msgid "Exclude stock items which are not available from the search preview window"
msgstr "Nem elérhető készlet kihagyása a keresési előnézet találataiból"
-#: common/models.py:1553
+#: common/models.py:1555
msgid "Search Locations"
msgstr "Helyek keresése"
-#: common/models.py:1554
+#: common/models.py:1556
msgid "Display stock locations in search preview window"
msgstr "Készlet helyek megjelenítése a keresési előnézetben"
-#: common/models.py:1560
+#: common/models.py:1562
msgid "Search Companies"
msgstr "Cégek keresése"
-#: common/models.py:1561
+#: common/models.py:1563
msgid "Display companies in search preview window"
msgstr "Cégek megjelenítése a keresési előnézetben"
-#: common/models.py:1567
+#: common/models.py:1569
msgid "Search Purchase Orders"
msgstr "Beszerzési rendelések keresése"
-#: common/models.py:1568
+#: common/models.py:1570
msgid "Display purchase orders in search preview window"
msgstr "Beszerzési rendelések megjelenítése a keresési előnézetben"
-#: common/models.py:1574
+#: common/models.py:1576
msgid "Exclude Inactive Purchase Orders"
msgstr "Inaktív beszerzési rendelések kihagyása"
-#: common/models.py:1575
+#: common/models.py:1577
msgid "Exclude inactive purchase orders from search preview window"
msgstr "Inaktív beszerzési rendelések kihagyása a keresési előnézet találataiból"
-#: common/models.py:1581
+#: common/models.py:1583
msgid "Search Sales Orders"
msgstr "Vevői rendelések keresése"
-#: common/models.py:1582
+#: common/models.py:1584
msgid "Display sales orders in search preview window"
msgstr "Vevői rendelések megjelenítése a keresési előnézetben"
-#: common/models.py:1588
+#: common/models.py:1590
msgid "Exclude Inactive Sales Orders"
msgstr "Inaktív vevői rendelések kihagyása"
-#: common/models.py:1589
+#: common/models.py:1591
msgid "Exclude inactive sales orders from search preview window"
msgstr "Inaktív vevői rendelések kihagyása a keresési előnézet találataiból"
-#: common/models.py:1595
+#: common/models.py:1597
msgid "Search Preview Results"
msgstr "Keresési előnézet eredményei"
-#: common/models.py:1596
+#: common/models.py:1598
msgid "Number of results to show in each section of the search preview window"
msgstr "A keresési előnézetben megjelenítendő eredmények száma szekciónként"
-#: common/models.py:1602
+#: common/models.py:1604
msgid "Show Quantity in Forms"
msgstr "Mennyiség megjelenítése a formokon"
-#: common/models.py:1603
+#: common/models.py:1605
msgid "Display available part quantity in some forms"
msgstr "Rendelkezésre álló alkatrész mennyiség megjelenítése néhány formon"
-#: common/models.py:1609
+#: common/models.py:1611
msgid "Escape Key Closes Forms"
msgstr "ESC billentyű zárja be a formot"
-#: common/models.py:1610
+#: common/models.py:1612
msgid "Use the escape key to close modal forms"
msgstr "ESC billentyű használata a modális formok bezárásához"
-#: common/models.py:1616
+#: common/models.py:1618
msgid "Fixed Navbar"
msgstr "Rögzített menüsor"
-#: common/models.py:1617
+#: common/models.py:1619
msgid "The navbar position is fixed to the top of the screen"
msgstr "A menü pozíciója mindig rögzítve a lap tetején"
-#: common/models.py:1623
+#: common/models.py:1625
msgid "Date Format"
msgstr "Dátum formátum"
-#: common/models.py:1624
+#: common/models.py:1626
msgid "Preferred format for displaying dates"
msgstr "Preferált dátum formátum a dátumok kijelzésekor"
-#: common/models.py:1638 part/templates/part/detail.html:41
+#: common/models.py:1640 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr "Alkatrész ütemezés"
-#: common/models.py:1639
+#: common/models.py:1641
msgid "Display part scheduling information"
msgstr "Alkatrész ütemezési információk megjelenítése"
-#: common/models.py:1698
+#: common/models.py:1702
msgid "Price break quantity"
msgstr "Árlépcső mennyiség"
-#: common/models.py:1705 company/serializers.py:366
-#: company/templates/company/supplier_part.html:284 order/models.py:938
-#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181
+#: common/models.py:1709 company/serializers.py:372
+#: company/templates/company/supplier_part.html:296 order/models.py:942
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:2210
msgid "Price"
msgstr "Ár"
-#: common/models.py:1706
+#: common/models.py:1710
msgid "Unit price at specified quantity"
msgstr "Egységár egy meghatározott mennyiség esetén"
-#: common/models.py:1866 common/models.py:2044
+#: common/models.py:1870 common/models.py:2048
msgid "Endpoint"
msgstr "Végpont"
-#: common/models.py:1867
+#: common/models.py:1871
msgid "Endpoint at which this webhook is received"
msgstr "Végpont ahol ez a webhook érkezik"
-#: common/models.py:1876
+#: common/models.py:1880
msgid "Name for this webhook"
msgstr "Webhook neve"
-#: common/models.py:1881 part/models.py:921 plugin/models.py:100
+#: common/models.py:1885 part/models.py:921 plugin/models.py:100
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:104
#: templates/js/translated/table_filters.js:316
@@ -2626,67 +2627,67 @@ msgstr "Webhook neve"
msgid "Active"
msgstr "Aktív"
-#: common/models.py:1882
+#: common/models.py:1886
msgid "Is this webhook active"
msgstr "Aktív-e ez a webhook"
-#: common/models.py:1896
+#: common/models.py:1900
msgid "Token"
msgstr "Token"
-#: common/models.py:1897
+#: common/models.py:1901
msgid "Token for access"
msgstr "Token a hozzáféréshez"
-#: common/models.py:1904
+#: common/models.py:1908
msgid "Secret"
msgstr "Titok"
-#: common/models.py:1905
+#: common/models.py:1909
msgid "Shared secret for HMAC"
msgstr "Megosztott titok a HMAC-hoz"
-#: common/models.py:2011
+#: common/models.py:2015
msgid "Message ID"
msgstr "Üzenet azonosító"
-#: common/models.py:2012
+#: common/models.py:2016
msgid "Unique identifier for this message"
msgstr "Egyedi azonosító ehhez az üzenethez"
-#: common/models.py:2020
+#: common/models.py:2024
msgid "Host"
msgstr "Kiszolgáló"
-#: common/models.py:2021
+#: common/models.py:2025
msgid "Host from which this message was received"
msgstr "Kiszolgáló ahonnan ez az üzenet érkezett"
-#: common/models.py:2028
+#: common/models.py:2032
msgid "Header"
msgstr "Fejléc"
-#: common/models.py:2029
+#: common/models.py:2033
msgid "Header of this message"
msgstr "Üzenet fejléce"
-#: common/models.py:2035
+#: common/models.py:2039
msgid "Body"
msgstr "Törzs"
-#: common/models.py:2036
+#: common/models.py:2040
msgid "Body of this message"
msgstr "Üzenet törzse"
-#: common/models.py:2045
+#: common/models.py:2049
msgid "Endpoint on which this message was received"
msgstr "Végpont amin ez az üzenet érkezett"
-#: common/models.py:2050
+#: common/models.py:2054
msgid "Worked on"
msgstr "Dolgozott rajta"
-#: common/models.py:2051
+#: common/models.py:2055
msgid "Was the work on this message finished?"
msgstr "Befejeződött a munka ezzel az üzenettel?"
@@ -2748,7 +2749,7 @@ msgstr "A cég leírása"
#: company/models.py:105 company/templates/company/company_base.html:100
#: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:413
+#: templates/js/translated/company.js:448
msgid "Website"
msgstr "Weboldal"
@@ -2825,7 +2826,7 @@ msgstr "gyártó-e"
msgid "Does this company manufacture parts?"
msgstr "Gyárt ez a cég alkatrészeket?"
-#: company/models.py:148 company/serializers.py:372
+#: company/models.py:148 company/serializers.py:378
#: company/templates/company/company_base.html:106 part/serializers.py:153
#: part/serializers.py:184 stock/serializers.py:178
msgid "Currency"
@@ -2835,24 +2836,24 @@ msgstr "Pénznem"
msgid "Default currency used for this company"
msgstr "Cég által használt alapértelmezett pénznem"
-#: company/models.py:248 company/models.py:481 stock/models.py:598
+#: company/models.py:248 company/models.py:482 stock/models.py:598
#: stock/serializers.py:85 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:542
msgid "Base Part"
msgstr "Kiindulási alkatrész"
-#: company/models.py:252 company/models.py:485
+#: company/models.py:252 company/models.py:486
msgid "Select part"
msgstr "Válassz alkatrészt"
#: company/models.py:263 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:124
-#: stock/templates/stock/item_base.html:207
-#: templates/js/translated/company.js:397
-#: templates/js/translated/company.js:498
-#: templates/js/translated/company.js:633
-#: templates/js/translated/company.js:919 templates/js/translated/part.js:236
+#: company/templates/company/supplier_part.html:129
+#: stock/templates/stock/item_base.html:210
+#: templates/js/translated/company.js:432
+#: templates/js/translated/company.js:533
+#: templates/js/translated/company.js:668
+#: templates/js/translated/company.js:956 templates/js/translated/part.js:236
#: templates/js/translated/table_filters.js:419
msgid "Manufacturer"
msgstr "Gyártó"
@@ -2862,12 +2863,12 @@ msgid "Select manufacturer"
msgstr "Gyártó kiválasztása"
#: company/models.py:270 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:132
-#: templates/js/translated/company.js:269
-#: templates/js/translated/company.js:497
-#: templates/js/translated/company.js:649
-#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077
-#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027
+#: company/templates/company/supplier_part.html:137
+#: templates/js/translated/company.js:304
+#: templates/js/translated/company.js:532
+#: templates/js/translated/company.js:684
+#: templates/js/translated/company.js:975 templates/js/translated/order.js:2239
+#: templates/js/translated/part.js:247 templates/js/translated/part.js:1025
msgid "MPN"
msgstr "MPN"
@@ -2883,10 +2884,10 @@ msgstr "URL link a gyártói alkatrészhez"
msgid "Manufacturer part description"
msgstr "Gyártói alkatrész leírása"
-#: company/models.py:328 company/models.py:352 company/models.py:504
+#: company/models.py:328 company/models.py:352 company/models.py:505
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:220
msgid "Manufacturer Part"
msgstr "Gyártói alkatrész"
@@ -2896,8 +2897,8 @@ msgstr "Paraméter neve"
#: company/models.py:365
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2095 templates/js/translated/company.js:546
-#: templates/js/translated/company.js:764 templates/js/translated/part.js:849
+#: stock/models.py:2095 templates/js/translated/company.js:581
+#: templates/js/translated/company.js:799 templates/js/translated/part.js:847
#: templates/js/translated/stock.js:1360
msgid "Value"
msgstr "Érték"
@@ -2906,10 +2907,10 @@ msgstr "Érték"
msgid "Parameter value"
msgstr "Paraméter értéke"
-#: company/models.py:372 part/models.py:888 part/models.py:2425
+#: company/models.py:372 part/models.py:888 part/models.py:2433
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:352
-#: templates/js/translated/company.js:770 templates/js/translated/part.js:855
+#: templates/js/translated/company.js:805 templates/js/translated/part.js:853
msgid "Units"
msgstr "Mértékegységek"
@@ -2917,106 +2918,119 @@ msgstr "Mértékegységek"
msgid "Parameter units"
msgstr "Paraméter mértékegység"
-#: company/models.py:449
+#: company/models.py:450
msgid "Linked manufacturer part must reference the same base part"
msgstr "Kapcsolódó gyártói alkatrésznek ugyanarra a kiindulási alkatrészre kell hivatkoznia"
-#: company/models.py:491 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:108 order/models.py:258
-#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:224
+#: company/models.py:492 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:113 order/models.py:258
+#: order/templates/order/order_base.html:121 part/bom.py:237 part/bom.py:265
+#: stock/templates/stock/item_base.html:227
#: templates/email/overdue_purchase_order.html:16
-#: templates/js/translated/company.js:268
-#: templates/js/translated/company.js:401
-#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813
-#: templates/js/translated/part.js:217 templates/js/translated/part.js:995
+#: templates/js/translated/company.js:303
+#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:929 templates/js/translated/order.js:1975
+#: templates/js/translated/part.js:217 templates/js/translated/part.js:993
#: templates/js/translated/table_filters.js:423
msgid "Supplier"
msgstr "Beszállító"
-#: company/models.py:492 templates/js/translated/part.js:218
+#: company/models.py:493 templates/js/translated/part.js:218
msgid "Select supplier"
msgstr "Beszállító kiválasztása"
-#: company/models.py:497 company/templates/company/supplier_part.html:118
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267
-#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228
-#: templates/js/translated/part.js:1013
+#: company/models.py:498 company/templates/company/supplier_part.html:123
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:302
+#: templates/js/translated/order.js:2226 templates/js/translated/part.js:228
+#: templates/js/translated/part.js:1011
msgid "SKU"
msgstr "SKU"
-#: company/models.py:498 templates/js/translated/part.js:229
+#: company/models.py:499 templates/js/translated/part.js:229
msgid "Supplier stock keeping unit"
msgstr "Beszállítói cikkszám"
-#: company/models.py:505
+#: company/models.py:506
msgid "Select manufacturer part"
msgstr "Gyártói alkatrész kiválasztása"
-#: company/models.py:511
+#: company/models.py:512
msgid "URL for external supplier part link"
msgstr "URL link a beszállítói alkatrészhez"
-#: company/models.py:517
+#: company/models.py:518
msgid "Supplier part description"
msgstr "Beszállítói alkatrész leírása"
-#: company/models.py:522 company/templates/company/supplier_part.html:146
-#: part/models.py:2666 part/templates/part/upload_bom.html:59
+#: company/models.py:523 company/templates/company/supplier_part.html:158
+#: part/models.py:2674 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399
msgid "Note"
msgstr "Megjegyzés"
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "base cost"
msgstr "alap költség"
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Minimális díj (pl. tárolási díj)"
-#: company/models.py:528 company/templates/company/supplier_part.html:139
-#: stock/models.py:624 stock/templates/stock/item_base.html:240
-#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976
+#: company/models.py:529 company/templates/company/supplier_part.html:144
+#: stock/models.py:624 stock/templates/stock/item_base.html:243
+#: templates/js/translated/company.js:991 templates/js/translated/stock.js:1972
msgid "Packaging"
msgstr "Csomagolás"
-#: company/models.py:528
+#: company/models.py:529
msgid "Part packaging"
msgstr "Alkatrész csomagolás"
-#: company/models.py:530 part/models.py:1783
+#: company/models.py:532 company/serializers.py:242
+#: company/templates/company/supplier_part.html:151
+#: templates/js/translated/company.js:996 templates/js/translated/order.js:820
+#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:2270 templates/js/translated/order.js:2287
+#: templates/js/translated/part.js:1043 templates/js/translated/part.js:1095
+msgid "Pack Quantity"
+msgstr ""
+
+#: company/models.py:533
+msgid "Unit quantity supplied in a single pack"
+msgstr ""
+
+#: company/models.py:539 part/models.py:1783
msgid "multiple"
msgstr "többszörös"
-#: company/models.py:530
+#: company/models.py:539
msgid "Order multiple"
msgstr "Többszörös rendelés"
-#: company/models.py:538 company/templates/company/supplier_part.html:94
+#: company/models.py:547 company/templates/company/supplier_part.html:99
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823
-#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979
-#: templates/js/translated/part.js:600 templates/js/translated/part.js:603
+#: templates/js/translated/bom.js:915 templates/js/translated/build.js:1823
+#: templates/js/translated/build.js:2686 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:601
#: templates/js/translated/table_filters.js:186
msgid "Available"
msgstr "Elérhető"
-#: company/models.py:539
+#: company/models.py:548
msgid "Quantity available from supplier"
msgstr "Beszállítónál elérhető mennyiség"
-#: company/models.py:543
+#: company/models.py:552
msgid "Availability Updated"
msgstr "Elérhetőség frissítve"
-#: company/models.py:544
+#: company/models.py:553
msgid "Date of last update of availability data"
msgstr "Utolsó elérhetőségi adat frissítés"
-#: company/models.py:672
+#: company/models.py:681
msgid "last updated"
msgstr "utoljára módosítva"
@@ -3030,12 +3044,12 @@ msgstr "Pénznem kódja"
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386
+#: templates/InvenTree/search.html:179 templates/js/translated/company.js:421
msgid "Company"
msgstr "Cég"
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:624
+#: templates/js/translated/order.js:689
msgid "Create Purchase Order"
msgstr "Beszerzési rendelés létrehozása"
@@ -3048,7 +3062,7 @@ msgid "Edit company information"
msgstr "Cég adatainak szerkesztése"
#: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:329
+#: templates/js/translated/company.js:364
msgid "Edit Company"
msgstr "Cég szerkesztése"
@@ -3071,13 +3085,13 @@ msgstr "Új kép feltöltése"
msgid "Download image from URL"
msgstr "Kép letöltése URL-ről"
-#: company/templates/company/company_base.html:86 order/models.py:637
+#: company/templates/company/company_base.html:86 order/models.py:641
#: order/templates/order/sales_order_base.html:116 stock/models.py:643
#: stock/models.py:644 stock/serializers.py:809
-#: stock/templates/stock/item_base.html:396
+#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
-#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619
-#: templates/js/translated/stock.js:2559
+#: templates/js/translated/company.js:428 templates/js/translated/order.js:2813
+#: templates/js/translated/stock.js:2555
#: templates/js/translated/table_filters.js:427
msgid "Customer"
msgstr "Vevő"
@@ -3212,23 +3226,23 @@ msgid "Manufacturers"
msgstr "Gyártók"
#: company/templates/company/manufacturer_part.html:35
-#: company/templates/company/supplier_part.html:186
+#: company/templates/company/supplier_part.html:198
#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80
msgid "Order part"
msgstr "Alkatrész rendelés"
#: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:681
+#: templates/js/translated/company.js:716
msgid "Edit manufacturer part"
msgstr "Gyártói alkatrész szerkesztése"
#: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:682
+#: templates/js/translated/company.js:717
msgid "Delete manufacturer part"
msgstr "Gyártói alkatrész törlése"
#: company/templates/company/manufacturer_part.html:65
-#: company/templates/company/supplier_part.html:77
+#: company/templates/company/supplier_part.html:82
msgid "Internal Part"
msgstr "Belső alkatrész"
@@ -3251,8 +3265,8 @@ msgstr "Beszállítói alkatrész törlése"
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:371 part/templates/part/detail.html:401
-#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34
-#: users/models.py:220
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:34
+#: users/models.py:222
msgid "Delete"
msgstr "Törlés"
@@ -3297,9 +3311,9 @@ msgstr "Hozzárendelt készlet tételek"
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:607
-#: stock/templates/stock/item_base.html:233
-#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041
-#: templates/js/translated/stock.js:1933
+#: stock/templates/stock/item_base.html:236
+#: templates/js/translated/company.js:945 templates/js/translated/order.js:1135
+#: templates/js/translated/stock.js:1929
msgid "Supplier Part"
msgstr "Beszállítói alkatrész"
@@ -3309,7 +3323,7 @@ msgstr "Beszállítói alkatrész műveletek"
#: company/templates/company/supplier_part.html:40
#: company/templates/company/supplier_part.html:41
-#: company/templates/company/supplier_part.html:187
+#: company/templates/company/supplier_part.html:199
#: part/templates/part/detail.html:88
msgid "Order Part"
msgstr "Alkatrész rendelése"
@@ -3321,81 +3335,87 @@ msgstr "Elérhetőség frissítése"
#: company/templates/company/supplier_part.html:48
#: company/templates/company/supplier_part.html:49
-#: templates/js/translated/company.js:212
+#: templates/js/translated/company.js:247
msgid "Edit Supplier Part"
msgstr "Beszállítói alkatrész szerkesztése"
#: company/templates/company/supplier_part.html:53
+#: company/templates/company/supplier_part.html:54
+#: templates/js/translated/company.js:222
+msgid "Duplicate Supplier Part"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:58
msgid "Delete Supplier Part"
msgstr "Beszállítói alkatrész törlése"
-#: company/templates/company/supplier_part.html:54
+#: company/templates/company/supplier_part.html:59
msgid "Delete Supplier Part"
msgstr "Beszállítói alkatrész törlése"
-#: company/templates/company/supplier_part.html:112
+#: company/templates/company/supplier_part.html:117
msgid "No supplier information available"
msgstr "Nincs elérhető beszállítói információ"
-#: company/templates/company/supplier_part.html:165
+#: company/templates/company/supplier_part.html:177
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr "Beszállítói készlet"
-#: company/templates/company/supplier_part.html:168
+#: company/templates/company/supplier_part.html:180
#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181
msgid "Create new stock item"
msgstr "Új készlet tétel létrehozása"
-#: company/templates/company/supplier_part.html:169
+#: company/templates/company/supplier_part.html:181
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182
#: templates/js/translated/stock.js:435
msgid "New Stock Item"
msgstr "Új készlet tétel"
-#: company/templates/company/supplier_part.html:182
+#: company/templates/company/supplier_part.html:194
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr "Beszállítói alkatrész rendelések"
-#: company/templates/company/supplier_part.html:207
+#: company/templates/company/supplier_part.html:219
#: part/templates/part/prices.html:10
msgid "Pricing Information"
msgstr "Árinformációk"
-#: company/templates/company/supplier_part.html:212
-#: company/templates/company/supplier_part.html:326
-#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253
+#: company/templates/company/supplier_part.html:224
+#: company/templates/company/supplier_part.html:338
+#: part/templates/part/prices.html:276 templates/js/translated/part.js:2282
msgid "Add Price Break"
msgstr "Árlépcső hozzáadása"
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:250
msgid "No price break information found"
msgstr "Nincs árlépcső információ"
-#: company/templates/company/supplier_part.html:252
-#: templates/js/translated/part.js:2263
+#: company/templates/company/supplier_part.html:264
+#: templates/js/translated/part.js:2292
msgid "Delete Price Break"
msgstr "Árlépcső törlése"
-#: company/templates/company/supplier_part.html:266
-#: templates/js/translated/part.js:2277
+#: company/templates/company/supplier_part.html:278
+#: templates/js/translated/part.js:2306
msgid "Edit Price Break"
msgstr "Árlépcső szerkesztése"
-#: company/templates/company/supplier_part.html:291
+#: company/templates/company/supplier_part.html:303
msgid "Edit price break"
msgstr "Árlépcső szerkesztése"
-#: company/templates/company/supplier_part.html:292
+#: company/templates/company/supplier_part.html:304
msgid "Delete price break"
msgstr "Árlépcső törlése"
-#: company/templates/company/supplier_part.html:301
+#: company/templates/company/supplier_part.html:313
msgid "Last updated"
msgstr "Utoljára módosítva"
-#: company/templates/company/supplier_part.html:382
+#: company/templates/company/supplier_part.html:394
msgid "Update Part Availability"
msgstr "Alkatrész elérhetőség frissítése"
@@ -3405,8 +3425,8 @@ msgstr "Alkatrész elérhetőség frissítése"
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313
-#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959
+#: templates/js/translated/part.js:749 templates/js/translated/part.js:1334
+#: templates/js/translated/part.js:1495 templates/js/translated/stock.js:959
#: templates/js/translated/stock.js:1754 templates/navbar.html:31
msgid "Stock"
msgstr "Készlet"
@@ -3433,7 +3453,7 @@ msgstr "Árazás"
#: stock/templates/stock/location.html:178
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2436 users/models.py:40
+#: templates/js/translated/stock.js:2432 users/models.py:40
msgid "Stock Items"
msgstr "Készlet tételek"
@@ -3535,7 +3555,7 @@ msgstr "Nincs egyező beszerzési rendelés"
msgid "Order description"
msgstr "Rendelés leírása"
-#: order/models.py:84 order/models.py:1246
+#: order/models.py:84 order/models.py:1250
msgid "Link to external page"
msgstr "Link külső weboldalra"
@@ -3551,11 +3571,11 @@ msgstr "Felhasználó vagy csoport aki felelőse ennek a rendelésnek"
msgid "Order notes"
msgstr "Rendelés jegyzetek"
-#: order/models.py:241 order/models.py:624
+#: order/models.py:241 order/models.py:628
msgid "Order reference"
msgstr "Rendelés azonosító"
-#: order/models.py:249 order/models.py:642
+#: order/models.py:249 order/models.py:646
msgid "Purchase order status"
msgstr "Beszerzési rendelés állapota"
@@ -3563,8 +3583,8 @@ msgstr "Beszerzési rendelés állapota"
msgid "Company from which the items are being ordered"
msgstr "Cég akitől a tételek beszerzésre kerülnek"
-#: order/models.py:262 order/templates/order/order_base.html:127
-#: templates/js/translated/order.js:1822
+#: order/models.py:262 order/templates/order/order_base.html:133
+#: templates/js/translated/order.js:1984
msgid "Supplier Reference"
msgstr "Beszállítói azonosító"
@@ -3604,245 +3624,245 @@ msgstr "Az alkatrész beszállítója meg kell egyezzen a beszerzési rendelés
msgid "Quantity must be a positive number"
msgstr "Mennyiség pozitív kell legyen"
-#: order/models.py:638
+#: order/models.py:642
msgid "Company to which the items are being sold"
msgstr "Cég akinek a tételek értékesítésre kerülnek"
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer Reference "
msgstr "Vevői azonosító "
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer order reference code"
msgstr "Megrendelés azonosító kódja a vevőnél"
-#: order/models.py:649
+#: order/models.py:653
msgid "Target date for order completion. Order will be overdue after this date."
msgstr "Cél dátum a rendelés teljesítéséhez. Ez után számít majd késettnek."
-#: order/models.py:652 order/models.py:1204
-#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828
+#: order/models.py:656 order/models.py:1208
+#: templates/js/translated/order.js:2860 templates/js/translated/order.js:3022
msgid "Shipment Date"
msgstr "Kiszállítás dátuma"
-#: order/models.py:659
+#: order/models.py:663
msgid "shipped by"
msgstr "szállította"
-#: order/models.py:714
+#: order/models.py:718
msgid "Order cannot be completed as no parts have been assigned"
msgstr "A rendelés nem teljesíthető mivel nincs hozzárendelve alkatrész"
-#: order/models.py:718
+#: order/models.py:722
msgid "Only a pending order can be marked as complete"
msgstr "Csak függő rendelés jelölhető késznek"
-#: order/models.py:721
+#: order/models.py:725 templates/js/translated/order.js:419
msgid "Order cannot be completed as there are incomplete shipments"
msgstr "A rendelés nem jelölhető késznek mivel függő szállítmányok vannak"
-#: order/models.py:724
+#: order/models.py:728
msgid "Order cannot be completed as there are incomplete line items"
msgstr "A rendelés nem jelölhető késznek mivel nem teljesített sortételek vannak"
-#: order/models.py:898
+#: order/models.py:902
msgid "Item quantity"
msgstr "Tétel mennyiség"
-#: order/models.py:904
+#: order/models.py:908
msgid "Line item reference"
msgstr "Sortétel azonosító"
-#: order/models.py:906
+#: order/models.py:910
msgid "Line item notes"
msgstr "Sortétel megjegyzései"
-#: order/models.py:911
+#: order/models.py:915
msgid "Target shipping date for this line item"
msgstr "Cél szállítási dátuma ennek a sortételnek"
-#: order/models.py:929
+#: order/models.py:933
msgid "Context"
msgstr "Kontextus"
-#: order/models.py:930
+#: order/models.py:934
msgid "Additional context for this line"
msgstr "További kontextus ehhez a sorhoz"
-#: order/models.py:939
+#: order/models.py:943
msgid "Unit price"
msgstr "Egységár"
-#: order/models.py:969
+#: order/models.py:973
msgid "Supplier part must match supplier"
msgstr "Beszállítói alkatrésznek egyeznie kell a beszállítóval"
-#: order/models.py:977
+#: order/models.py:981
msgid "deleted"
msgstr "törölve"
-#: order/models.py:983 order/models.py:1063 order/models.py:1104
-#: order/models.py:1198 order/models.py:1330
-#: templates/js/translated/order.js:3284
+#: order/models.py:987 order/models.py:1067 order/models.py:1108
+#: order/models.py:1202 order/models.py:1334
+#: templates/js/translated/order.js:3478
msgid "Order"
msgstr "Rendelés"
-#: order/models.py:984 order/models.py:1063
+#: order/models.py:988 order/models.py:1067
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:179
+#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
-#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042
-#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972
-#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540
+#: templates/js/translated/order.js:619 templates/js/translated/order.js:1136
+#: templates/js/translated/order.js:1959 templates/js/translated/part.js:970
+#: templates/js/translated/stock.js:1909 templates/js/translated/stock.js:2536
msgid "Purchase Order"
msgstr "Beszerzési rendelés"
-#: order/models.py:1002
+#: order/models.py:1006
msgid "Supplier part"
msgstr "Beszállítói alkatrész"
-#: order/models.py:1009 order/templates/order/order_base.html:172
-#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105
+#: order/models.py:1013 order/templates/order/order_base.html:178
+#: templates/js/translated/order.js:1641 templates/js/translated/order.js:2373
+#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1125
#: templates/js/translated/table_filters.js:338
msgid "Received"
msgstr "Beérkezett"
-#: order/models.py:1010
+#: order/models.py:1014
msgid "Number of items received"
msgstr "Érkezett tételek száma"
-#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734
-#: stock/serializers.py:169 stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1964
+#: order/models.py:1021 part/templates/part/prices.html:181 stock/models.py:734
+#: stock/serializers.py:169 stock/templates/stock/item_base.html:189
+#: templates/js/translated/stock.js:1960
msgid "Purchase Price"
msgstr "Beszerzési ár"
-#: order/models.py:1018
+#: order/models.py:1022
msgid "Unit purchase price"
msgstr "Beszerzési egységár"
-#: order/models.py:1026
+#: order/models.py:1030
msgid "Where does the Purchaser want this item to be stored?"
msgstr "Mit szeretne a vevő hol tároljuk ezt az alkatrészt?"
-#: order/models.py:1092
+#: order/models.py:1096
msgid "Virtual part cannot be assigned to a sales order"
msgstr "Virtuális alkatrészt nem lehet vevői rendeléshez adni"
-#: order/models.py:1097
+#: order/models.py:1101
msgid "Only salable parts can be assigned to a sales order"
msgstr "Csak értékesíthető alkatrészeket lehet vevői rendeléshez adni"
-#: order/models.py:1123 part/templates/part/part_pricing.html:115
+#: order/models.py:1127 part/templates/part/part_pricing.html:115
#: part/templates/part/prices.html:121 part/templates/part/prices.html:290
msgid "Sale Price"
msgstr "Eladási ár"
-#: order/models.py:1124
+#: order/models.py:1128
msgid "Unit sale price"
msgstr "Eladási egységár"
-#: order/models.py:1129
+#: order/models.py:1133
msgid "Shipped quantity"
msgstr "Szállított mennyiség"
-#: order/models.py:1205
+#: order/models.py:1209
msgid "Date of shipment"
msgstr "Szállítás dátuma"
-#: order/models.py:1212
+#: order/models.py:1216
msgid "Checked By"
msgstr "Ellenőrizte"
-#: order/models.py:1213
+#: order/models.py:1217
msgid "User who checked this shipment"
msgstr "Felhasználó aki ellenőrizte ezt a szállítmányt"
-#: order/models.py:1220 order/models.py:1405 order/serializers.py:1170
-#: order/serializers.py:1294 templates/js/translated/model_renderers.js:314
+#: order/models.py:1224 order/models.py:1409 order/serializers.py:1224
+#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314
msgid "Shipment"
msgstr "Szállítmány"
-#: order/models.py:1221
+#: order/models.py:1225
msgid "Shipment number"
msgstr "Szállítmány száma"
-#: order/models.py:1225
+#: order/models.py:1229
msgid "Shipment notes"
msgstr "Szállítmány megjegyzései"
-#: order/models.py:1231
+#: order/models.py:1235
msgid "Tracking Number"
msgstr "Nyomkövetési szám"
-#: order/models.py:1232
+#: order/models.py:1236
msgid "Shipment tracking information"
msgstr "Szállítmány nyomkövetési információ"
-#: order/models.py:1239
+#: order/models.py:1243
msgid "Invoice Number"
msgstr "Számlaszám"
-#: order/models.py:1240
+#: order/models.py:1244
msgid "Reference number for associated invoice"
msgstr "Hozzátartozó számla referencia száma"
-#: order/models.py:1258
+#: order/models.py:1262
msgid "Shipment has already been sent"
msgstr "Szállítmány már elküldve"
-#: order/models.py:1261
+#: order/models.py:1265
msgid "Shipment has no allocated stock items"
msgstr "Szállítmány nem tartalmaz foglalt készlet tételeket"
-#: order/models.py:1364 order/models.py:1366
+#: order/models.py:1368 order/models.py:1370
msgid "Stock item has not been assigned"
msgstr "Készlet tétel nincs hozzárendelve"
-#: order/models.py:1370
+#: order/models.py:1374
msgid "Cannot allocate stock item to a line with a different part"
msgstr "Nem foglalható készlet egy másik fajta alkatrész sortételéhez"
-#: order/models.py:1372
+#: order/models.py:1376
msgid "Cannot allocate stock to a line without a part"
msgstr "Nem foglalható készlet egy olyan sorhoz amiben nincs alkatrész"
-#: order/models.py:1375
+#: order/models.py:1379
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "A lefoglalandó mennyiség nem haladhatja meg a készlet mennyiségét"
-#: order/models.py:1385 order/serializers.py:1066
+#: order/models.py:1389 order/serializers.py:1086
msgid "Quantity must be 1 for serialized stock item"
msgstr "Egyedi követésre kötelezett tételeknél a menyiség 1 kell legyen"
-#: order/models.py:1388
+#: order/models.py:1392
msgid "Sales order does not match shipment"
msgstr "Vevői rendelés nem egyezik a szállítmánnyal"
-#: order/models.py:1389
+#: order/models.py:1393
msgid "Shipment does not match sales order"
msgstr "Szállítmány nem egyezik a vevői rendeléssel"
-#: order/models.py:1397
+#: order/models.py:1401
msgid "Line"
msgstr "Sor"
-#: order/models.py:1406
+#: order/models.py:1410
msgid "Sales order shipment reference"
msgstr "Vevői rendelés szállítmány azonosító"
-#: order/models.py:1419 templates/js/translated/notification.js:55
+#: order/models.py:1423 templates/js/translated/notification.js:55
msgid "Item"
msgstr "Tétel"
-#: order/models.py:1420
+#: order/models.py:1424
msgid "Select stock item to allocate"
msgstr "Válaszd ki a foglalásra szánt készlet tételt"
-#: order/models.py:1423
+#: order/models.py:1427
msgid "Enter stock allocation quantity"
msgstr "Készlet foglalási mennyiség megadása"
@@ -3854,111 +3874,119 @@ msgstr "Pénznem"
msgid "Order cannot be cancelled"
msgstr "A rendelést nem lehet törölni"
-#: order/serializers.py:294
+#: order/serializers.py:209 order/serializers.py:1104
+msgid "Allow order to be closed with incomplete line items"
+msgstr ""
+
+#: order/serializers.py:220 order/serializers.py:1115
+msgid "Order has incomplete line items"
+msgstr ""
+
+#: order/serializers.py:311
msgid "Order is not open"
msgstr "A rendelés nem nyitott"
-#: order/serializers.py:318
+#: order/serializers.py:335
msgid "Purchase price currency"
msgstr "Beszérzési ár pénzneme"
-#: order/serializers.py:337
+#: order/serializers.py:354
msgid "Supplier part must be specified"
msgstr "Beszállítói alkatrészt meg kell adni"
-#: order/serializers.py:342
+#: order/serializers.py:359
msgid "Purchase order must be specified"
msgstr "Beszerzési rendelést meg kell adni"
-#: order/serializers.py:348
+#: order/serializers.py:365
msgid "Supplier must match purchase order"
msgstr "A beszállítónak egyeznie kell a beszerzési rendelésben lévővel"
-#: order/serializers.py:349
+#: order/serializers.py:366
msgid "Purchase order must match supplier"
msgstr "A beszerzési rendelésnek egyeznie kell a beszállítóval"
-#: order/serializers.py:413 order/serializers.py:1138
+#: order/serializers.py:430 order/serializers.py:1192
msgid "Line Item"
msgstr "Sortétel"
-#: order/serializers.py:419
+#: order/serializers.py:436
msgid "Line item does not match purchase order"
msgstr "Sortétel nem egyezik a beszerzési megrendeléssel"
-#: order/serializers.py:429 order/serializers.py:533
+#: order/serializers.py:446 order/serializers.py:553
msgid "Select destination location for received items"
msgstr "Válassz cél helyet a beérkezett tételeknek"
-#: order/serializers.py:448 templates/js/translated/order.js:1354
+#: order/serializers.py:465 templates/js/translated/order.js:1497
msgid "Enter batch code for incoming stock items"
msgstr "Írd be a batch kódját a beérkezett tételeknek"
-#: order/serializers.py:456 templates/js/translated/order.js:1365
+#: order/serializers.py:473 templates/js/translated/order.js:1508
msgid "Enter serial numbers for incoming stock items"
msgstr "Írd be a sorozatszámokat a beérkezett tételekhez"
-#: order/serializers.py:469
+#: order/serializers.py:486
msgid "Barcode Hash"
msgstr "Vonalkód hash"
-#: order/serializers.py:470
+#: order/serializers.py:487
msgid "Unique identifier field"
msgstr "Egyedi azonosító mező"
-#: order/serializers.py:484
+#: order/serializers.py:501
msgid "Barcode is already in use"
msgstr "Ez a vonalkód már használva van"
-#: order/serializers.py:507
+#: order/serializers.py:527
msgid "An integer quantity must be provided for trackable parts"
msgstr "Egész számú mennyiség szükséges az egyedi követésre kötelezett alkatrészeknél"
-#: order/serializers.py:549
+#: order/serializers.py:569
msgid "Line items must be provided"
msgstr "Sortételt meg kell adni"
-#: order/serializers.py:566
+#: order/serializers.py:586
msgid "Destination location must be specified"
msgstr "A cél helyet kötelező megadni"
-#: order/serializers.py:577
+#: order/serializers.py:597
msgid "Supplied barcode values must be unique"
msgstr "Megadott vonalkódoknak egyedieknek kel lenniük"
-#: order/serializers.py:883
+#: order/serializers.py:903
msgid "Sale price currency"
msgstr "Eladási ár pénzneme"
-#: order/serializers.py:964
+#: order/serializers.py:984
msgid "No shipment details provided"
msgstr "Nincsenek szállítmány részletek megadva"
-#: order/serializers.py:1027 order/serializers.py:1147
+#: order/serializers.py:1047 order/serializers.py:1201
msgid "Line item is not associated with this order"
msgstr "Sortétel nincs hozzárendelve ehhez a rendeléshez"
-#: order/serializers.py:1049
+#: order/serializers.py:1069
msgid "Quantity must be positive"
msgstr "Mennyiség pozitív kell legyen"
-#: order/serializers.py:1160
+#: order/serializers.py:1214
msgid "Enter serial numbers to allocate"
msgstr "Írd be a sorozatszámokat a kiosztáshoz"
-#: order/serializers.py:1182 order/serializers.py:1302
+#: order/serializers.py:1236 order/serializers.py:1356
msgid "Shipment has already been shipped"
msgstr "Szállítmány kiszállítva"
-#: order/serializers.py:1185 order/serializers.py:1305
+#: order/serializers.py:1239 order/serializers.py:1359
msgid "Shipment is not associated with this order"
msgstr "Szállítmány nincs hozzárendelve ehhez a rendeléshez"
-#: order/serializers.py:1235
+#: order/serializers.py:1289
msgid "No match found for the following serial numbers"
msgstr "Nincs találat a következő sorozatszámokra"
-#: order/serializers.py:1245
+#: order/serializers.py:1299
msgid "The following serial numbers are already allocated"
msgstr "A következő sorozatszámok már ki lettek osztva"
@@ -3994,83 +4022,83 @@ msgstr "Rendelés exportálása fájlba"
msgid "Order actions"
msgstr "Rendelés műveletek"
-#: order/templates/order/order_base.html:45
+#: order/templates/order/order_base.html:46
#: order/templates/order/sales_order_base.html:58
msgid "Edit order"
msgstr "Rendelés szerkesztése"
-#: order/templates/order/order_base.html:47
+#: order/templates/order/order_base.html:50
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr "Rendelés törlése"
-#: order/templates/order/order_base.html:50
+#: order/templates/order/order_base.html:55
msgid "Duplicate order"
msgstr "Rendelés másolása"
-#: order/templates/order/order_base.html:55
+#: order/templates/order/order_base.html:61
msgid "Place order"
msgstr "Rendelés leadása"
-#: order/templates/order/order_base.html:59
+#: order/templates/order/order_base.html:65
msgid "Receive items"
msgstr "Érkezett tételek bevételezése"
-#: order/templates/order/order_base.html:61
+#: order/templates/order/order_base.html:67
#: order/templates/order/purchase_order_detail.html:30
msgid "Receive Items"
msgstr "Bevételezés"
-#: order/templates/order/order_base.html:63
+#: order/templates/order/order_base.html:69
msgid "Mark order as complete"
msgstr "Rendelés teljesítettnek jelölése"
-#: order/templates/order/order_base.html:65
+#: order/templates/order/order_base.html:71
#: order/templates/order/sales_order_base.html:68
msgid "Complete Order"
msgstr "Rendelés befejezése"
-#: order/templates/order/order_base.html:87
+#: order/templates/order/order_base.html:93
#: order/templates/order/sales_order_base.html:80
msgid "Order Reference"
msgstr "Rendelési azonosító"
-#: order/templates/order/order_base.html:92
+#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:85
msgid "Order Description"
msgstr "Rendelés leírása"
-#: order/templates/order/order_base.html:97
+#: order/templates/order/order_base.html:103
#: order/templates/order/sales_order_base.html:90
msgid "Order Status"
msgstr "Rendelés állapota"
-#: order/templates/order/order_base.html:120
+#: order/templates/order/order_base.html:126
msgid "No suppplier information available"
msgstr "Nincs elérhető beszállítói információ"
-#: order/templates/order/order_base.html:133
+#: order/templates/order/order_base.html:139
#: order/templates/order/sales_order_base.html:129
msgid "Completed Line Items"
msgstr "Kész sortételek"
-#: order/templates/order/order_base.html:139
+#: order/templates/order/order_base.html:145
#: order/templates/order/sales_order_base.html:135
#: order/templates/order/sales_order_base.html:145
msgid "Incomplete"
msgstr "Hiányos"
-#: order/templates/order/order_base.html:158
+#: order/templates/order/order_base.html:164
#: report/templates/report/inventree_build_order_base.html:121
msgid "Issued"
msgstr "Kiküldve"
-#: order/templates/order/order_base.html:186
+#: order/templates/order/order_base.html:192
#: order/templates/order/sales_order_base.html:190
msgid "Total cost"
msgstr "Teljes költség"
-#: order/templates/order/order_base.html:190
+#: order/templates/order/order_base.html:196
#: order/templates/order/sales_order_base.html:194
msgid "Total cost could not be calculated"
msgstr "A teljes költség nem számolható"
@@ -4103,8 +4131,8 @@ msgstr "Beszállítói alkatrész kiválasztása"
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463
#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015
-#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443
-#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625
+#: templates/js/translated/order.js:1084 templates/js/translated/order.js:1586
+#: templates/js/translated/order.js:3097 templates/js/translated/stock.js:625
#: templates/js/translated/stock.js:793
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
@@ -4140,7 +4168,7 @@ msgstr "Beszerzési rendelés tételei"
#: order/templates/order/purchase_order_detail.html:26
#: order/templates/order/sales_order_detail.html:22
#: order/templates/order/sales_order_detail.html:255
-#: templates/js/translated/order.js:663
+#: templates/js/translated/order.js:728
msgid "Add Line Item"
msgstr "Sortétel hozzáadása"
@@ -4168,7 +4196,7 @@ msgstr "Érkezett tételek"
msgid "Order Notes"
msgstr "Rendelés megjegyzések"
-#: order/templates/order/purchase_order_detail.html:228
+#: order/templates/order/purchase_order_detail.html:232
msgid "Add Order Line"
msgstr "Sortétel hozzáadása"
@@ -4186,12 +4214,12 @@ msgid "Print packing list"
msgstr "Csomagolási lista nyomtatása"
#: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:231
+#: templates/js/translated/order.js:232
msgid "Complete Shipments"
msgstr "Szállítmányok készen"
#: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:258
+#: templates/js/translated/order.js:397
msgid "Complete Sales Order"
msgstr "Vevői rendelés befejezése, minden kiszállítva"
@@ -4200,7 +4228,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr "Ehhez a vevői rendeléshez nincs minden alkatrész lefoglalva"
#: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2632
+#: templates/js/translated/order.js:2826
msgid "Customer Reference"
msgstr "Vevői azonosító"
@@ -4224,7 +4252,7 @@ msgid "Pending Shipments"
msgstr "Függő szállítmányok"
#: order/templates/order/sales_order_detail.html:72
-#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1116
#: templates/js/translated/build.js:1923
msgid "Actions"
msgstr "Műveletek"
@@ -4309,14 +4337,14 @@ msgid "Total Stock"
msgstr "Teljes készlet"
#: part/bom.py:129 part/templates/part/part_base.html:189
-#: templates/js/translated/order.js:3724
+#: templates/js/translated/order.js:3918
msgid "Available Stock"
msgstr "Elérhető készlet"
#: part/bom.py:130 part/templates/part/part_base.html:207
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853
-#: templates/js/translated/part.js:590 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503
+#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1853
+#: templates/js/translated/part.js:588 templates/js/translated/part.js:608
+#: templates/js/translated/part.js:1337 templates/js/translated/part.js:1520
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr "Rendelve"
@@ -4345,7 +4373,7 @@ msgstr "Ikon"
msgid "Icon (optional)"
msgstr "Ikon (opcionális)"
-#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16
+#: part/models.py:122 part/models.py:2516 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Alkatrész kategória"
@@ -4362,7 +4390,7 @@ msgstr "Alkatrész kategóriák"
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146
+#: templates/js/translated/part.js:2004 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr "Alkatrészek"
@@ -4392,7 +4420,7 @@ msgstr "A legutóbbi sorozatszám"
msgid "Duplicate IPN not allowed in part settings"
msgstr "Azonos IPN nem engedélyezett az alkatrész beállításokban"
-#: part/models.py:745 part/models.py:2562
+#: part/models.py:745 part/models.py:2570
msgid "Part name"
msgstr "Alkatrész neve"
@@ -4425,11 +4453,11 @@ msgstr "Kulcsszavak"
msgid "Part keywords to improve visibility in search results"
msgstr "Alkatrész kulcsszavak amik segítik a megjelenést a keresési eredményekben"
-#: part/models.py:783 part/models.py:2257 part/models.py:2507
+#: part/models.py:783 part/models.py:2265 part/models.py:2515
#: part/templates/part/part_base.html:257
#: templates/InvenTree/settings/settings.html:232
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688
+#: templates/js/translated/part.js:1477 templates/js/translated/part.js:1717
msgid "Category"
msgstr "Kategória"
@@ -4438,7 +4466,7 @@ msgid "Part category"
msgstr "Alkatrész kategória"
#: part/models.py:789 part/templates/part/part_base.html:266
-#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:1430
#: templates/js/translated/stock.js:1726
msgid "IPN"
msgstr "IPN"
@@ -4452,7 +4480,7 @@ msgid "Part revision or version number"
msgstr "Alkatrész változat vagy verziószám (pl. szín, hossz, revízió, stb.)"
#: part/models.py:797 part/templates/part/part_base.html:273
-#: report/models.py:171 templates/js/translated/part.js:743
+#: report/models.py:171 templates/js/translated/part.js:741
msgid "Revision"
msgstr "Változat"
@@ -4544,245 +4572,245 @@ msgstr "Létrehozó"
msgid "Sell multiple"
msgstr "Több értékesítése"
-#: part/models.py:2304
+#: part/models.py:2312
msgid "Test templates can only be created for trackable parts"
msgstr "Teszt sablont csak követésre kötelezett alkatrészhez lehet csinálni"
-#: part/models.py:2321
+#: part/models.py:2329
msgid "Test with this name already exists for this part"
msgstr "Erre az alkatrészre már létezik teszt ilyen névvel"
-#: part/models.py:2341 templates/js/translated/part.js:2026
+#: part/models.py:2349 templates/js/translated/part.js:2055
#: templates/js/translated/stock.js:1340
msgid "Test Name"
msgstr "Teszt név"
-#: part/models.py:2342
+#: part/models.py:2350
msgid "Enter a name for the test"
msgstr "Add meg a teszt nevét"
-#: part/models.py:2347
+#: part/models.py:2355
msgid "Test Description"
msgstr "Teszt leírása"
-#: part/models.py:2348
+#: part/models.py:2356
msgid "Enter description for this test"
msgstr "Adj hozzá egy leírást ehhez a teszthez"
-#: part/models.py:2353 templates/js/translated/part.js:2035
+#: part/models.py:2361 templates/js/translated/part.js:2064
#: templates/js/translated/table_filters.js:302
msgid "Required"
msgstr "Kötelező"
-#: part/models.py:2354
+#: part/models.py:2362
msgid "Is this test required to pass?"
msgstr "Szükséges-e hogy ez a teszt sikeres legyen?"
-#: part/models.py:2359 templates/js/translated/part.js:2043
+#: part/models.py:2367 templates/js/translated/part.js:2072
msgid "Requires Value"
msgstr "Kötelező érték"
-#: part/models.py:2360
+#: part/models.py:2368
msgid "Does this test require a value when adding a test result?"
msgstr "Szükséges-e hogy ennek a tesztnek az eredményéhez kötelezően érték legyen rendelve?"
-#: part/models.py:2365 templates/js/translated/part.js:2050
+#: part/models.py:2373 templates/js/translated/part.js:2079
msgid "Requires Attachment"
msgstr "Kötelező melléklet"
-#: part/models.py:2366
+#: part/models.py:2374
msgid "Does this test require a file attachment when adding a test result?"
msgstr "Szükséges-e hogy ennek a tesztnek az eredményéhez kötelezően fájl melléklet legyen rendelve?"
-#: part/models.py:2374
+#: part/models.py:2382
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr "Érvénytelen karakter ({c}) a sablon nevében"
-#: part/models.py:2410
+#: part/models.py:2418
msgid "Parameter template name must be unique"
msgstr "A paraméter sablon nevének egyedinek kell lennie"
-#: part/models.py:2418
+#: part/models.py:2426
msgid "Parameter Name"
msgstr "Paraméter neve"
-#: part/models.py:2425
+#: part/models.py:2433
msgid "Parameter Units"
msgstr "Paraméter mértékegysége"
-#: part/models.py:2430
+#: part/models.py:2438
msgid "Parameter description"
-msgstr ""
+msgstr "Paraméter leírása"
-#: part/models.py:2463
+#: part/models.py:2471
msgid "Parent Part"
msgstr "Szülő alkatrész"
-#: part/models.py:2465 part/models.py:2513 part/models.py:2514
+#: part/models.py:2473 part/models.py:2521 part/models.py:2522
#: templates/InvenTree/settings/settings.html:227
msgid "Parameter Template"
msgstr "Paraméter sablon"
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Data"
msgstr "Adat"
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Parameter Value"
msgstr "Paraméter értéke"
-#: part/models.py:2518 templates/InvenTree/settings/settings.html:236
+#: part/models.py:2526 templates/InvenTree/settings/settings.html:236
msgid "Default Value"
msgstr "Alapértelmezett érték"
-#: part/models.py:2519
+#: part/models.py:2527
msgid "Default Parameter Value"
msgstr "Alapértelmezett paraméter érték"
-#: part/models.py:2554
+#: part/models.py:2562
msgid "Part ID or part name"
msgstr "Alkatrész ID vagy alkatrész név"
-#: part/models.py:2557 templates/js/translated/model_renderers.js:212
+#: part/models.py:2565 templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr "Alkatrész ID"
-#: part/models.py:2558
+#: part/models.py:2566
msgid "Unique part ID value"
msgstr "Egyedi alkatrész ID értéke"
-#: part/models.py:2561
+#: part/models.py:2569
msgid "Part Name"
msgstr "Alkatrész neve"
-#: part/models.py:2565
+#: part/models.py:2573
msgid "Part IPN"
msgstr "Alkatrész IPN"
-#: part/models.py:2566
+#: part/models.py:2574
msgid "Part IPN value"
msgstr "Alkatrész IPN érték"
-#: part/models.py:2569
+#: part/models.py:2577
msgid "Level"
msgstr "Szint"
-#: part/models.py:2570
+#: part/models.py:2578
msgid "BOM level"
msgstr "Alkatrészjegyzék szint"
-#: part/models.py:2639
+#: part/models.py:2647
msgid "Select parent part"
msgstr "Szülő alkatrész kiválasztása"
-#: part/models.py:2647
+#: part/models.py:2655
msgid "Sub part"
msgstr "Al alkatrész"
-#: part/models.py:2648
+#: part/models.py:2656
msgid "Select part to be used in BOM"
msgstr "Válaszd ki az alkatrészjegyzékben használandó alkatrészt"
-#: part/models.py:2654
+#: part/models.py:2662
msgid "BOM quantity for this BOM item"
msgstr "Alkatrészjegyzék mennyiség ehhez az alkatrészjegyzék tételhez"
-#: part/models.py:2656 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997
+#: part/models.py:2664 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:876 templates/js/translated/bom.js:1005
#: templates/js/translated/table_filters.js:100
msgid "Optional"
msgstr "Opcionális"
-#: part/models.py:2656
+#: part/models.py:2664
msgid "This BOM item is optional"
msgstr "Ez az alkatrészjegyzék tétel opcionális"
-#: part/models.py:2659 part/templates/part/upload_bom.html:55
+#: part/models.py:2667 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr "Többlet"
-#: part/models.py:2660
+#: part/models.py:2668
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "Becsült gyártási veszteség (abszolút vagy százalékos)"
-#: part/models.py:2663
+#: part/models.py:2671
msgid "BOM item reference"
msgstr "Alkatrészjegyzék tétel azonosító"
-#: part/models.py:2666
+#: part/models.py:2674
msgid "BOM item notes"
msgstr "Alkatrészjegyzék tétel megjegyzései"
-#: part/models.py:2668
+#: part/models.py:2676
msgid "Checksum"
msgstr "Ellenőrző összeg"
-#: part/models.py:2668
+#: part/models.py:2676
msgid "BOM line checksum"
msgstr "Alkatrészjegyzék sor ellenőrző összeg"
-#: part/models.py:2672 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1014
+#: part/models.py:2680 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:1022
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:96
msgid "Inherited"
msgstr "Örökölt"
-#: part/models.py:2673
+#: part/models.py:2681
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr "Ezt az alkatrészjegyzék tételt az alkatrész változatok alkatrészjegyzékei is öröklik"
-#: part/models.py:2678 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1006
+#: part/models.py:2686 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:1014
msgid "Allow Variants"
msgstr "Változatok"
-#: part/models.py:2679
+#: part/models.py:2687
msgid "Stock items for variant parts can be used for this BOM item"
msgstr "Alkatrészváltozatok készlet tételei használhatók ehhez az alkatrészjegyzék tételhez"
-#: part/models.py:2757 stock/models.py:468
+#: part/models.py:2765 stock/models.py:468
msgid "Quantity must be integer value for trackable parts"
msgstr "A mennyiség egész szám kell legyen a követésre kötelezett alkatrészek esetén"
-#: part/models.py:2766 part/models.py:2768
+#: part/models.py:2774 part/models.py:2776
msgid "Sub part must be specified"
msgstr "Al alkatrészt kötelező megadni"
-#: part/models.py:2873
+#: part/models.py:2881
msgid "BOM Item Substitute"
msgstr "Alkatrészjegyzék tétel helyettesítő"
-#: part/models.py:2894
+#: part/models.py:2902
msgid "Substitute part cannot be the same as the master part"
msgstr "A helyettesítő alkatrész nem lehet ugyanaz mint a fő alkatrész"
-#: part/models.py:2907
+#: part/models.py:2915
msgid "Parent BOM item"
msgstr "Szülő alkatrészjegyzék tétel"
-#: part/models.py:2915
+#: part/models.py:2923
msgid "Substitute part"
msgstr "Helyettesítő alkatrész"
-#: part/models.py:2930
+#: part/models.py:2938
msgid "Part 1"
msgstr "1.rész"
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Part 2"
msgstr "2.rész"
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Select Related Part"
msgstr "Válassz kapcsolódó alkatrészt"
-#: part/models.py:2952
+#: part/models.py:2960
msgid "Part relationship cannot be created between a part and itself"
msgstr "Alkatrész kapcsolat nem hozható létre önmagával"
-#: part/models.py:2956
+#: part/models.py:2964
msgid "Duplicate relationship already exists"
msgstr "Már létezik duplikált alkatrész kapcsolat"
@@ -5310,10 +5338,10 @@ msgid "Part is virtual (not a physical part)"
msgstr "Virtuális (nem kézzelfogható alkatrész)"
#: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:624
-#: templates/js/translated/company.js:884
+#: templates/js/translated/company.js:659
+#: templates/js/translated/company.js:920
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:654 templates/js/translated/part.js:731
+#: templates/js/translated/part.js:652 templates/js/translated/part.js:729
msgid "Inactive"
msgstr "Inaktív"
@@ -5328,28 +5356,28 @@ msgid "This part is a variant of %(link)s"
msgstr "Ez az alkatrész egy változata a %(link)s alkatrésznek"
#: part/templates/part/part_base.html:194
-#: templates/js/translated/company.js:974
+#: templates/js/translated/company.js:1027
#: templates/js/translated/table_filters.js:201
msgid "In Stock"
msgstr "Készleten"
#: part/templates/part/part_base.html:215
-#: stock/templates/stock/item_base.html:379
+#: stock/templates/stock/item_base.html:382
msgid "Allocated to Build Orders"
msgstr "Gyártáshoz lefoglalva"
#: part/templates/part/part_base.html:224
-#: stock/templates/stock/item_base.html:372
+#: stock/templates/stock/item_base.html:375
msgid "Allocated to Sales Orders"
msgstr "Vevő rendeléshez lefoglalva"
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1043
msgid "Can Build"
msgstr "Gyártható"
-#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320
-#: templates/js/translated/part.js:1510
+#: part/templates/part/part_base.html:238 templates/js/translated/part.js:591
+#: templates/js/translated/part.js:611 templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1527
msgid "Building"
msgstr "Gyártásban"
@@ -5362,7 +5390,7 @@ msgid "Latest Serial Number"
msgstr "Legutolsó sorozatszám"
#: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:328
+#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr "Sorozatszámra keresés"
@@ -5401,7 +5429,7 @@ msgid "Total Cost"
msgstr "Teljes költség"
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:989
+#: templates/js/translated/bom.js:997
msgid "No supplier pricing available"
msgstr "Nincs beszállítói árinfomáció"
@@ -5440,7 +5468,7 @@ msgstr "Az alkatrészhez nem áll rendelkezésre árinformáció."
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:53
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468
+#: templates/js/translated/order.js:2001 templates/js/translated/stock.js:2464
msgid "Date"
msgstr "Dátum"
@@ -5496,7 +5524,7 @@ msgstr "Eladási ár megjelenítése"
msgid "Calculation parameters"
msgstr "Számítási paraméterek"
-#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983
+#: part/templates/part/prices.html:160 templates/js/translated/bom.js:991
msgid "Supplier Cost"
msgstr "Beszállítói költség"
@@ -5534,8 +5562,8 @@ msgstr "Eladási költség"
msgid "No sale pice history available for this part."
msgstr "Az alkatrészhez nem áll rendelkezésre eladási ártörténet."
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616
-#: templates/js/translated/part.js:1308
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:614
+#: templates/js/translated/part.js:1329 templates/js/translated/part.js:1331
msgid "No Stock"
msgstr "Nincs készlet"
@@ -5736,19 +5764,19 @@ msgstr "Aktív-e a plugin"
msgid "Sample plugin"
msgstr "Példa plugin"
-#: plugin/models.py:186
+#: plugin/models.py:188
msgid "Plugin"
msgstr "Plugin"
-#: plugin/models.py:249
+#: plugin/models.py:253
msgid "Method"
msgstr "Módszer"
-#: plugin/plugin.py:251
+#: plugin/plugin.py:252
msgid "No author found"
msgstr "Nincs szerző"
-#: plugin/plugin.py:263
+#: plugin/plugin.py:264
msgid "No date found"
msgstr "Nincs dátum"
@@ -5926,12 +5954,12 @@ msgid "Stock Item Test Report"
msgstr "Készlet tétel teszt riport"
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:648 stock/templates/stock/item_base.html:317
+#: stock/models.py:648 stock/templates/stock/item_base.html:320
#: templates/js/translated/build.js:456 templates/js/translated/build.js:608
#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706
#: templates/js/translated/model_renderers.js:118
-#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403
-#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490
+#: templates/js/translated/order.js:121 templates/js/translated/order.js:3597
+#: templates/js/translated/order.js:3684 templates/js/translated/stock.js:490
msgid "Serial Number"
msgstr "Sorozatszám"
@@ -5964,7 +5992,7 @@ msgstr "Beépített tételek"
#: report/templates/report/inventree_test_report_base.html:137
#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780
-#: templates/js/translated/stock.js:2717
+#: templates/js/translated/stock.js:2713
msgid "Serial"
msgstr "Sorozatszám"
@@ -5981,7 +6009,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr "Sorozatszámot nem lehet megadni nem követésre kötelezett alkatrész esetén"
#: stock/models.py:89 stock/models.py:739
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:250
msgid "Owner"
msgstr "Tulajdonos"
@@ -6047,7 +6075,7 @@ msgstr "Hol található ez az alkatrész?"
msgid "Packaging this stock item is stored in"
msgstr "A csomagolása ennek a készlet tételnek itt van tárolva"
-#: stock/models.py:631 stock/templates/stock/item_base.html:356
+#: stock/models.py:631 stock/templates/stock/item_base.html:359
msgid "Installed In"
msgstr "Beépítve ebbe"
@@ -6087,8 +6115,8 @@ msgstr "Beszerzés ehhez a készlet tételhez"
msgid "Destination Sales Order"
msgstr "Cél vevői rendelés"
-#: stock/models.py:706 stock/templates/stock/item_base.html:424
-#: templates/js/translated/stock.js:1883
+#: stock/models.py:706 stock/templates/stock/item_base.html:427
+#: templates/js/translated/stock.js:1879
msgid "Expiry Date"
msgstr "Lejárati dátum"
@@ -6380,7 +6408,7 @@ msgstr "Teszt adatok hozzáadása"
msgid "Installed Stock Items"
msgstr "Beépített készlet tételek"
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2857
msgid "Install Stock Item"
msgstr "Készlet tétel beépítése"
@@ -6480,134 +6508,135 @@ msgstr "Készlet tétel szerkesztése"
msgid "Delete stock item"
msgstr "Készlet tétel törlése"
-#: stock/templates/stock/item_base.html:158
+#: stock/templates/stock/item_base.html:161
msgid "Barcode Identifier"
msgstr "Vonalkód azonosító"
-#: stock/templates/stock/item_base.html:193
+#: stock/templates/stock/item_base.html:196
msgid "Parent Item"
msgstr "Szülő tétel"
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:214
msgid "No manufacturer set"
msgstr "Nincs beállítva gyártó"
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:254
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr "Úgytűnik nem vagy ennek a tételnek a tulajdonosa. Ezt így nem tudod módosítani."
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/location.html:132
msgid "Read only"
msgstr "Csak olvasható"
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:268
msgid "This stock item is in production and cannot be edited."
msgstr "Ez a készlet tétel éppen gyártás alatt van és nem szerkeszthető."
-#: stock/templates/stock/item_base.html:266
+#: stock/templates/stock/item_base.html:269
msgid "Edit the stock item from the build view."
msgstr "Készlet tétel szerkesztése a gyártási nézetből."
-#: stock/templates/stock/item_base.html:279
+#: stock/templates/stock/item_base.html:282
msgid "This stock item has not passed all required tests"
msgstr "Ez a készlet tétel nem felelt meg az összes szükséges teszten"
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:290
msgid "This stock item is allocated to Sales Order"
msgstr "Foglalva ehhez a vevői rendeléshez"
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:298
msgid "This stock item is allocated to Build Order"
msgstr "Foglalva ehhez a gyártási utasításhoz"
-#: stock/templates/stock/item_base.html:301
+#: stock/templates/stock/item_base.html:304
msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
msgstr "Ez a készlet tétel egyedi követésre kötelezett - egyedi sorozatszámmal rendelkezik így a mennyiség nem módosítható."
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "previous page"
msgstr "előző oldal"
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "Navigate to previous serial number"
msgstr "Menj az előző sorozatszámhoz"
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "next page"
msgstr "követkető oldal"
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "Navigate to next serial number"
msgstr "Menj a következő sorozatszámhoz"
-#: stock/templates/stock/item_base.html:345
+#: stock/templates/stock/item_base.html:348
msgid "Available Quantity"
msgstr "Elérhető mennyiség"
-#: stock/templates/stock/item_base.html:389
+#: stock/templates/stock/item_base.html:392
#: templates/js/translated/build.js:1729
msgid "No location set"
msgstr "Nincs beállítva hely"
-#: stock/templates/stock/item_base.html:404
+#: stock/templates/stock/item_base.html:407
msgid "Tests"
msgstr "Tesztek"
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr "Ez a készlet tétel lejárt %(item.expiry_date)s-n"
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#: templates/js/translated/table_filters.js:269
msgid "Expired"
msgstr "Lejárt"
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr "Ez a készlet tétel lejár %(item.expiry_date)s-n"
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:275
msgid "Stale"
msgstr "Állott"
-#: stock/templates/stock/item_base.html:437
-#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899
+#: stock/templates/stock/item_base.html:440
+#: templates/js/translated/company.js:1038
+#: templates/js/translated/stock.js:1895
msgid "Last Updated"
msgstr "Utoljára módosítva"
-#: stock/templates/stock/item_base.html:442
+#: stock/templates/stock/item_base.html:445
msgid "Last Stocktake"
msgstr "Utolsó leltár"
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr "Még nem volt leltározva"
-#: stock/templates/stock/item_base.html:516
+#: stock/templates/stock/item_base.html:519
msgid "Edit Stock Status"
msgstr "Készlet állapot szerkesztése"
-#: stock/templates/stock/item_base.html:589
+#: stock/templates/stock/item_base.html:592
msgid "Select one of the part variants listed below."
msgstr "Válassz a lenti alkatrész változatok közül"
-#: stock/templates/stock/item_base.html:592
+#: stock/templates/stock/item_base.html:595
msgid "Warning"
msgstr "Figyelem"
-#: stock/templates/stock/item_base.html:593
+#: stock/templates/stock/item_base.html:596
msgid "This action cannot be easily undone"
msgstr "Ez a művelet nem vonható vissza könnyen"
-#: stock/templates/stock/item_base.html:601
+#: stock/templates/stock/item_base.html:604
msgid "Convert Stock Item"
msgstr "Készlet tétel konvertálása"
-#: stock/templates/stock/item_base.html:629
+#: stock/templates/stock/item_base.html:632
msgid "Return to Stock"
msgstr "Visszavétel készletre"
@@ -6740,11 +6769,11 @@ msgstr "A(z) %(inventree_title)s kiszolgáló belső hibát jelzett"
msgid "Refer to the error log in the admin interface for further details"
msgstr "Nézd meg az admin felületen lévő hibanaplót bővebb információkért"
-#: templates/503.html:11 templates/503.html:36
+#: templates/503.html:11 templates/503.html:34
msgid "Site is in Maintenance"
msgstr "Az oldal karbantartás alatt"
-#: templates/503.html:42
+#: templates/503.html:40
msgid "The site is currently in maintenance and should be up again soon!"
msgstr "Az oldal jelenleg karbantartás alatt van, hamarosan újra használható lesz!"
@@ -7510,7 +7539,7 @@ msgstr "Email cím megerősítése"
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr "Erősítsd meg hogy a %(email)s email a %(user_display)s felhasználó email címe."
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:644
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "Megerősítés"
@@ -7729,7 +7758,7 @@ msgid "The following parts are low on required stock"
msgstr "A következő alkatrészek szükséges készlete alacsony"
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1481
+#: templates/js/translated/bom.js:1489
msgid "Required Quantity"
msgstr "Szükséges mennyiség"
@@ -7743,7 +7772,7 @@ msgid "Click on the following link to view this part"
msgstr "Klikk a következő linkre az alkatrész megjelenítéséhez"
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2522
+#: templates/js/translated/part.js:2551
msgid "Minimum Quantity"
msgstr "Minimum mennyiség"
@@ -7948,7 +7977,7 @@ msgstr "Sor adat"
#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620
#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601
#: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003
-#: templates/js/translated/order.js:1085 templates/modals.html:15
+#: templates/js/translated/order.js:1179 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr "Bezárás"
@@ -7958,12 +7987,12 @@ msgid "Download BOM Template"
msgstr "Alkarészjegyzék sablon letöltése"
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145
+#: templates/js/translated/order.js:960 templates/js/translated/tables.js:145
msgid "Format"
msgstr "Formátum"
#: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:867
+#: templates/js/translated/order.js:961
msgid "Select file format"
msgstr "Fájlfomátum kiválasztása"
@@ -8059,73 +8088,73 @@ msgstr "Vannak helyettesítők"
msgid "Variant stock allowed"
msgstr "Készletváltozatok engedélyezve"
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857
-#: templates/js/translated/order.js:3738
+#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1857
+#: templates/js/translated/order.js:3932
msgid "No Stock Available"
msgstr "Nincs szabad"
-#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861
+#: templates/js/translated/bom.js:940 templates/js/translated/build.js:1861
msgid "Includes variant and substitute stock"
msgstr "Változatokkal és helyettesítőkkel együtt"
-#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516
+#: templates/js/translated/bom.js:942 templates/js/translated/build.js:1863
+#: templates/js/translated/part.js:761 templates/js/translated/part.js:1533
msgid "Includes variant stock"
msgstr "Változatokkal együtt"
-#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865
+#: templates/js/translated/bom.js:944 templates/js/translated/build.js:1865
msgid "Includes substitute stock"
msgstr "Helyettesítőkkel együtt"
-#: templates/js/translated/bom.js:954
+#: templates/js/translated/bom.js:962
msgid "Substitutes"
msgstr "Helyettesítõk"
-#: templates/js/translated/bom.js:969
+#: templates/js/translated/bom.js:977
msgid "Purchase Price Range"
msgstr "Beszerzési ártartomány"
-#: templates/js/translated/bom.js:976
+#: templates/js/translated/bom.js:984
msgid "Purchase Price Average"
msgstr "Beszerzési átlagár"
-#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145
+#: templates/js/translated/bom.js:1033 templates/js/translated/bom.js:1153
msgid "View BOM"
msgstr "Alkatrészjegyzék megtekintése"
-#: templates/js/translated/bom.js:1052
+#: templates/js/translated/bom.js:1060
msgid "Including On Order"
msgstr "Rendelés allattival együtt"
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1124
msgid "Validate BOM Item"
msgstr "Alkatrészjegyzék tétel jóváhagyása"
-#: templates/js/translated/bom.js:1118
+#: templates/js/translated/bom.js:1126
msgid "This line has been validated"
msgstr "Ez a sor jóvá lett hagyva"
-#: templates/js/translated/bom.js:1120
+#: templates/js/translated/bom.js:1128
msgid "Edit substitute parts"
msgstr "Helyettesítő alkatrészek szerkesztése"
-#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284
+#: templates/js/translated/bom.js:1130 templates/js/translated/bom.js:1292
msgid "Edit BOM Item"
msgstr "Alkatrészjegyzék tétel szerkesztése"
-#: templates/js/translated/bom.js:1124
+#: templates/js/translated/bom.js:1132
msgid "Delete BOM Item"
msgstr "Alkatrészjegyzék tétel törlése"
-#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650
+#: templates/js/translated/bom.js:1228 templates/js/translated/build.js:1650
msgid "No BOM items found"
msgstr "Nem találhatók alkatrészjegyzék tételek"
-#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789
+#: templates/js/translated/bom.js:1472 templates/js/translated/build.js:1789
msgid "Required Part"
msgstr "Szükséges alkatrész"
-#: templates/js/translated/bom.js:1486
+#: templates/js/translated/bom.js:1498
msgid "Inherited from parent BOM"
msgstr "Örökölve a szülő alkatrészjegyzéktől"
@@ -8268,12 +8297,12 @@ msgid "No required tests for this build"
msgstr "Nincsenek szükséges tesztek ehhez a gyártáshoz"
#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697
-#: templates/js/translated/order.js:3438
+#: templates/js/translated/order.js:3632
msgid "Edit stock allocation"
msgstr "Készlet foglalások szerkesztése"
#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698
-#: templates/js/translated/order.js:3439
+#: templates/js/translated/order.js:3633
msgid "Delete stock allocation"
msgstr "Készlet foglalások törlése"
@@ -8293,20 +8322,20 @@ msgstr "Vannak helyettesítő alkatrészek"
msgid "Quantity Per"
msgstr "Szükséges/db"
-#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745
+#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3939
msgid "Insufficient stock available"
msgstr "Nincs elegendő"
-#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743
+#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3937
msgid "Sufficient stock available"
msgstr "Van elegendő"
#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127
-#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757
+#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3951
msgid "Allocated"
msgstr "Lefoglalva"
-#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837
+#: templates/js/translated/build.js:1930 templates/js/translated/order.js:4031
msgid "Build stock"
msgstr "Gyártási készlet"
@@ -8314,21 +8343,21 @@ msgstr "Gyártási készlet"
msgid "Order stock"
msgstr "Készlet rendelés"
-#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830
+#: templates/js/translated/build.js:1937 templates/js/translated/order.js:4024
msgid "Allocate stock"
msgstr "Lefoglalt készlet"
#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965
+#: templates/js/translated/order.js:1007 templates/js/translated/order.js:3159
#: templates/js/translated/report.js:225
msgid "Select Parts"
msgstr "Kiválasztott alkatrészek"
-#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966
+#: templates/js/translated/build.js:1977 templates/js/translated/order.js:3160
msgid "You must select at least one part to allocate"
msgstr "Legalább egy alkatrész választása szükséges a foglaláshoz"
-#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914
+#: templates/js/translated/build.js:2026 templates/js/translated/order.js:3108
msgid "Specify stock allocation quantity"
msgstr "Készlet foglalási mennyiség megadása"
@@ -8340,7 +8369,7 @@ msgstr "Minden alkatrész lefoglalva"
msgid "All selected parts have been fully allocated"
msgstr "Minden kiválasztott alkatrész teljesen lefoglalva"
-#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980
+#: templates/js/translated/build.js:2115 templates/js/translated/order.js:3174
msgid "Select source location (leave blank to take from all locations)"
msgstr "Válassz forrás helyet (vagy hagyd üresen ha bárhonnan)"
@@ -8348,11 +8377,11 @@ msgstr "Válassz forrás helyet (vagy hagyd üresen ha bárhonnan)"
msgid "Allocate Stock Items to Build Order"
msgstr "Készlet foglalása a gyártási utasításhoz"
-#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077
+#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3271
msgid "No matching stock locations"
msgstr "Nincs egyező készlethely"
-#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154
+#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3348
msgid "No matching stock items"
msgstr "Nincs egyező készlet"
@@ -8384,9 +8413,9 @@ msgstr "Készlet tételek foglalása"
msgid "No builds matching query"
msgstr "Nincs a lekérdezéssel egyező gyártási utasítás"
-#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401
-#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1422
+#: templates/js/translated/part.js:1948 templates/js/translated/stock.js:1686
+#: templates/js/translated/stock.js:2382
msgid "Select"
msgstr "Kiválaszt"
@@ -8398,7 +8427,7 @@ msgstr "Gyártás késésben van"
msgid "Progress"
msgstr "Haladás"
-#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647
+#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2643
msgid "No user information"
msgstr "Nincs felhasználói információ"
@@ -8406,111 +8435,115 @@ msgstr "Nincs felhasználói információ"
msgid "No parts allocated for"
msgstr "Nincs lefoglalt alkatrész ehhez"
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
msgid "Add Manufacturer"
msgstr "Gyártó hozzáadása"
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:179
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:181
msgid "Add Manufacturer Part"
msgstr "Gyártói alkatrész hozzáadása"
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
msgid "Edit Manufacturer Part"
msgstr "Gyártói alkatrész szerkesztése"
-#: templates/js/translated/company.js:167 templates/js/translated/order.js:511
+#: templates/js/translated/company.js:169 templates/js/translated/order.js:576
msgid "Add Supplier"
msgstr "Beszállító hozzáadása"
-#: templates/js/translated/company.js:195 templates/js/translated/order.js:734
+#: templates/js/translated/company.js:197 templates/js/translated/order.js:828
msgid "Add Supplier Part"
msgstr "Beszállítói alkatrész hozzáadása"
-#: templates/js/translated/company.js:262
+#: templates/js/translated/company.js:297
msgid "All selected supplier parts will be deleted"
msgstr "Az összes kiválasztott beszállítói alkatrész törölve lesz"
-#: templates/js/translated/company.js:278
+#: templates/js/translated/company.js:313
msgid "Delete Supplier Parts"
msgstr "Beszállítói alkatrészek törlése"
-#: templates/js/translated/company.js:350
+#: templates/js/translated/company.js:385
msgid "Add new Company"
msgstr "Új cég hozzáadása"
-#: templates/js/translated/company.js:427
+#: templates/js/translated/company.js:462
msgid "Parts Supplied"
msgstr "Beszállított alkatrészek"
-#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:471
msgid "Parts Manufactured"
msgstr "Gyártott alkatrészek"
-#: templates/js/translated/company.js:451
+#: templates/js/translated/company.js:486
msgid "No company information found"
msgstr "Nem található céginformáció"
-#: templates/js/translated/company.js:492
+#: templates/js/translated/company.js:527
msgid "All selected manufacturer parts will be deleted"
msgstr "Az összes kijelölt gyártói alkatrész törlésre kerül"
-#: templates/js/translated/company.js:507
+#: templates/js/translated/company.js:542
msgid "Delete Manufacturer Parts"
msgstr "Gyártói alkatrészek törlése"
-#: templates/js/translated/company.js:541
+#: templates/js/translated/company.js:576
msgid "All selected parameters will be deleted"
msgstr "Az összes kijelölt paraméter törlésre kerül"
-#: templates/js/translated/company.js:555
+#: templates/js/translated/company.js:590
msgid "Delete Parameters"
msgstr "Paraméterek törlése"
-#: templates/js/translated/company.js:596
+#: templates/js/translated/company.js:631
msgid "No manufacturer parts found"
msgstr "Nincs gyártói alkatrész"
-#: templates/js/translated/company.js:616
-#: templates/js/translated/company.js:876 templates/js/translated/part.js:638
-#: templates/js/translated/part.js:723
+#: templates/js/translated/company.js:651
+#: templates/js/translated/company.js:912 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:721
msgid "Template part"
msgstr "Sablon alkatrész"
-#: templates/js/translated/company.js:620
-#: templates/js/translated/company.js:880 templates/js/translated/part.js:642
-#: templates/js/translated/part.js:727
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:916 templates/js/translated/part.js:640
+#: templates/js/translated/part.js:725
msgid "Assembled part"
msgstr "Gyártmány alkatrész"
-#: templates/js/translated/company.js:748 templates/js/translated/part.js:830
+#: templates/js/translated/company.js:783 templates/js/translated/part.js:828
msgid "No parameters found"
msgstr "Nem található paraméter"
-#: templates/js/translated/company.js:785 templates/js/translated/part.js:872
+#: templates/js/translated/company.js:820 templates/js/translated/part.js:870
msgid "Edit parameter"
msgstr "Paraméter szerkesztése"
-#: templates/js/translated/company.js:786 templates/js/translated/part.js:873
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:871
msgid "Delete parameter"
msgstr "Paraméter törlése"
-#: templates/js/translated/company.js:805 templates/js/translated/part.js:890
+#: templates/js/translated/company.js:840 templates/js/translated/part.js:888
msgid "Edit Parameter"
msgstr "Paraméter szerkesztése"
-#: templates/js/translated/company.js:816 templates/js/translated/part.js:902
+#: templates/js/translated/company.js:851 templates/js/translated/part.js:900
msgid "Delete Parameter"
msgstr "Paraméter törlése"
-#: templates/js/translated/company.js:856
+#: templates/js/translated/company.js:891
msgid "No supplier parts found"
msgstr "Nincs beszállítói alkatrész"
-#: templates/js/translated/company.js:1002
+#: templates/js/translated/company.js:1032
+msgid "Availability"
+msgstr ""
+
+#: templates/js/translated/company.js:1055
msgid "Edit supplier part"
msgstr "Beszállítói alkatrész szerkesztése"
-#: templates/js/translated/company.js:1003
+#: templates/js/translated/company.js:1056
msgid "Delete supplier part"
msgstr "Beszállítói alkatrész törlése"
@@ -8548,61 +8581,61 @@ msgstr "Összes szűrő törlése"
msgid "Create filter"
msgstr "Szűrő létrehozása"
-#: templates/js/translated/forms.js:367 templates/js/translated/forms.js:382
-#: templates/js/translated/forms.js:396 templates/js/translated/forms.js:410
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr "Művelet tiltva"
-#: templates/js/translated/forms.js:369
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr "Létrehozás nem engedélyezett"
-#: templates/js/translated/forms.js:384
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr "Módosítás nem engedélyezett"
-#: templates/js/translated/forms.js:398
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr "Törlés nem engedélyezett"
-#: templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr "Megtekintés nem engedélyezett"
-#: templates/js/translated/forms.js:670
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr "Form nyitva tartása"
-#: templates/js/translated/forms.js:771
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr "Adj meg egy érvényes számot"
-#: templates/js/translated/forms.js:1269 templates/modals.html:19
+#: templates/js/translated/forms.js:1274 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr "Form hibák vannak"
-#: templates/js/translated/forms.js:1702
+#: templates/js/translated/forms.js:1707
msgid "No results found"
msgstr "Nincs eredmény"
-#: templates/js/translated/forms.js:1917 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr "Keresés"
-#: templates/js/translated/forms.js:2170
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr "Bevitel törlése"
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "File Column"
msgstr "Fájl oszlop"
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "Field Name"
msgstr "Mező név"
-#: templates/js/translated/forms.js:2648
+#: templates/js/translated/forms.js:2653
msgid "Select Columns"
msgstr "Oszlopok kiválasztása"
@@ -8793,409 +8826,422 @@ msgstr "Nincs olvasatlan értesítés"
msgid "Notifications will load here"
msgstr "Az értesítések itt fognak megjelenni"
-#: templates/js/translated/order.js:96
+#: templates/js/translated/order.js:97
msgid "No stock items have been allocated to this shipment"
msgstr "Ehhez a szállítmányhoz nincs készlet hozzárendelve"
-#: templates/js/translated/order.js:101
+#: templates/js/translated/order.js:102
msgid "The following stock items will be shipped"
msgstr "A következő készlet tételek ki lesznek szállítva"
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:142
msgid "Complete Shipment"
msgstr "Szállítmány kész"
-#: templates/js/translated/order.js:161
+#: templates/js/translated/order.js:162
msgid "Confirm Shipment"
msgstr "Szállítmány megerősítése"
-#: templates/js/translated/order.js:217
+#: templates/js/translated/order.js:218
msgid "No pending shipments found"
msgstr "Nincs függő szállítmány"
-#: templates/js/translated/order.js:221
+#: templates/js/translated/order.js:222
msgid "No stock items have been allocated to pending shipments"
msgstr "A függő a szállítmányokhoz nincs készlet hozzárendelve"
-#: templates/js/translated/order.js:253
+#: templates/js/translated/order.js:254
msgid "Skip"
msgstr "Kihagyás"
-#: templates/js/translated/order.js:283
+#: templates/js/translated/order.js:284
msgid "Complete Purchase Order"
msgstr "Beszerzési rendelés befejezése"
-#: templates/js/translated/order.js:289
+#: templates/js/translated/order.js:301 templates/js/translated/order.js:413
msgid "Mark this order as complete?"
msgstr "Rendelés befejezettnek jelölése?"
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:307
msgid "All line items have been received"
msgstr "Minden sortétel megérkezett"
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:312
msgid "This order has line items which have not been marked as received."
msgstr "Ez a rendelés olyan sortételeket tartalmaz amik még nem érkeztek be."
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:313 templates/js/translated/order.js:427
msgid "Completing this order means that the order and line items will no longer be editable."
msgstr "A rendelés befejezésével jelölésével annak adatai és sortételei a továbbiakban már nem lesznek szerkeszthetők."
-#: templates/js/translated/order.js:324
+#: templates/js/translated/order.js:336
msgid "Cancel Purchase Order"
msgstr "Beszerzési rendelés törlése"
-#: templates/js/translated/order.js:329
+#: templates/js/translated/order.js:341
msgid "Are you sure you wish to cancel this purchase order?"
msgstr "Biztosan törölni szeretnéd ezt a beszerzési rendelést?"
-#: templates/js/translated/order.js:335
+#: templates/js/translated/order.js:347
msgid "This purchase order can not be cancelled"
msgstr "Ezt a beszerzési rendelést nem lehet törölni"
-#: templates/js/translated/order.js:358
+#: templates/js/translated/order.js:370
msgid "Issue Purchase Order"
msgstr "Beszerzési rendelés kiküldése"
-#: templates/js/translated/order.js:363
+#: templates/js/translated/order.js:375
msgid "After placing this purchase order, line items will no longer be editable."
msgstr "A beszerzési rendelés kiküldése után annak sortételei a továbbiakban már nem lesznek szerkeszthetők."
-#: templates/js/translated/order.js:385
+#: templates/js/translated/order.js:426
+msgid "This order has line items which have not been completed."
+msgstr ""
+
+#: templates/js/translated/order.js:450
msgid "Cancel Sales Order"
msgstr "Vevő rendelés törlése"
-#: templates/js/translated/order.js:390
+#: templates/js/translated/order.js:455
msgid "Cancelling this order means that the order will no longer be editable."
msgstr "A rendelés törlésével annak adatai a továbbiakban már nem lesznek szerkeszthetők."
-#: templates/js/translated/order.js:444
+#: templates/js/translated/order.js:509
msgid "Create New Shipment"
msgstr "Szállítmány létrehozása"
-#: templates/js/translated/order.js:469
+#: templates/js/translated/order.js:534
msgid "Add Customer"
msgstr "Vevő hozzáadása"
-#: templates/js/translated/order.js:494
+#: templates/js/translated/order.js:559
msgid "Create Sales Order"
msgstr "Vevői rendelés létrehozása"
-#: templates/js/translated/order.js:555
+#: templates/js/translated/order.js:620
msgid "Select purchase order to duplicate"
msgstr "Válaszd ki a lemásolandó beszerzési rendelést"
-#: templates/js/translated/order.js:562
+#: templates/js/translated/order.js:627
msgid "Duplicate Line Items"
msgstr "Sortételek másolása"
-#: templates/js/translated/order.js:563
+#: templates/js/translated/order.js:628
msgid "Duplicate all line items from the selected order"
msgstr "Összes sortétel másolása a kiválasztott rendelésből"
-#: templates/js/translated/order.js:570
+#: templates/js/translated/order.js:635
msgid "Duplicate Extra Lines"
msgstr "Egyéb tételek másolása"
-#: templates/js/translated/order.js:571
+#: templates/js/translated/order.js:636
msgid "Duplicate extra line items from the selected order"
msgstr "Összes egyéb tétel másolása a kiválasztott rendelésből"
-#: templates/js/translated/order.js:588
+#: templates/js/translated/order.js:653
msgid "Edit Purchase Order"
msgstr "Beszerzési rendelés szerkesztése"
-#: templates/js/translated/order.js:605
+#: templates/js/translated/order.js:670
msgid "Duplication Options"
msgstr "Másolási opciók"
-#: templates/js/translated/order.js:863
+#: templates/js/translated/order.js:957
msgid "Export Order"
msgstr "Rendelés exportálása"
-#: templates/js/translated/order.js:914
+#: templates/js/translated/order.js:1008
msgid "At least one purchaseable part must be selected"
msgstr "Legalább egy beszerezhető alkatrészt ki kell választani"
-#: templates/js/translated/order.js:939
+#: templates/js/translated/order.js:1033
msgid "Quantity to order"
msgstr "Rendelendő mennyiség"
-#: templates/js/translated/order.js:948
+#: templates/js/translated/order.js:1042
msgid "New supplier part"
msgstr "Új beszállítói alkatrész"
-#: templates/js/translated/order.js:966
+#: templates/js/translated/order.js:1060
msgid "New purchase order"
msgstr "Új beszerzési rendelés"
-#: templates/js/translated/order.js:999
+#: templates/js/translated/order.js:1093
msgid "Add to purchase order"
msgstr "Hozzáadás beszerzési rendeléshez"
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1233
msgid "No matching supplier parts"
msgstr "Nincsenek egyező beszállítói alkatrészek"
-#: templates/js/translated/order.js:1123
+#: templates/js/translated/order.js:1252
msgid "No matching purchase orders"
msgstr "Nincsenek egyező beszerzési rendelések"
-#: templates/js/translated/order.js:1300
+#: templates/js/translated/order.js:1429
msgid "Select Line Items"
msgstr "Sortételek kiválasztása"
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1430
msgid "At least one line item must be selected"
msgstr "Legalább egy sortételt ki kell választani"
-#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420
+#: templates/js/translated/order.js:1450 templates/js/translated/order.js:1563
msgid "Add batch code"
msgstr "Batch kód hozzáadása"
-#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431
+#: templates/js/translated/order.js:1456 templates/js/translated/order.js:1574
msgid "Add serial numbers"
msgstr "Sorozatszám hozzáadása"
-#: templates/js/translated/order.js:1339
+#: templates/js/translated/order.js:1471
+msgid "Received Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:1482
msgid "Quantity to receive"
msgstr "Érkező mennyiség"
-#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144
+#: templates/js/translated/order.js:1546 templates/js/translated/stock.js:2140
msgid "Stock Status"
msgstr "Készlet állapota"
-#: templates/js/translated/order.js:1494
+#: templates/js/translated/order.js:1639
msgid "Order Code"
msgstr "Rendelési kód"
-#: templates/js/translated/order.js:1495
+#: templates/js/translated/order.js:1640
msgid "Ordered"
msgstr "Megrendelve"
-#: templates/js/translated/order.js:1497
+#: templates/js/translated/order.js:1642
msgid "Quantity to Receive"
msgstr "Érkező mennyiség"
-#: templates/js/translated/order.js:1516
+#: templates/js/translated/order.js:1661
msgid "Confirm receipt of items"
msgstr "Bevételezés megerősítése"
-#: templates/js/translated/order.js:1517
+#: templates/js/translated/order.js:1662
msgid "Receive Purchase Order Items"
msgstr "Beszerzési rendelés tételeinek bevételezése"
-#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943
+#: templates/js/translated/order.js:1940 templates/js/translated/part.js:941
msgid "No purchase orders found"
msgstr "Nem található beszerzési rendelés"
-#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2803
msgid "Order is overdue"
msgstr "Rendelés késésben"
-#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674
-#: templates/js/translated/order.js:2815
+#: templates/js/translated/order.js:2017 templates/js/translated/order.js:2868
+#: templates/js/translated/order.js:3009
msgid "Items"
msgstr "Tételek"
-#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889
+#: templates/js/translated/order.js:2115 templates/js/translated/order.js:4083
msgid "Duplicate Line Item"
msgstr "Sortétel másolása"
-#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911
+#: templates/js/translated/order.js:2132 templates/js/translated/order.js:4105
msgid "Edit Line Item"
msgstr "Sortétel szerkesztése"
-#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:4116
msgid "Delete Line Item"
msgstr "Sortétel törlése"
-#: templates/js/translated/order.js:2026
+#: templates/js/translated/order.js:2188
msgid "No line items found"
msgstr "Nem találhatók sortételek"
-#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:2215 templates/js/translated/order.js:3817
msgid "Total"
msgstr "Összesen"
-#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309
-#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156
-#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753
+#: templates/js/translated/order.js:2270 templates/js/translated/part.js:1043
+#: templates/js/translated/part.js:1095
+msgid "Total Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:2301 templates/js/translated/order.js:2503
+#: templates/js/translated/order.js:3842 templates/js/translated/order.js:4350
+#: templates/js/translated/part.js:2184 templates/js/translated/part.js:2782
msgid "Unit Price"
msgstr "Egységár"
-#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325
-#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172
+#: templates/js/translated/order.js:2316 templates/js/translated/order.js:2519
+#: templates/js/translated/order.js:3858 templates/js/translated/order.js:4366
msgid "Total Price"
msgstr "Teljes ár"
-#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706
-#: templates/js/translated/part.js:1070
+#: templates/js/translated/order.js:2357 templates/js/translated/order.js:3900
+#: templates/js/translated/part.js:1079
msgid "This line item is overdue"
msgstr "Ez a sortétel késésben van"
-#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110
+#: templates/js/translated/order.js:2416 templates/js/translated/part.js:1130
msgid "Receive line item"
msgstr "Sortétel bevételezése"
-#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2420 templates/js/translated/order.js:4037
msgid "Duplicate line item"
msgstr "Sortétel másolása"
-#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844
+#: templates/js/translated/order.js:2421 templates/js/translated/order.js:4038
msgid "Edit line item"
msgstr "Sortétel szerkesztése"
-#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848
+#: templates/js/translated/order.js:2422 templates/js/translated/order.js:4042
msgid "Delete line item"
msgstr "Sortétel törlése"
-#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221
+#: templates/js/translated/order.js:2568 templates/js/translated/order.js:4415
msgid "Duplicate line"
msgstr "Sor másolása"
-#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222
+#: templates/js/translated/order.js:2569 templates/js/translated/order.js:4416
msgid "Edit line"
msgstr "Sor szerkesztése"
-#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223
+#: templates/js/translated/order.js:2570 templates/js/translated/order.js:4417
msgid "Delete line"
msgstr "Sor törlése"
-#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253
+#: templates/js/translated/order.js:2600 templates/js/translated/order.js:4447
msgid "Duplicate Line"
msgstr "Sor másolása"
-#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274
+#: templates/js/translated/order.js:2621 templates/js/translated/order.js:4468
msgid "Edit Line"
msgstr "Sor szerkesztése"
-#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285
+#: templates/js/translated/order.js:2632 templates/js/translated/order.js:4479
msgid "Delete Line"
msgstr "Sor törlése"
-#: templates/js/translated/order.js:2449
+#: templates/js/translated/order.js:2643
msgid "No matching line"
msgstr "Nincs egyező sor"
-#: templates/js/translated/order.js:2560
+#: templates/js/translated/order.js:2754
msgid "No sales orders found"
msgstr "Nem található vevői rendelés"
-#: templates/js/translated/order.js:2623
+#: templates/js/translated/order.js:2817
msgid "Invalid Customer"
msgstr "Érvénytelen vevő"
-#: templates/js/translated/order.js:2721
+#: templates/js/translated/order.js:2915
msgid "Edit shipment"
msgstr "Szállítmány szerkesztése"
-#: templates/js/translated/order.js:2724
+#: templates/js/translated/order.js:2918
msgid "Complete shipment"
msgstr "Szállítmány kész"
-#: templates/js/translated/order.js:2729
+#: templates/js/translated/order.js:2923
msgid "Delete shipment"
msgstr "Szállítmány törlése"
-#: templates/js/translated/order.js:2749
+#: templates/js/translated/order.js:2943
msgid "Edit Shipment"
msgstr "Szállítmány szerkesztése"
-#: templates/js/translated/order.js:2766
+#: templates/js/translated/order.js:2960
msgid "Delete Shipment"
msgstr "Szállítmány törlése"
-#: templates/js/translated/order.js:2800
+#: templates/js/translated/order.js:2994
msgid "No matching shipments found"
msgstr "Nincs egyező szállímány"
-#: templates/js/translated/order.js:2810
+#: templates/js/translated/order.js:3004
msgid "Shipment Reference"
msgstr "Szállítmány azonosító"
-#: templates/js/translated/order.js:2834
+#: templates/js/translated/order.js:3028
msgid "Not shipped"
msgstr "Nincs kiszállítva"
-#: templates/js/translated/order.js:2840
+#: templates/js/translated/order.js:3034
msgid "Tracking"
msgstr "Nyomkövetés"
-#: templates/js/translated/order.js:2844
+#: templates/js/translated/order.js:3038
msgid "Invoice"
msgstr "Számla"
-#: templates/js/translated/order.js:3013
+#: templates/js/translated/order.js:3207
msgid "Add Shipment"
msgstr "Szállítmány hozzáadása"
-#: templates/js/translated/order.js:3064
+#: templates/js/translated/order.js:3258
msgid "Confirm stock allocation"
msgstr "Készlet foglalás megerősítése"
-#: templates/js/translated/order.js:3065
+#: templates/js/translated/order.js:3259
msgid "Allocate Stock Items to Sales Order"
msgstr "Készlet foglalása a vevői rendeléshez"
-#: templates/js/translated/order.js:3273
+#: templates/js/translated/order.js:3467
msgid "No sales order allocations found"
msgstr "Nincs vevői rendeléshez történő foglalás"
-#: templates/js/translated/order.js:3352
+#: templates/js/translated/order.js:3546
msgid "Edit Stock Allocation"
msgstr "Készlet foglalások szerkesztése"
-#: templates/js/translated/order.js:3369
+#: templates/js/translated/order.js:3563
msgid "Confirm Delete Operation"
msgstr "Törlési művelet megerősítése"
-#: templates/js/translated/order.js:3370
+#: templates/js/translated/order.js:3564
msgid "Delete Stock Allocation"
msgstr "Készlet foglalások törlése"
-#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504
+#: templates/js/translated/order.js:3609 templates/js/translated/order.js:3698
#: templates/js/translated/stock.js:1602
msgid "Shipped to customer"
msgstr "Vevőnek kiszállítva"
-#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513
+#: templates/js/translated/order.js:3617 templates/js/translated/order.js:3707
msgid "Stock location not specified"
msgstr "Készlethely nincs megadva"
-#: templates/js/translated/order.js:3827
+#: templates/js/translated/order.js:4021
msgid "Allocate serial numbers"
msgstr "Sorozatszámok kiosztása"
-#: templates/js/translated/order.js:3833
+#: templates/js/translated/order.js:4027
msgid "Purchase stock"
msgstr "Készletrendelés"
-#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038
+#: templates/js/translated/order.js:4034 templates/js/translated/order.js:4232
msgid "Calculate price"
msgstr "Árszámítás"
-#: templates/js/translated/order.js:3852
+#: templates/js/translated/order.js:4046
msgid "Cannot be deleted as items have been shipped"
msgstr "Nem törölhető mivel a tételek ki lettek szállítva"
-#: templates/js/translated/order.js:3855
+#: templates/js/translated/order.js:4049
msgid "Cannot be deleted as items have been allocated"
msgstr "Nem törölhető mivel tételek vannak lefoglalva"
-#: templates/js/translated/order.js:3937
+#: templates/js/translated/order.js:4131
msgid "Allocate Serial Numbers"
msgstr "Sorozatszámok kiosztása"
-#: templates/js/translated/order.js:4046
+#: templates/js/translated/order.js:4240
msgid "Update Unit Price"
msgstr "Egységár módosítása"
-#: templates/js/translated/order.js:4060
+#: templates/js/translated/order.js:4254
msgid "No matching line items"
msgstr "Nincs egyező sortétel"
-#: templates/js/translated/order.js:4296
+#: templates/js/translated/order.js:4490
msgid "No matching lines"
msgstr "Nincsenek egyező sorok"
@@ -9375,173 +9421,177 @@ msgstr "Alkatrészjegyzék jóvá lett hagyva"
msgid "Copy Bill of Materials"
msgstr "Alkatrészjegyzék másolása"
-#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498
+#: templates/js/translated/part.js:584 templates/js/translated/part.js:1515
#: templates/js/translated/table_filters.js:468
msgid "Low stock"
msgstr "Alacsony készlet"
-#: templates/js/translated/part.js:596
+#: templates/js/translated/part.js:594
msgid "No stock available"
msgstr "Nincs szabad"
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:715
+#: templates/js/translated/part.js:628 templates/js/translated/part.js:713
msgid "Trackable part"
msgstr "Követésre kötelezett alkatrész"
-#: templates/js/translated/part.js:634 templates/js/translated/part.js:719
+#: templates/js/translated/part.js:632 templates/js/translated/part.js:717
msgid "Virtual part"
msgstr "Virtuális alkatrész"
-#: templates/js/translated/part.js:646
+#: templates/js/translated/part.js:644
msgid "Subscribed part"
msgstr "Értesítésre beállított alkatrész"
-#: templates/js/translated/part.js:650
+#: templates/js/translated/part.js:648
msgid "Salable part"
msgstr "Értékesíthető alkatrész"
-#: templates/js/translated/part.js:778
+#: templates/js/translated/part.js:776
msgid "No variants found"
msgstr "Nincs több változat"
-#: templates/js/translated/part.js:1180
+#: templates/js/translated/part.js:1200
msgid "Delete part relationship"
msgstr "Alkatrész kapcsolatok törlése"
-#: templates/js/translated/part.js:1204
+#: templates/js/translated/part.js:1224
msgid "Delete Part Relationship"
msgstr "Alkatrész kapcsolatok törlése"
-#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573
+#: templates/js/translated/part.js:1291 templates/js/translated/part.js:1602
msgid "No parts found"
msgstr "Nincs alkatrész"
-#: templates/js/translated/part.js:1310
-msgid "Not available"
-msgstr "Nincs szabad"
-
-#: templates/js/translated/part.js:1461
+#: templates/js/translated/part.js:1482
msgid "No category"
msgstr "Nincs kategória"
-#: templates/js/translated/part.js:1496
+#: templates/js/translated/part.js:1513
msgid "No stock"
msgstr "Nincs készlet"
-#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840
-#: templates/js/translated/stock.js:2347
+#: templates/js/translated/part.js:1537
+msgid "Allocated to build orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1541
+msgid "Allocated to sales orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1626 templates/js/translated/part.js:1869
+#: templates/js/translated/stock.js:2343
msgid "Display as list"
msgstr "Megjelenítés listaként"
-#: templates/js/translated/part.js:1613
+#: templates/js/translated/part.js:1642
msgid "Display as grid"
msgstr "Megjelenítés rácsnézetként"
-#: templates/js/translated/part.js:1679
+#: templates/js/translated/part.js:1708
msgid "Set the part category for the selected parts"
msgstr "Kategória beállítása a kiválasztott alkatrészekhez"
-#: templates/js/translated/part.js:1684
+#: templates/js/translated/part.js:1713
msgid "Set Part Category"
msgstr "Alkatrész kategória beállítása"
-#: templates/js/translated/part.js:1689
+#: templates/js/translated/part.js:1718
msgid "Select Part Category"
msgstr "Alkatrész kategória kiválasztása"
-#: templates/js/translated/part.js:1702
+#: templates/js/translated/part.js:1731
msgid "Category is required"
msgstr "Kategória megadása kötelező"
-#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366
+#: templates/js/translated/part.js:1888 templates/js/translated/stock.js:2362
msgid "Display as tree"
msgstr "Megjelenítés fában"
-#: templates/js/translated/part.js:1938
+#: templates/js/translated/part.js:1967
msgid "Load Subcategories"
msgstr "Alkategóriák betöltése"
-#: templates/js/translated/part.js:1954
+#: templates/js/translated/part.js:1983
msgid "Subscribed category"
msgstr "Értesítésre beállított kategória"
-#: templates/js/translated/part.js:2012
+#: templates/js/translated/part.js:2041
msgid "No test templates matching query"
msgstr "Nincs a lekérdezéssel egyező teszt sablon"
-#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299
+#: templates/js/translated/part.js:2092 templates/js/translated/stock.js:1299
msgid "Edit test result"
msgstr "Teszt eredmény szerkesztése"
-#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300
+#: templates/js/translated/part.js:2093 templates/js/translated/stock.js:1300
#: templates/js/translated/stock.js:1560
msgid "Delete test result"
msgstr "Teszt eredmény törlése"
-#: templates/js/translated/part.js:2070
+#: templates/js/translated/part.js:2099
msgid "This test is defined for a parent part"
msgstr "Ez a teszt a szülő alkatrészhez lett felvéve"
-#: templates/js/translated/part.js:2092
+#: templates/js/translated/part.js:2121
msgid "Edit Test Result Template"
msgstr "Teszt eredmény sablon szerkesztése"
-#: templates/js/translated/part.js:2106
+#: templates/js/translated/part.js:2135
msgid "Delete Test Result Template"
msgstr "Teszt eredmény sablon törlése"
-#: templates/js/translated/part.js:2131
+#: templates/js/translated/part.js:2160
#, python-brace-format
msgid "No ${human_name} information found"
msgstr "Nincs ${human_name} információ"
-#: templates/js/translated/part.js:2188
+#: templates/js/translated/part.js:2217
#, python-brace-format
msgid "Edit ${human_name}"
msgstr "${human_name} szerkesztése"
-#: templates/js/translated/part.js:2189
+#: templates/js/translated/part.js:2218
#, python-brace-format
msgid "Delete ${human_name}"
msgstr "${human_name} törlése"
-#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355
+#: templates/js/translated/part.js:2383 templates/js/translated/part.js:2384
msgid "No date specified"
msgstr "Nincs megadva dátum"
-#: templates/js/translated/part.js:2357
+#: templates/js/translated/part.js:2386
msgid "Specified date is in the past"
msgstr "A megadott dátum a múltban van"
-#: templates/js/translated/part.js:2363
+#: templates/js/translated/part.js:2392
msgid "Speculative"
msgstr "Spekulatív"
-#: templates/js/translated/part.js:2413
+#: templates/js/translated/part.js:2442
msgid "No scheduling information available for this part"
msgstr "Az alkatrészhez nem áll rendelkezésre ütemezési információ"
-#: templates/js/translated/part.js:2419
+#: templates/js/translated/part.js:2448
msgid "Error fetching scheduling information for this part"
msgstr "Hiba az alkatrész ütemezési információinak betöltésekor"
-#: templates/js/translated/part.js:2515
+#: templates/js/translated/part.js:2544
msgid "Scheduled Stock Quantities"
msgstr "Ütemezett készlet mennyiség"
-#: templates/js/translated/part.js:2531
+#: templates/js/translated/part.js:2560
msgid "Maximum Quantity"
msgstr "Minimum mennyiség"
-#: templates/js/translated/part.js:2576
+#: templates/js/translated/part.js:2605
msgid "Minimum Stock Level"
msgstr "Minimális készlet"
-#: templates/js/translated/part.js:2677
+#: templates/js/translated/part.js:2706
msgid "Single Price"
msgstr "Egységes ár"
-#: templates/js/translated/part.js:2696
+#: templates/js/translated/part.js:2725
msgid "Single Price Difference"
msgstr "Egységes ár különbség"
@@ -9779,7 +9829,7 @@ msgstr "Kivesz"
msgid "Add Stock"
msgstr "Készlet növelése"
-#: templates/js/translated/stock.js:942 users/models.py:216
+#: templates/js/translated/stock.js:942 users/models.py:218
msgid "Add"
msgstr "Hozzáad"
@@ -9855,156 +9905,156 @@ msgstr "Vevő rendeléshez hozzárendelve"
msgid "No stock location set"
msgstr "Nincs hely megadva"
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1775
msgid "Stock item is in production"
msgstr "Készlet tétel gyártás alatt"
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1780
msgid "Stock item assigned to sales order"
msgstr "Készlet tétel hozzárendelve egy vevői rendeléshez"
-#: templates/js/translated/stock.js:1787
+#: templates/js/translated/stock.js:1783
msgid "Stock item assigned to customer"
msgstr "Készlet tétel hozzárendelve egy vevőhöz"
-#: templates/js/translated/stock.js:1790
+#: templates/js/translated/stock.js:1786
msgid "Serialized stock item has been allocated"
msgstr "Egyedi követésre kötelezett készlet tétel lefoglalva"
-#: templates/js/translated/stock.js:1792
+#: templates/js/translated/stock.js:1788
msgid "Stock item has been fully allocated"
msgstr "Készlet tétel teljes egészében lefoglalva"
-#: templates/js/translated/stock.js:1794
+#: templates/js/translated/stock.js:1790
msgid "Stock item has been partially allocated"
msgstr "Készlet tétel részben lefoglalva"
-#: templates/js/translated/stock.js:1797
+#: templates/js/translated/stock.js:1793
msgid "Stock item has been installed in another item"
msgstr "Készlet tétel beépítve egy másikba"
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1797
msgid "Stock item has expired"
msgstr "Készlet tétel lejárt"
-#: templates/js/translated/stock.js:1803
+#: templates/js/translated/stock.js:1799
msgid "Stock item will expire soon"
msgstr "Készlet tétel hamarosan lejár"
-#: templates/js/translated/stock.js:1810
+#: templates/js/translated/stock.js:1806
msgid "Stock item has been rejected"
msgstr "Készlet tétel elutasítva"
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:1808
msgid "Stock item is lost"
msgstr "Készlet tétel elveszett"
-#: templates/js/translated/stock.js:1814
+#: templates/js/translated/stock.js:1810
msgid "Stock item is destroyed"
msgstr "Készlet tétel megsemmisült"
-#: templates/js/translated/stock.js:1818
+#: templates/js/translated/stock.js:1814
#: templates/js/translated/table_filters.js:196
msgid "Depleted"
msgstr "Kimerült"
-#: templates/js/translated/stock.js:1869
+#: templates/js/translated/stock.js:1865
msgid "Stocktake"
msgstr "Leltár"
-#: templates/js/translated/stock.js:1948
+#: templates/js/translated/stock.js:1944
msgid "Supplier part not specified"
msgstr "Beszállítói alkatrész nincs megadva"
-#: templates/js/translated/stock.js:1986
+#: templates/js/translated/stock.js:1982
msgid "No stock items matching query"
msgstr "Nincs a lekérdezésnek megfelelő készlet tétel"
-#: templates/js/translated/stock.js:2159
+#: templates/js/translated/stock.js:2155
msgid "Set Stock Status"
msgstr "Készlet állapot beállítása"
-#: templates/js/translated/stock.js:2173
+#: templates/js/translated/stock.js:2169
msgid "Select Status Code"
msgstr "Státuszkód kiválasztása"
-#: templates/js/translated/stock.js:2174
+#: templates/js/translated/stock.js:2170
msgid "Status code must be selected"
msgstr "Státuszkódot ki kell választani"
-#: templates/js/translated/stock.js:2404
+#: templates/js/translated/stock.js:2400
msgid "Load Subloactions"
msgstr "Alhelyek betöltése"
-#: templates/js/translated/stock.js:2493
+#: templates/js/translated/stock.js:2489
msgid "Details"
msgstr "Részletek"
-#: templates/js/translated/stock.js:2509
+#: templates/js/translated/stock.js:2505
msgid "Part information unavailable"
msgstr "Alkatrész információ nem áll rendelkezésre"
-#: templates/js/translated/stock.js:2531
+#: templates/js/translated/stock.js:2527
msgid "Location no longer exists"
msgstr "A hely már nem létezik"
-#: templates/js/translated/stock.js:2550
+#: templates/js/translated/stock.js:2546
msgid "Purchase order no longer exists"
msgstr "Beszerzési megrendelés már nem létezik"
-#: templates/js/translated/stock.js:2569
+#: templates/js/translated/stock.js:2565
msgid "Customer no longer exists"
msgstr "Vevő már nem létezik"
-#: templates/js/translated/stock.js:2587
+#: templates/js/translated/stock.js:2583
msgid "Stock item no longer exists"
msgstr "A készlet tétel már nem létezik"
-#: templates/js/translated/stock.js:2610
+#: templates/js/translated/stock.js:2606
msgid "Added"
msgstr "Hozzáadva"
-#: templates/js/translated/stock.js:2618
+#: templates/js/translated/stock.js:2614
msgid "Removed"
msgstr "Eltávolítva"
-#: templates/js/translated/stock.js:2694
+#: templates/js/translated/stock.js:2690
msgid "No installed items"
msgstr "Nincsenek beépített tételek"
-#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781
+#: templates/js/translated/stock.js:2741 templates/js/translated/stock.js:2777
msgid "Uninstall Stock Item"
msgstr "Készlet tétel kiszedése"
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2790
msgid "Select stock item to uninstall"
msgstr "Válaszd ki a kiszedni való készlet tételt"
-#: templates/js/translated/stock.js:2815
+#: templates/js/translated/stock.js:2811
msgid "Install another stock item into this item"
msgstr "Másik tétel beépítése ebbe a készlet tételbe"
-#: templates/js/translated/stock.js:2816
+#: templates/js/translated/stock.js:2812
msgid "Stock items can only be installed if they meet the following criteria"
msgstr "Készlet tételek csak akkor építhetők be ha teljesítik a következő kritériumokat"
-#: templates/js/translated/stock.js:2818
+#: templates/js/translated/stock.js:2814
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr "A készlet tétel egy olyan alkatrészre mutat ami alkatrészjegyzéke ennek a készlet tételnek"
-#: templates/js/translated/stock.js:2819
+#: templates/js/translated/stock.js:2815
msgid "The Stock Item is currently available in stock"
msgstr "A készlet tétel jelenleg elérhető készleten"
-#: templates/js/translated/stock.js:2820
+#: templates/js/translated/stock.js:2816
msgid "The Stock Item is not already installed in another item"
msgstr "A készlet tétel még nem épült be egy másik tételbe"
-#: templates/js/translated/stock.js:2821
+#: templates/js/translated/stock.js:2817
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr "A készlet tétel követett vagy sorozatszámmal vagy batch kóddal"
-#: templates/js/translated/stock.js:2834
+#: templates/js/translated/stock.js:2830
msgid "Select part to install"
msgstr "Válaszd ki a beépítendő alkatrészt"
@@ -10526,35 +10576,35 @@ msgstr "Jogosultságok"
msgid "Important dates"
msgstr "Fontos dátumok"
-#: users/models.py:203
+#: users/models.py:205
msgid "Permission set"
msgstr "Jogosultságok"
-#: users/models.py:211
+#: users/models.py:213
msgid "Group"
msgstr "Csoport"
-#: users/models.py:214
+#: users/models.py:216
msgid "View"
msgstr "Nézet"
-#: users/models.py:214
+#: users/models.py:216
msgid "Permission to view items"
msgstr "Jogosultság tételek megtekintéséhez"
-#: users/models.py:216
+#: users/models.py:218
msgid "Permission to add items"
msgstr "Jogosultság tételek hozzáadásához"
-#: users/models.py:218
+#: users/models.py:220
msgid "Change"
msgstr "Módosítás"
-#: users/models.py:218
+#: users/models.py:220
msgid "Permissions to edit items"
msgstr "Jogosultság tételek szerkesztéséhez"
-#: users/models.py:220
+#: users/models.py:222
msgid "Permission to delete items"
msgstr "Jogosultság tételek törléséhez"
diff --git a/InvenTree/locale/id/LC_MESSAGES/django.po b/InvenTree/locale/id/LC_MESSAGES/django.po
index 8a2e48de97..02836fffea 100644
--- a/InvenTree/locale/id/LC_MESSAGES/django.po
+++ b/InvenTree/locale/id/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-08-25 10:08+0000\n"
-"PO-Revision-Date: 2022-08-26 01:55\n"
+"POT-Creation-Date: 2022-09-09 02:44+0000\n"
+"PO-Revision-Date: 2022-09-09 03:56\n"
"Last-Translator: \n"
"Language-Team: Indonesian\n"
"Language: id_ID\n"
@@ -29,9 +29,9 @@ msgstr ""
msgid "Enter date"
msgstr "Masukkan tanggal"
-#: InvenTree/fields.py:186 build/serializers.py:384
-#: build/templates/build/sidebar.html:21 company/models.py:523
-#: company/templates/company/sidebar.html:25 order/models.py:906
+#: InvenTree/fields.py:183 build/serializers.py:384
+#: build/templates/build/sidebar.html:21 company/models.py:524
+#: company/templates/company/sidebar.html:25 order/models.py:910
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17
#: part/templates/part/part_sidebar.html:59
@@ -40,11 +40,12 @@ msgstr "Masukkan tanggal"
#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823
#: stock/serializers.py:922 stock/serializers.py:1054
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099
-#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210
-#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859
-#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208
-#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1107
+#: templates/js/translated/company.js:1022
+#: templates/js/translated/order.js:2404 templates/js/translated/order.js:2555
+#: templates/js/translated/order.js:3053 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:4402 templates/js/translated/stock.js:1374
+#: templates/js/translated/stock.js:1976
msgid "Notes"
msgstr ""
@@ -210,12 +211,12 @@ msgid "Select file to attach"
msgstr ""
#: InvenTree/models.py:402 company/models.py:124 company/models.py:276
-#: company/models.py:510 order/models.py:84 order/models.py:1245
+#: company/models.py:511 order/models.py:84 order/models.py:1249
#: part/models.py:802 part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
-#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848
-#: templates/js/translated/part.js:1534
+#: templates/js/translated/company.js:691
+#: templates/js/translated/company.js:1011
+#: templates/js/translated/order.js:3042 templates/js/translated/part.js:1563
msgid "Link"
msgstr ""
@@ -233,12 +234,12 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665
-#: common/models.py:1666 common/models.py:1889 common/models.py:1890
-#: common/models.py:2152 common/models.py:2153 part/models.py:2239
-#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257
+#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1669
+#: common/models.py:1670 common/models.py:1893 common/models.py:1894
+#: common/models.py:2156 common/models.py:2157 part/models.py:2247
+#: part/models.py:2267 plugin/models.py:260 plugin/models.py:261
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2641
+#: templates/js/translated/stock.js:2637
msgid "User"
msgstr ""
@@ -275,28 +276,28 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875
+#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1879
#: company/models.py:358 label/models.py:101 part/models.py:746
-#: part/models.py:2417 plugin/models.py:94 report/models.py:152
+#: part/models.py:2425 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin.html:134
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:347
-#: templates/js/translated/company.js:545
-#: templates/js/translated/company.js:758
+#: templates/js/translated/company.js:580
+#: templates/js/translated/company.js:793
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:688 templates/js/translated/part.js:840
-#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392
+#: templates/js/translated/part.js:686 templates/js/translated/part.js:838
+#: templates/js/translated/part.js:1955 templates/js/translated/stock.js:2388
msgid "Name"
msgstr ""
#: InvenTree/models.py:544 build/models.py:174
#: build/templates/build/detail.html:24 company/models.py:282
-#: company/models.py:516 company/templates/company/company_base.html:71
+#: company/models.py:517 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:87 label/models.py:108
-#: order/models.py:82 part/models.py:769 part/models.py:2429
+#: company/templates/company/supplier_part.html:92 label/models.py:108
+#: order/models.py:82 part/models.py:769 part/models.py:2437
#: part/templates/part/category.html:80 part/templates/part/part_base.html:167
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
@@ -305,14 +306,14 @@ msgstr ""
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/InvenTree/settings/settings.html:358
#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846
-#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409
-#: templates/js/translated/company.js:667
-#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637
-#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167
-#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962
-#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743
-#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478
+#: templates/js/translated/build.js:2512 templates/js/translated/company.js:444
+#: templates/js/translated/company.js:702
+#: templates/js/translated/company.js:986 templates/js/translated/order.js:1988
+#: templates/js/translated/order.js:2220 templates/js/translated/order.js:2831
+#: templates/js/translated/part.js:745 templates/js/translated/part.js:1187
+#: templates/js/translated/part.js:1463 templates/js/translated/part.js:1991
+#: templates/js/translated/part.js:2060 templates/js/translated/stock.js:1743
+#: templates/js/translated/stock.js:2420 templates/js/translated/stock.js:2474
msgid "Description"
msgstr ""
@@ -325,7 +326,7 @@ msgid "parent"
msgstr ""
#: InvenTree/models.py:560 InvenTree/models.py:561
-#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:2426
msgid "Path"
msgstr ""
@@ -337,7 +338,7 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2745
+#: InvenTree/serializers.py:55 part/models.py:2753
msgid "Must be a valid number"
msgstr ""
@@ -522,7 +523,7 @@ msgid "Placed"
msgstr ""
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr ""
@@ -542,8 +543,8 @@ msgstr ""
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:141 order/models.py:1128
-#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785
+#: InvenTree/status_codes.py:141 order/models.py:1132
+#: templates/js/translated/order.js:3630 templates/js/translated/order.js:3979
msgid "Shipped"
msgstr ""
@@ -627,7 +628,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080
msgid "Merged stock items"
msgstr ""
@@ -717,7 +718,7 @@ msgstr ""
msgid "About InvenTree"
msgstr ""
-#: build/api.py:217
+#: build/api.py:219
msgid "Build must be cancelled before it can be deleted"
msgstr ""
@@ -748,15 +749,15 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:166 order/models.py:240 order/models.py:623
-#: order/models.py:904 part/models.py:2663
+#: build/models.py:166 order/models.py:240 order/models.py:627
+#: order/models.py:908 part/models.py:2671
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853
-#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089
-#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629
-#: templates/js/translated/order.js:4137
+#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2251
+#: templates/js/translated/order.js:2484 templates/js/translated/order.js:3823
+#: templates/js/translated/order.js:4331
msgid "Reference"
msgstr ""
@@ -774,12 +775,12 @@ msgid "BuildOrder to which this build is allocated"
msgstr ""
#: build/models.py:191 build/templates/build/build_base.html:80
-#: build/templates/build/detail.html:29 company/models.py:670
-#: order/models.py:1001 order/models.py:1112 order/models.py:1113
-#: part/models.py:343 part/models.py:2185 part/models.py:2200
-#: part/models.py:2219 part/models.py:2237 part/models.py:2336
-#: part/models.py:2463 part/models.py:2553 part/models.py:2638
-#: part/models.py:2914 part/serializers.py:814
+#: build/templates/build/detail.html:29 company/models.py:679
+#: order/models.py:1005 order/models.py:1116 order/models.py:1117
+#: part/models.py:343 part/models.py:2193 part/models.py:2208
+#: part/models.py:2227 part/models.py:2245 part/models.py:2344
+#: part/models.py:2471 part/models.py:2561 part/models.py:2646
+#: part/models.py:2922 part/serializers.py:814
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -795,18 +796,18 @@ msgstr ""
#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800
#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682
#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517
-#: templates/js/translated/company.js:266
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:608
-#: templates/js/translated/company.js:868 templates/js/translated/order.js:105
-#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493
-#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613
-#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224
-#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586
+#: templates/js/translated/company.js:301
+#: templates/js/translated/company.js:531
+#: templates/js/translated/company.js:643
+#: templates/js/translated/company.js:904 templates/js/translated/order.js:106
+#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1638
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:3185
+#: templates/js/translated/order.js:3581 templates/js/translated/order.js:3807
+#: templates/js/translated/part.js:1172 templates/js/translated/part.js:1244
+#: templates/js/translated/part.js:1441 templates/js/translated/stock.js:586
#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504
-#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833
+#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2500
+#: templates/js/translated/stock.js:2695 templates/js/translated/stock.js:2829
msgid "Part"
msgstr ""
@@ -823,7 +824,7 @@ msgid "SalesOrder to which this build is allocated"
msgstr ""
#: build/models.py:213 build/serializers.py:800
-#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979
+#: templates/js/translated/build.js:2114 templates/js/translated/order.js:3173
msgid "Source Location"
msgstr ""
@@ -863,8 +864,8 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:251 build/serializers.py:225 order/serializers.py:447
-#: stock/models.py:662 templates/js/translated/order.js:1353
+#: build/models.py:251 build/serializers.py:225 order/serializers.py:464
+#: stock/models.py:662 templates/js/translated/order.js:1496
msgid "Batch Code"
msgstr ""
@@ -873,11 +874,11 @@ msgid "Batch code for this build output"
msgstr ""
#: build/models.py:258 order/models.py:86 part/models.py:938
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2844
msgid "Creation Date"
msgstr ""
-#: build/models.py:262 order/models.py:648
+#: build/models.py:262 order/models.py:652
msgid "Target completion date"
msgstr ""
@@ -904,10 +905,10 @@ msgstr ""
#: build/models.py:289 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:100
-#: order/templates/order/order_base.html:179
+#: order/templates/order/order_base.html:185
#: order/templates/order/sales_order_base.html:183 part/models.py:942
#: report/templates/report/inventree_build_order_base.html:158
-#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860
+#: templates/js/translated/build.js:2574 templates/js/translated/order.js:2022
msgid "Responsible"
msgstr ""
@@ -917,9 +918,9 @@ msgstr ""
#: build/models.py:295 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
-#: company/templates/company/supplier_part.html:153
+#: company/templates/company/supplier_part.html:165
#: part/templates/part/part_base.html:346 stock/models.py:656
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr ""
@@ -957,11 +958,11 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1188 order/models.py:1379
+#: build/models.py:1188 order/models.py:1383
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1194 order/models.py:1382
+#: build/models.py:1194 order/models.py:1386
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -973,7 +974,7 @@ msgstr ""
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1326 stock/templates/stock/item_base.html:172
+#: build/models.py:1326 stock/templates/stock/item_base.html:175
#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496
#: templates/navbar.html:38
msgid "Build"
@@ -983,18 +984,18 @@ msgstr ""
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015
-#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754
+#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1035
+#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754
#: stock/serializers.py:880 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:197
#: templates/js/translated/build.js:774 templates/js/translated/build.js:779
#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679
-#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992
-#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299
-#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486
+#: templates/js/translated/order.js:107 templates/js/translated/order.js:3186
+#: templates/js/translated/order.js:3488 templates/js/translated/order.js:3493
+#: templates/js/translated/order.js:3588 templates/js/translated/order.js:3680
#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752
-#: templates/js/translated/stock.js:2577
+#: templates/js/translated/stock.js:2573
msgid "Stock Item"
msgstr ""
@@ -1004,11 +1005,11 @@ msgstr ""
#: build/models.py:1356 build/serializers.py:193
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1697
-#: company/templates/company/supplier_part.html:279 order/models.py:897
-#: order/models.py:1423 order/serializers.py:1155
+#: build/templates/build/detail.html:34 common/models.py:1701
+#: company/templates/company/supplier_part.html:291 order/models.py:901
+#: order/models.py:1427 order/serializers.py:1209
#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40
-#: part/models.py:2654 part/templates/part/detail.html:951
+#: part/models.py:2662 part/templates/part/detail.html:951
#: part/templates/part/detail.html:1037
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -1017,8 +1018,8 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:291 stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
+#: stock/serializers.py:291 stock/templates/stock/item_base.html:290
+#: stock/templates/stock/item_base.html:298
#: templates/email/build_order_completed.html:18
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691
#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458
@@ -1026,16 +1027,16 @@ msgstr ""
#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708
#: templates/js/translated/build.js:2129
#: templates/js/translated/model_renderers.js:120
-#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043
-#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313
-#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492
-#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143
-#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176
-#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686
-#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458
+#: templates/js/translated/order.js:123 templates/js/translated/order.js:1137
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:2490
+#: templates/js/translated/order.js:3187 templates/js/translated/order.js:3507
+#: templates/js/translated/order.js:3594 templates/js/translated/order.js:3686
+#: templates/js/translated/order.js:3829 templates/js/translated/order.js:4337
+#: templates/js/translated/part.js:1036 templates/js/translated/part.js:2205
+#: templates/js/translated/part.js:2674 templates/js/translated/part.js:2715
+#: templates/js/translated/part.js:2793 templates/js/translated/stock.js:458
#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782
-#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2707
msgid "Quantity"
msgstr ""
@@ -1077,7 +1078,7 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:208 build/serializers.py:665 order/models.py:318
-#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545
+#: order/serializers.py:304 order/serializers.py:459 part/serializers.py:545
#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251
#: stock/serializers.py:300
msgid "Quantity must be greater than zero"
@@ -1091,8 +1092,8 @@ msgstr ""
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159
-#: stock/serializers.py:309 templates/js/translated/order.js:1364
+#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213
+#: stock/serializers.py:309 templates/js/translated/order.js:1507
#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459
msgid "Serial Numbers"
msgstr ""
@@ -1117,18 +1118,18 @@ msgstr ""
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532
+#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552
#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532
#: stock/serializers.py:915 stock/serializers.py:1148
-#: stock/templates/stock/item_base.html:385
+#: stock/templates/stock/item_base.html:388
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786
-#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391
-#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411
-#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500
+#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1534
+#: templates/js/translated/order.js:3500 templates/js/translated/order.js:3605
+#: templates/js/translated/order.js:3613 templates/js/translated/order.js:3694
#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588
#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960
-#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2514
msgid "Location"
msgstr ""
@@ -1137,12 +1138,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:373 build/templates/build/build_base.html:145
-#: build/templates/build/detail.html:62 order/models.py:642
-#: order/serializers.py:465 stock/templates/stock/item_base.html:418
+#: build/templates/build/detail.html:62 order/models.py:646
+#: order/serializers.py:482 stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546
-#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830
-#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829
-#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727
+#: templates/js/translated/order.js:1643 templates/js/translated/order.js:1992
+#: templates/js/translated/order.js:2836 templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:2591 templates/js/translated/stock.js:2723
msgid "Status"
msgstr ""
@@ -1202,7 +1203,7 @@ msgstr ""
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:527
+#: build/serializers.py:527 order/serializers.py:208 order/serializers.py:1103
msgid "Accept Incomplete"
msgstr ""
@@ -1218,8 +1219,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772
-#: part/models.py:2906
+#: build/serializers.py:577 build/serializers.py:622 part/models.py:2780
+#: part/models.py:2914
msgid "BOM Item"
msgstr ""
@@ -1239,7 +1240,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:709 order/serializers.py:1073
+#: build/serializers.py:709 order/serializers.py:1093
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1256,7 +1257,7 @@ msgstr ""
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:750 order/serializers.py:1319
+#: build/serializers.py:750 order/serializers.py:1373
msgid "Allocation items must be provided"
msgstr ""
@@ -1371,13 +1372,13 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:154
-#: build/templates/build/detail.html:131 order/models.py:910
-#: order/templates/order/order_base.html:165
+#: build/templates/build/detail.html:131 order/models.py:914
+#: order/templates/order/order_base.html:171
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:125
-#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847
-#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658
-#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042
+#: templates/js/translated/build.js:2586 templates/js/translated/order.js:2009
+#: templates/js/translated/order.js:2351 templates/js/translated/order.js:2852
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1051
msgid "Target Date"
msgstr ""
@@ -1388,7 +1389,7 @@ msgstr ""
#: build/templates/build/build_base.html:159
#: build/templates/build/build_base.html:204
-#: order/templates/order/order_base.html:101
+#: order/templates/order/order_base.html:107
#: order/templates/order/sales_order_base.html:94
#: templates/js/translated/table_filters.js:320
#: templates/js/translated/table_filters.js:361
@@ -1404,15 +1405,15 @@ msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:179
-#: build/templates/build/detail.html:94 order/models.py:1105
-#: order/models.py:1199 order/models.py:1330
+#: build/templates/build/detail.html:94 order/models.py:1109
+#: order/models.py:1203 order/models.py:1334
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:365
+#: stock/templates/stock/item_base.html:368
#: templates/email/overdue_sales_order.html:15
-#: templates/js/translated/order.js:2604
+#: templates/js/translated/order.js:2798
msgid "Sales Order"
msgstr ""
@@ -1438,8 +1439,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1023
-#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199
+#: build/templates/build/detail.html:49 order/models.py:1027
+#: templates/js/translated/order.js:1644 templates/js/translated/order.js:2393
msgid "Destination"
msgstr ""
@@ -1452,18 +1453,18 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:165
+#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1215
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843
-#: templates/js/translated/stock.js:2734
+#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1839
+#: templates/js/translated/stock.js:2730
#: templates/js/translated/table_filters.js:159
#: templates/js/translated/table_filters.js:250
msgid "Batch"
msgstr ""
#: build/templates/build/detail.html:126
-#: order/templates/order/order_base.html:152
+#: order/templates/order/order_base.html:158
#: order/templates/order/sales_order_base.html:158
#: templates/js/translated/build.js:2554
msgid "Created"
@@ -1516,7 +1517,7 @@ msgstr ""
#: build/templates/build/detail.html:187
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:85
-#: part/templates/part/category.html:183 templates/js/translated/order.js:1083
+#: part/templates/part/category.html:183 templates/js/translated/order.js:1177
msgid "Order Parts"
msgstr ""
@@ -1851,7 +1852,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:951 part/models.py:2465 report/models.py:158
+#: common/models.py:951 part/models.py:2473 report/models.py:158
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:484
msgid "Template"
@@ -1861,7 +1862,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446
+#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1454
#: templates/js/translated/table_filters.js:176
#: templates/js/translated/table_filters.js:447
msgid "Assembly"
@@ -2275,349 +2276,349 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1342 common/models.py:1658
+#: common/models.py:1344 common/models.py:1662
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1364
+#: common/models.py:1366
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1365
+#: common/models.py:1367
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1371
+#: common/models.py:1373
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1372
+#: common/models.py:1374
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1378
+#: common/models.py:1380
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1379
+#: common/models.py:1381
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1385
+#: common/models.py:1387
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1386
+#: common/models.py:1388
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1392
+#: common/models.py:1394
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1393
+#: common/models.py:1395
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1399
+#: common/models.py:1401
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1400
+#: common/models.py:1402
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1406
+#: common/models.py:1408
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1407
+#: common/models.py:1409
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1413
+#: common/models.py:1415
msgid "Show low stock"
msgstr ""
-#: common/models.py:1414
+#: common/models.py:1416
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1420
+#: common/models.py:1422
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1421
+#: common/models.py:1423
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1427
+#: common/models.py:1429
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1430
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1434
+#: common/models.py:1436
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1435
+#: common/models.py:1437
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1441
+#: common/models.py:1443
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1442
+#: common/models.py:1444
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1448
+#: common/models.py:1450
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1449
+#: common/models.py:1451
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1455
+#: common/models.py:1457
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1456
+#: common/models.py:1458
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1462
+#: common/models.py:1464
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1463
+#: common/models.py:1465
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1469
+#: common/models.py:1471
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1470
+#: common/models.py:1472
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1476
+#: common/models.py:1478
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1477
+#: common/models.py:1479
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1483
+#: common/models.py:1485
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1484
+#: common/models.py:1486
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1490
+#: common/models.py:1492
msgid "Inline label display"
msgstr ""
-#: common/models.py:1491
+#: common/models.py:1493
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1499
msgid "Inline report display"
msgstr ""
-#: common/models.py:1498
+#: common/models.py:1500
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1506
msgid "Search Parts"
msgstr ""
-#: common/models.py:1505
+#: common/models.py:1507
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1513
msgid "Seach Supplier Parts"
msgstr ""
-#: common/models.py:1512
+#: common/models.py:1514
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1520
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:1519
+#: common/models.py:1521
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:1525
+#: common/models.py:1527
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1526
+#: common/models.py:1528
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1532
+#: common/models.py:1534
msgid "Search Categories"
msgstr ""
-#: common/models.py:1533
+#: common/models.py:1535
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1539
+#: common/models.py:1541
msgid "Search Stock"
msgstr ""
-#: common/models.py:1540
+#: common/models.py:1542
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1546
+#: common/models.py:1548
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1547
+#: common/models.py:1549
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1553
+#: common/models.py:1555
msgid "Search Locations"
msgstr ""
-#: common/models.py:1554
+#: common/models.py:1556
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1560
+#: common/models.py:1562
msgid "Search Companies"
msgstr ""
-#: common/models.py:1561
+#: common/models.py:1563
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1567
+#: common/models.py:1569
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1568
+#: common/models.py:1570
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1574
+#: common/models.py:1576
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1575
+#: common/models.py:1577
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1581
+#: common/models.py:1583
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1582
+#: common/models.py:1584
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1588
+#: common/models.py:1590
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1591
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1595
+#: common/models.py:1597
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1598
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1602
+#: common/models.py:1604
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1605
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1609
+#: common/models.py:1611
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1610
+#: common/models.py:1612
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1616
+#: common/models.py:1618
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1617
+#: common/models.py:1619
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1623
+#: common/models.py:1625
msgid "Date Format"
msgstr ""
-#: common/models.py:1624
+#: common/models.py:1626
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1638 part/templates/part/detail.html:41
+#: common/models.py:1640 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1641
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1698
+#: common/models.py:1702
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1705 company/serializers.py:366
-#: company/templates/company/supplier_part.html:284 order/models.py:938
-#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181
+#: common/models.py:1709 company/serializers.py:372
+#: company/templates/company/supplier_part.html:296 order/models.py:942
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:2210
msgid "Price"
msgstr ""
-#: common/models.py:1706
+#: common/models.py:1710
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1866 common/models.py:2044
+#: common/models.py:1870 common/models.py:2048
msgid "Endpoint"
msgstr ""
-#: common/models.py:1867
+#: common/models.py:1871
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1876
+#: common/models.py:1880
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1881 part/models.py:921 plugin/models.py:100
+#: common/models.py:1885 part/models.py:921 plugin/models.py:100
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:104
#: templates/js/translated/table_filters.js:316
@@ -2625,67 +2626,67 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1886
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1896
+#: common/models.py:1900
msgid "Token"
msgstr ""
-#: common/models.py:1897
+#: common/models.py:1901
msgid "Token for access"
msgstr ""
-#: common/models.py:1904
+#: common/models.py:1908
msgid "Secret"
msgstr ""
-#: common/models.py:1905
+#: common/models.py:1909
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2011
+#: common/models.py:2015
msgid "Message ID"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2016
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2020
+#: common/models.py:2024
msgid "Host"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2025
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2032
msgid "Header"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2033
msgid "Header of this message"
msgstr ""
-#: common/models.py:2035
+#: common/models.py:2039
msgid "Body"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2040
msgid "Body of this message"
msgstr ""
-#: common/models.py:2045
+#: common/models.py:2049
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2054
msgid "Worked on"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2055
msgid "Was the work on this message finished?"
msgstr ""
@@ -2747,7 +2748,7 @@ msgstr ""
#: company/models.py:105 company/templates/company/company_base.html:100
#: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:413
+#: templates/js/translated/company.js:448
msgid "Website"
msgstr ""
@@ -2824,7 +2825,7 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:148 company/serializers.py:372
+#: company/models.py:148 company/serializers.py:378
#: company/templates/company/company_base.html:106 part/serializers.py:153
#: part/serializers.py:184 stock/serializers.py:178
msgid "Currency"
@@ -2834,24 +2835,24 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:248 company/models.py:481 stock/models.py:598
+#: company/models.py:248 company/models.py:482 stock/models.py:598
#: stock/serializers.py:85 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:542
msgid "Base Part"
msgstr ""
-#: company/models.py:252 company/models.py:485
+#: company/models.py:252 company/models.py:486
msgid "Select part"
msgstr ""
#: company/models.py:263 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:124
-#: stock/templates/stock/item_base.html:207
-#: templates/js/translated/company.js:397
-#: templates/js/translated/company.js:498
-#: templates/js/translated/company.js:633
-#: templates/js/translated/company.js:919 templates/js/translated/part.js:236
+#: company/templates/company/supplier_part.html:129
+#: stock/templates/stock/item_base.html:210
+#: templates/js/translated/company.js:432
+#: templates/js/translated/company.js:533
+#: templates/js/translated/company.js:668
+#: templates/js/translated/company.js:956 templates/js/translated/part.js:236
#: templates/js/translated/table_filters.js:419
msgid "Manufacturer"
msgstr ""
@@ -2861,12 +2862,12 @@ msgid "Select manufacturer"
msgstr ""
#: company/models.py:270 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:132
-#: templates/js/translated/company.js:269
-#: templates/js/translated/company.js:497
-#: templates/js/translated/company.js:649
-#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077
-#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027
+#: company/templates/company/supplier_part.html:137
+#: templates/js/translated/company.js:304
+#: templates/js/translated/company.js:532
+#: templates/js/translated/company.js:684
+#: templates/js/translated/company.js:975 templates/js/translated/order.js:2239
+#: templates/js/translated/part.js:247 templates/js/translated/part.js:1025
msgid "MPN"
msgstr ""
@@ -2882,10 +2883,10 @@ msgstr ""
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:328 company/models.py:352 company/models.py:504
+#: company/models.py:328 company/models.py:352 company/models.py:505
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:220
msgid "Manufacturer Part"
msgstr ""
@@ -2895,8 +2896,8 @@ msgstr ""
#: company/models.py:365
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2095 templates/js/translated/company.js:546
-#: templates/js/translated/company.js:764 templates/js/translated/part.js:849
+#: stock/models.py:2095 templates/js/translated/company.js:581
+#: templates/js/translated/company.js:799 templates/js/translated/part.js:847
#: templates/js/translated/stock.js:1360
msgid "Value"
msgstr ""
@@ -2905,10 +2906,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:372 part/models.py:888 part/models.py:2425
+#: company/models.py:372 part/models.py:888 part/models.py:2433
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:352
-#: templates/js/translated/company.js:770 templates/js/translated/part.js:855
+#: templates/js/translated/company.js:805 templates/js/translated/part.js:853
msgid "Units"
msgstr ""
@@ -2916,106 +2917,119 @@ msgstr ""
msgid "Parameter units"
msgstr ""
-#: company/models.py:449
+#: company/models.py:450
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:491 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:108 order/models.py:258
-#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:224
+#: company/models.py:492 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:113 order/models.py:258
+#: order/templates/order/order_base.html:121 part/bom.py:237 part/bom.py:265
+#: stock/templates/stock/item_base.html:227
#: templates/email/overdue_purchase_order.html:16
-#: templates/js/translated/company.js:268
-#: templates/js/translated/company.js:401
-#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813
-#: templates/js/translated/part.js:217 templates/js/translated/part.js:995
+#: templates/js/translated/company.js:303
+#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:929 templates/js/translated/order.js:1975
+#: templates/js/translated/part.js:217 templates/js/translated/part.js:993
#: templates/js/translated/table_filters.js:423
msgid "Supplier"
msgstr ""
-#: company/models.py:492 templates/js/translated/part.js:218
+#: company/models.py:493 templates/js/translated/part.js:218
msgid "Select supplier"
msgstr ""
-#: company/models.py:497 company/templates/company/supplier_part.html:118
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267
-#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228
-#: templates/js/translated/part.js:1013
+#: company/models.py:498 company/templates/company/supplier_part.html:123
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:302
+#: templates/js/translated/order.js:2226 templates/js/translated/part.js:228
+#: templates/js/translated/part.js:1011
msgid "SKU"
msgstr ""
-#: company/models.py:498 templates/js/translated/part.js:229
+#: company/models.py:499 templates/js/translated/part.js:229
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:505
+#: company/models.py:506
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:511
+#: company/models.py:512
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:517
+#: company/models.py:518
msgid "Supplier part description"
msgstr ""
-#: company/models.py:522 company/templates/company/supplier_part.html:146
-#: part/models.py:2666 part/templates/part/upload_bom.html:59
+#: company/models.py:523 company/templates/company/supplier_part.html:158
+#: part/models.py:2674 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399
msgid "Note"
msgstr ""
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "base cost"
msgstr ""
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:528 company/templates/company/supplier_part.html:139
-#: stock/models.py:624 stock/templates/stock/item_base.html:240
-#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976
+#: company/models.py:529 company/templates/company/supplier_part.html:144
+#: stock/models.py:624 stock/templates/stock/item_base.html:243
+#: templates/js/translated/company.js:991 templates/js/translated/stock.js:1972
msgid "Packaging"
msgstr ""
-#: company/models.py:528
+#: company/models.py:529
msgid "Part packaging"
msgstr ""
-#: company/models.py:530 part/models.py:1783
+#: company/models.py:532 company/serializers.py:242
+#: company/templates/company/supplier_part.html:151
+#: templates/js/translated/company.js:996 templates/js/translated/order.js:820
+#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:2270 templates/js/translated/order.js:2287
+#: templates/js/translated/part.js:1043 templates/js/translated/part.js:1095
+msgid "Pack Quantity"
+msgstr ""
+
+#: company/models.py:533
+msgid "Unit quantity supplied in a single pack"
+msgstr ""
+
+#: company/models.py:539 part/models.py:1783
msgid "multiple"
msgstr ""
-#: company/models.py:530
+#: company/models.py:539
msgid "Order multiple"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part.html:94
+#: company/models.py:547 company/templates/company/supplier_part.html:99
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823
-#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979
-#: templates/js/translated/part.js:600 templates/js/translated/part.js:603
+#: templates/js/translated/bom.js:915 templates/js/translated/build.js:1823
+#: templates/js/translated/build.js:2686 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:601
#: templates/js/translated/table_filters.js:186
msgid "Available"
msgstr ""
-#: company/models.py:539
+#: company/models.py:548
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:543
+#: company/models.py:552
msgid "Availability Updated"
msgstr ""
-#: company/models.py:544
+#: company/models.py:553
msgid "Date of last update of availability data"
msgstr ""
-#: company/models.py:672
+#: company/models.py:681
msgid "last updated"
msgstr ""
@@ -3029,12 +3043,12 @@ msgstr ""
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386
+#: templates/InvenTree/search.html:179 templates/js/translated/company.js:421
msgid "Company"
msgstr ""
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:624
+#: templates/js/translated/order.js:689
msgid "Create Purchase Order"
msgstr ""
@@ -3047,7 +3061,7 @@ msgid "Edit company information"
msgstr ""
#: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:329
+#: templates/js/translated/company.js:364
msgid "Edit Company"
msgstr ""
@@ -3070,13 +3084,13 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:86 order/models.py:637
+#: company/templates/company/company_base.html:86 order/models.py:641
#: order/templates/order/sales_order_base.html:116 stock/models.py:643
#: stock/models.py:644 stock/serializers.py:809
-#: stock/templates/stock/item_base.html:396
+#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
-#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619
-#: templates/js/translated/stock.js:2559
+#: templates/js/translated/company.js:428 templates/js/translated/order.js:2813
+#: templates/js/translated/stock.js:2555
#: templates/js/translated/table_filters.js:427
msgid "Customer"
msgstr ""
@@ -3211,23 +3225,23 @@ msgid "Manufacturers"
msgstr ""
#: company/templates/company/manufacturer_part.html:35
-#: company/templates/company/supplier_part.html:186
+#: company/templates/company/supplier_part.html:198
#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80
msgid "Order part"
msgstr ""
#: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:681
+#: templates/js/translated/company.js:716
msgid "Edit manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:682
+#: templates/js/translated/company.js:717
msgid "Delete manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:65
-#: company/templates/company/supplier_part.html:77
+#: company/templates/company/supplier_part.html:82
msgid "Internal Part"
msgstr ""
@@ -3250,8 +3264,8 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:371 part/templates/part/detail.html:401
-#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34
-#: users/models.py:220
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:34
+#: users/models.py:222
msgid "Delete"
msgstr ""
@@ -3296,9 +3310,9 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:607
-#: stock/templates/stock/item_base.html:233
-#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041
-#: templates/js/translated/stock.js:1933
+#: stock/templates/stock/item_base.html:236
+#: templates/js/translated/company.js:945 templates/js/translated/order.js:1135
+#: templates/js/translated/stock.js:1929
msgid "Supplier Part"
msgstr ""
@@ -3308,7 +3322,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:40
#: company/templates/company/supplier_part.html:41
-#: company/templates/company/supplier_part.html:187
+#: company/templates/company/supplier_part.html:199
#: part/templates/part/detail.html:88
msgid "Order Part"
msgstr ""
@@ -3320,81 +3334,87 @@ msgstr ""
#: company/templates/company/supplier_part.html:48
#: company/templates/company/supplier_part.html:49
-#: templates/js/translated/company.js:212
+#: templates/js/translated/company.js:247
msgid "Edit Supplier Part"
msgstr ""
#: company/templates/company/supplier_part.html:53
+#: company/templates/company/supplier_part.html:54
+#: templates/js/translated/company.js:222
+msgid "Duplicate Supplier Part"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:58
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:54
+#: company/templates/company/supplier_part.html:59
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:112
+#: company/templates/company/supplier_part.html:117
msgid "No supplier information available"
msgstr ""
-#: company/templates/company/supplier_part.html:165
+#: company/templates/company/supplier_part.html:177
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr ""
-#: company/templates/company/supplier_part.html:168
+#: company/templates/company/supplier_part.html:180
#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181
msgid "Create new stock item"
msgstr ""
-#: company/templates/company/supplier_part.html:169
+#: company/templates/company/supplier_part.html:181
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182
#: templates/js/translated/stock.js:435
msgid "New Stock Item"
msgstr ""
-#: company/templates/company/supplier_part.html:182
+#: company/templates/company/supplier_part.html:194
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr ""
-#: company/templates/company/supplier_part.html:207
+#: company/templates/company/supplier_part.html:219
#: part/templates/part/prices.html:10
msgid "Pricing Information"
msgstr ""
-#: company/templates/company/supplier_part.html:212
-#: company/templates/company/supplier_part.html:326
-#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253
+#: company/templates/company/supplier_part.html:224
+#: company/templates/company/supplier_part.html:338
+#: part/templates/part/prices.html:276 templates/js/translated/part.js:2282
msgid "Add Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:250
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:252
-#: templates/js/translated/part.js:2263
+#: company/templates/company/supplier_part.html:264
+#: templates/js/translated/part.js:2292
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:266
-#: templates/js/translated/part.js:2277
+#: company/templates/company/supplier_part.html:278
+#: templates/js/translated/part.js:2306
msgid "Edit Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:291
+#: company/templates/company/supplier_part.html:303
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part.html:292
+#: company/templates/company/supplier_part.html:304
msgid "Delete price break"
msgstr ""
-#: company/templates/company/supplier_part.html:301
+#: company/templates/company/supplier_part.html:313
msgid "Last updated"
msgstr ""
-#: company/templates/company/supplier_part.html:382
+#: company/templates/company/supplier_part.html:394
msgid "Update Part Availability"
msgstr ""
@@ -3404,8 +3424,8 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313
-#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959
+#: templates/js/translated/part.js:749 templates/js/translated/part.js:1334
+#: templates/js/translated/part.js:1495 templates/js/translated/stock.js:959
#: templates/js/translated/stock.js:1754 templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -3432,7 +3452,7 @@ msgstr ""
#: stock/templates/stock/location.html:178
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2436 users/models.py:40
+#: templates/js/translated/stock.js:2432 users/models.py:40
msgid "Stock Items"
msgstr ""
@@ -3534,7 +3554,7 @@ msgstr ""
msgid "Order description"
msgstr ""
-#: order/models.py:84 order/models.py:1246
+#: order/models.py:84 order/models.py:1250
msgid "Link to external page"
msgstr ""
@@ -3550,11 +3570,11 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:241 order/models.py:624
+#: order/models.py:241 order/models.py:628
msgid "Order reference"
msgstr ""
-#: order/models.py:249 order/models.py:642
+#: order/models.py:249 order/models.py:646
msgid "Purchase order status"
msgstr ""
@@ -3562,8 +3582,8 @@ msgstr ""
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:262 order/templates/order/order_base.html:127
-#: templates/js/translated/order.js:1822
+#: order/models.py:262 order/templates/order/order_base.html:133
+#: templates/js/translated/order.js:1984
msgid "Supplier Reference"
msgstr ""
@@ -3603,245 +3623,245 @@ msgstr ""
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:638
+#: order/models.py:642
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer Reference "
msgstr ""
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:649
+#: order/models.py:653
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:652 order/models.py:1204
-#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828
+#: order/models.py:656 order/models.py:1208
+#: templates/js/translated/order.js:2860 templates/js/translated/order.js:3022
msgid "Shipment Date"
msgstr ""
-#: order/models.py:659
+#: order/models.py:663
msgid "shipped by"
msgstr ""
-#: order/models.py:714
+#: order/models.py:718
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:718
+#: order/models.py:722
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:721
+#: order/models.py:725 templates/js/translated/order.js:419
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:724
+#: order/models.py:728
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:898
+#: order/models.py:902
msgid "Item quantity"
msgstr ""
-#: order/models.py:904
+#: order/models.py:908
msgid "Line item reference"
msgstr ""
-#: order/models.py:906
+#: order/models.py:910
msgid "Line item notes"
msgstr ""
-#: order/models.py:911
+#: order/models.py:915
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:929
+#: order/models.py:933
msgid "Context"
msgstr ""
-#: order/models.py:930
+#: order/models.py:934
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:939
+#: order/models.py:943
msgid "Unit price"
msgstr ""
-#: order/models.py:969
+#: order/models.py:973
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:977
+#: order/models.py:981
msgid "deleted"
msgstr ""
-#: order/models.py:983 order/models.py:1063 order/models.py:1104
-#: order/models.py:1198 order/models.py:1330
-#: templates/js/translated/order.js:3284
+#: order/models.py:987 order/models.py:1067 order/models.py:1108
+#: order/models.py:1202 order/models.py:1334
+#: templates/js/translated/order.js:3478
msgid "Order"
msgstr ""
-#: order/models.py:984 order/models.py:1063
+#: order/models.py:988 order/models.py:1067
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:179
+#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
-#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042
-#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972
-#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540
+#: templates/js/translated/order.js:619 templates/js/translated/order.js:1136
+#: templates/js/translated/order.js:1959 templates/js/translated/part.js:970
+#: templates/js/translated/stock.js:1909 templates/js/translated/stock.js:2536
msgid "Purchase Order"
msgstr ""
-#: order/models.py:1002
+#: order/models.py:1006
msgid "Supplier part"
msgstr ""
-#: order/models.py:1009 order/templates/order/order_base.html:172
-#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105
+#: order/models.py:1013 order/templates/order/order_base.html:178
+#: templates/js/translated/order.js:1641 templates/js/translated/order.js:2373
+#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1125
#: templates/js/translated/table_filters.js:338
msgid "Received"
msgstr ""
-#: order/models.py:1010
+#: order/models.py:1014
msgid "Number of items received"
msgstr ""
-#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734
-#: stock/serializers.py:169 stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1964
+#: order/models.py:1021 part/templates/part/prices.html:181 stock/models.py:734
+#: stock/serializers.py:169 stock/templates/stock/item_base.html:189
+#: templates/js/translated/stock.js:1960
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1018
+#: order/models.py:1022
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1026
+#: order/models.py:1030
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1092
+#: order/models.py:1096
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1097
+#: order/models.py:1101
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1123 part/templates/part/part_pricing.html:115
+#: order/models.py:1127 part/templates/part/part_pricing.html:115
#: part/templates/part/prices.html:121 part/templates/part/prices.html:290
msgid "Sale Price"
msgstr ""
-#: order/models.py:1124
+#: order/models.py:1128
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1129
+#: order/models.py:1133
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1205
+#: order/models.py:1209
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1212
+#: order/models.py:1216
msgid "Checked By"
msgstr ""
-#: order/models.py:1213
+#: order/models.py:1217
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1220 order/models.py:1405 order/serializers.py:1170
-#: order/serializers.py:1294 templates/js/translated/model_renderers.js:314
+#: order/models.py:1224 order/models.py:1409 order/serializers.py:1224
+#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314
msgid "Shipment"
msgstr ""
-#: order/models.py:1221
+#: order/models.py:1225
msgid "Shipment number"
msgstr ""
-#: order/models.py:1225
+#: order/models.py:1229
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1231
+#: order/models.py:1235
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1232
+#: order/models.py:1236
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1239
+#: order/models.py:1243
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1240
+#: order/models.py:1244
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1258
+#: order/models.py:1262
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1261
+#: order/models.py:1265
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1364 order/models.py:1366
+#: order/models.py:1368 order/models.py:1370
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1370
+#: order/models.py:1374
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1372
+#: order/models.py:1376
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1375
+#: order/models.py:1379
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1385 order/serializers.py:1066
+#: order/models.py:1389 order/serializers.py:1086
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1388
+#: order/models.py:1392
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1389
+#: order/models.py:1393
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1397
+#: order/models.py:1401
msgid "Line"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1410
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1419 templates/js/translated/notification.js:55
+#: order/models.py:1423 templates/js/translated/notification.js:55
msgid "Item"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1424
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1423
+#: order/models.py:1427
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3853,111 +3873,119 @@ msgstr ""
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:294
+#: order/serializers.py:209 order/serializers.py:1104
+msgid "Allow order to be closed with incomplete line items"
+msgstr ""
+
+#: order/serializers.py:220 order/serializers.py:1115
+msgid "Order has incomplete line items"
+msgstr ""
+
+#: order/serializers.py:311
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:318
+#: order/serializers.py:335
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:354
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:342
+#: order/serializers.py:359
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:348
+#: order/serializers.py:365
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:349
+#: order/serializers.py:366
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:413 order/serializers.py:1138
+#: order/serializers.py:430 order/serializers.py:1192
msgid "Line Item"
msgstr ""
-#: order/serializers.py:419
+#: order/serializers.py:436
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:429 order/serializers.py:533
+#: order/serializers.py:446 order/serializers.py:553
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:448 templates/js/translated/order.js:1354
+#: order/serializers.py:465 templates/js/translated/order.js:1497
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:456 templates/js/translated/order.js:1365
+#: order/serializers.py:473 templates/js/translated/order.js:1508
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:469
+#: order/serializers.py:486
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:470
+#: order/serializers.py:487
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:484
+#: order/serializers.py:501
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:507
+#: order/serializers.py:527
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:549
+#: order/serializers.py:569
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:566
+#: order/serializers.py:586
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:577
+#: order/serializers.py:597
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:883
+#: order/serializers.py:903
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:964
+#: order/serializers.py:984
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1027 order/serializers.py:1147
+#: order/serializers.py:1047 order/serializers.py:1201
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1049
+#: order/serializers.py:1069
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1160
+#: order/serializers.py:1214
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1182 order/serializers.py:1302
+#: order/serializers.py:1236 order/serializers.py:1356
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1185 order/serializers.py:1305
+#: order/serializers.py:1239 order/serializers.py:1359
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1235
+#: order/serializers.py:1289
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1245
+#: order/serializers.py:1299
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3993,83 +4021,83 @@ msgstr ""
msgid "Order actions"
msgstr ""
-#: order/templates/order/order_base.html:45
+#: order/templates/order/order_base.html:46
#: order/templates/order/sales_order_base.html:58
msgid "Edit order"
msgstr ""
-#: order/templates/order/order_base.html:47
+#: order/templates/order/order_base.html:50
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr ""
-#: order/templates/order/order_base.html:50
+#: order/templates/order/order_base.html:55
msgid "Duplicate order"
msgstr ""
-#: order/templates/order/order_base.html:55
+#: order/templates/order/order_base.html:61
msgid "Place order"
msgstr ""
-#: order/templates/order/order_base.html:59
+#: order/templates/order/order_base.html:65
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:61
+#: order/templates/order/order_base.html:67
#: order/templates/order/purchase_order_detail.html:30
msgid "Receive Items"
msgstr ""
-#: order/templates/order/order_base.html:63
+#: order/templates/order/order_base.html:69
msgid "Mark order as complete"
msgstr ""
-#: order/templates/order/order_base.html:65
+#: order/templates/order/order_base.html:71
#: order/templates/order/sales_order_base.html:68
msgid "Complete Order"
msgstr ""
-#: order/templates/order/order_base.html:87
+#: order/templates/order/order_base.html:93
#: order/templates/order/sales_order_base.html:80
msgid "Order Reference"
msgstr ""
-#: order/templates/order/order_base.html:92
+#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:85
msgid "Order Description"
msgstr ""
-#: order/templates/order/order_base.html:97
+#: order/templates/order/order_base.html:103
#: order/templates/order/sales_order_base.html:90
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:120
+#: order/templates/order/order_base.html:126
msgid "No suppplier information available"
msgstr ""
-#: order/templates/order/order_base.html:133
+#: order/templates/order/order_base.html:139
#: order/templates/order/sales_order_base.html:129
msgid "Completed Line Items"
msgstr ""
-#: order/templates/order/order_base.html:139
+#: order/templates/order/order_base.html:145
#: order/templates/order/sales_order_base.html:135
#: order/templates/order/sales_order_base.html:145
msgid "Incomplete"
msgstr ""
-#: order/templates/order/order_base.html:158
+#: order/templates/order/order_base.html:164
#: report/templates/report/inventree_build_order_base.html:121
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:186
+#: order/templates/order/order_base.html:192
#: order/templates/order/sales_order_base.html:190
msgid "Total cost"
msgstr ""
-#: order/templates/order/order_base.html:190
+#: order/templates/order/order_base.html:196
#: order/templates/order/sales_order_base.html:194
msgid "Total cost could not be calculated"
msgstr ""
@@ -4102,8 +4130,8 @@ msgstr ""
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463
#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015
-#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443
-#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625
+#: templates/js/translated/order.js:1084 templates/js/translated/order.js:1586
+#: templates/js/translated/order.js:3097 templates/js/translated/stock.js:625
#: templates/js/translated/stock.js:793
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
@@ -4139,7 +4167,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:26
#: order/templates/order/sales_order_detail.html:22
#: order/templates/order/sales_order_detail.html:255
-#: templates/js/translated/order.js:663
+#: templates/js/translated/order.js:728
msgid "Add Line Item"
msgstr ""
@@ -4167,7 +4195,7 @@ msgstr ""
msgid "Order Notes"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:228
+#: order/templates/order/purchase_order_detail.html:232
msgid "Add Order Line"
msgstr ""
@@ -4185,12 +4213,12 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:231
+#: templates/js/translated/order.js:232
msgid "Complete Shipments"
msgstr ""
#: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:258
+#: templates/js/translated/order.js:397
msgid "Complete Sales Order"
msgstr ""
@@ -4199,7 +4227,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2632
+#: templates/js/translated/order.js:2826
msgid "Customer Reference"
msgstr ""
@@ -4223,7 +4251,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:72
-#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1116
#: templates/js/translated/build.js:1923
msgid "Actions"
msgstr ""
@@ -4308,14 +4336,14 @@ msgid "Total Stock"
msgstr ""
#: part/bom.py:129 part/templates/part/part_base.html:189
-#: templates/js/translated/order.js:3724
+#: templates/js/translated/order.js:3918
msgid "Available Stock"
msgstr ""
#: part/bom.py:130 part/templates/part/part_base.html:207
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853
-#: templates/js/translated/part.js:590 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503
+#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1853
+#: templates/js/translated/part.js:588 templates/js/translated/part.js:608
+#: templates/js/translated/part.js:1337 templates/js/translated/part.js:1520
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr ""
@@ -4344,7 +4372,7 @@ msgstr ""
msgid "Icon (optional)"
msgstr ""
-#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16
+#: part/models.py:122 part/models.py:2516 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -4361,7 +4389,7 @@ msgstr ""
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146
+#: templates/js/translated/part.js:2004 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr ""
@@ -4391,7 +4419,7 @@ msgstr ""
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:745 part/models.py:2562
+#: part/models.py:745 part/models.py:2570
msgid "Part name"
msgstr ""
@@ -4424,11 +4452,11 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:783 part/models.py:2257 part/models.py:2507
+#: part/models.py:783 part/models.py:2265 part/models.py:2515
#: part/templates/part/part_base.html:257
#: templates/InvenTree/settings/settings.html:232
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688
+#: templates/js/translated/part.js:1477 templates/js/translated/part.js:1717
msgid "Category"
msgstr ""
@@ -4437,7 +4465,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:789 part/templates/part/part_base.html:266
-#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:1430
#: templates/js/translated/stock.js:1726
msgid "IPN"
msgstr ""
@@ -4451,7 +4479,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:797 part/templates/part/part_base.html:273
-#: report/models.py:171 templates/js/translated/part.js:743
+#: report/models.py:171 templates/js/translated/part.js:741
msgid "Revision"
msgstr ""
@@ -4543,245 +4571,245 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2304
+#: part/models.py:2312
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2321
+#: part/models.py:2329
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2341 templates/js/translated/part.js:2026
+#: part/models.py:2349 templates/js/translated/part.js:2055
#: templates/js/translated/stock.js:1340
msgid "Test Name"
msgstr ""
-#: part/models.py:2342
+#: part/models.py:2350
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2347
+#: part/models.py:2355
msgid "Test Description"
msgstr ""
-#: part/models.py:2348
+#: part/models.py:2356
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2353 templates/js/translated/part.js:2035
+#: part/models.py:2361 templates/js/translated/part.js:2064
#: templates/js/translated/table_filters.js:302
msgid "Required"
msgstr ""
-#: part/models.py:2354
+#: part/models.py:2362
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2359 templates/js/translated/part.js:2043
+#: part/models.py:2367 templates/js/translated/part.js:2072
msgid "Requires Value"
msgstr ""
-#: part/models.py:2360
+#: part/models.py:2368
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2365 templates/js/translated/part.js:2050
+#: part/models.py:2373 templates/js/translated/part.js:2079
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2366
+#: part/models.py:2374
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2374
+#: part/models.py:2382
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2410
+#: part/models.py:2418
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2418
+#: part/models.py:2426
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2433
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2430
+#: part/models.py:2438
msgid "Parameter description"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2471
msgid "Parent Part"
msgstr ""
-#: part/models.py:2465 part/models.py:2513 part/models.py:2514
+#: part/models.py:2473 part/models.py:2521 part/models.py:2522
#: templates/InvenTree/settings/settings.html:227
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Data"
msgstr ""
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2518 templates/InvenTree/settings/settings.html:236
+#: part/models.py:2526 templates/InvenTree/settings/settings.html:236
msgid "Default Value"
msgstr ""
-#: part/models.py:2519
+#: part/models.py:2527
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2554
+#: part/models.py:2562
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2557 templates/js/translated/model_renderers.js:212
+#: part/models.py:2565 templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr ""
-#: part/models.py:2558
+#: part/models.py:2566
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2561
+#: part/models.py:2569
msgid "Part Name"
msgstr ""
-#: part/models.py:2565
+#: part/models.py:2573
msgid "Part IPN"
msgstr ""
-#: part/models.py:2566
+#: part/models.py:2574
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2569
+#: part/models.py:2577
msgid "Level"
msgstr ""
-#: part/models.py:2570
+#: part/models.py:2578
msgid "BOM level"
msgstr ""
-#: part/models.py:2639
+#: part/models.py:2647
msgid "Select parent part"
msgstr ""
-#: part/models.py:2647
+#: part/models.py:2655
msgid "Sub part"
msgstr ""
-#: part/models.py:2648
+#: part/models.py:2656
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2654
+#: part/models.py:2662
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2656 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997
+#: part/models.py:2664 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:876 templates/js/translated/bom.js:1005
#: templates/js/translated/table_filters.js:100
msgid "Optional"
msgstr ""
-#: part/models.py:2656
+#: part/models.py:2664
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2659 part/templates/part/upload_bom.html:55
+#: part/models.py:2667 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2660
+#: part/models.py:2668
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2671
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2666
+#: part/models.py:2674
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "Checksum"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2672 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1014
+#: part/models.py:2680 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:1022
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:96
msgid "Inherited"
msgstr ""
-#: part/models.py:2673
+#: part/models.py:2681
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2678 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1006
+#: part/models.py:2686 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:1014
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2679
+#: part/models.py:2687
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2757 stock/models.py:468
+#: part/models.py:2765 stock/models.py:468
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2766 part/models.py:2768
+#: part/models.py:2774 part/models.py:2776
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2873
+#: part/models.py:2881
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2902
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2915
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2923
msgid "Substitute part"
msgstr ""
-#: part/models.py:2930
+#: part/models.py:2938
msgid "Part 1"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Part 2"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2960
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:2956
+#: part/models.py:2964
msgid "Duplicate relationship already exists"
msgstr ""
@@ -5309,10 +5337,10 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:624
-#: templates/js/translated/company.js:884
+#: templates/js/translated/company.js:659
+#: templates/js/translated/company.js:920
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:654 templates/js/translated/part.js:731
+#: templates/js/translated/part.js:652 templates/js/translated/part.js:729
msgid "Inactive"
msgstr ""
@@ -5327,28 +5355,28 @@ msgid "This part is a variant of %(link)s"
msgstr ""
#: part/templates/part/part_base.html:194
-#: templates/js/translated/company.js:974
+#: templates/js/translated/company.js:1027
#: templates/js/translated/table_filters.js:201
msgid "In Stock"
msgstr ""
#: part/templates/part/part_base.html:215
-#: stock/templates/stock/item_base.html:379
+#: stock/templates/stock/item_base.html:382
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:224
-#: stock/templates/stock/item_base.html:372
+#: stock/templates/stock/item_base.html:375
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1043
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320
-#: templates/js/translated/part.js:1510
+#: part/templates/part/part_base.html:238 templates/js/translated/part.js:591
+#: templates/js/translated/part.js:611 templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1527
msgid "Building"
msgstr ""
@@ -5361,7 +5389,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:328
+#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
@@ -5400,7 +5428,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:989
+#: templates/js/translated/bom.js:997
msgid "No supplier pricing available"
msgstr ""
@@ -5439,7 +5467,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:53
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468
+#: templates/js/translated/order.js:2001 templates/js/translated/stock.js:2464
msgid "Date"
msgstr ""
@@ -5495,7 +5523,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983
+#: part/templates/part/prices.html:160 templates/js/translated/bom.js:991
msgid "Supplier Cost"
msgstr ""
@@ -5533,8 +5561,8 @@ msgstr ""
msgid "No sale pice history available for this part."
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616
-#: templates/js/translated/part.js:1308
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:614
+#: templates/js/translated/part.js:1329 templates/js/translated/part.js:1331
msgid "No Stock"
msgstr ""
@@ -5735,19 +5763,19 @@ msgstr ""
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:186
+#: plugin/models.py:188
msgid "Plugin"
msgstr ""
-#: plugin/models.py:249
+#: plugin/models.py:253
msgid "Method"
msgstr ""
-#: plugin/plugin.py:251
+#: plugin/plugin.py:252
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:263
+#: plugin/plugin.py:264
msgid "No date found"
msgstr ""
@@ -5925,12 +5953,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:648 stock/templates/stock/item_base.html:317
+#: stock/models.py:648 stock/templates/stock/item_base.html:320
#: templates/js/translated/build.js:456 templates/js/translated/build.js:608
#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706
#: templates/js/translated/model_renderers.js:118
-#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403
-#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490
+#: templates/js/translated/order.js:121 templates/js/translated/order.js:3597
+#: templates/js/translated/order.js:3684 templates/js/translated/stock.js:490
msgid "Serial Number"
msgstr ""
@@ -5963,7 +5991,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780
-#: templates/js/translated/stock.js:2717
+#: templates/js/translated/stock.js:2713
msgid "Serial"
msgstr ""
@@ -5980,7 +6008,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
#: stock/models.py:89 stock/models.py:739
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:250
msgid "Owner"
msgstr ""
@@ -6046,7 +6074,7 @@ msgstr ""
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:631 stock/templates/stock/item_base.html:356
+#: stock/models.py:631 stock/templates/stock/item_base.html:359
msgid "Installed In"
msgstr ""
@@ -6086,8 +6114,8 @@ msgstr ""
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:706 stock/templates/stock/item_base.html:424
-#: templates/js/translated/stock.js:1883
+#: stock/models.py:706 stock/templates/stock/item_base.html:427
+#: templates/js/translated/stock.js:1879
msgid "Expiry Date"
msgstr ""
@@ -6379,7 +6407,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2857
msgid "Install Stock Item"
msgstr ""
@@ -6479,134 +6507,135 @@ msgstr ""
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:158
+#: stock/templates/stock/item_base.html:161
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:193
+#: stock/templates/stock/item_base.html:196
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:214
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:254
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/location.html:132
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:268
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:266
+#: stock/templates/stock/item_base.html:269
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:279
+#: stock/templates/stock/item_base.html:282
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:290
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:298
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:301
+#: stock/templates/stock/item_base.html:304
msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
msgstr ""
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:345
+#: stock/templates/stock/item_base.html:348
msgid "Available Quantity"
msgstr ""
-#: stock/templates/stock/item_base.html:389
+#: stock/templates/stock/item_base.html:392
#: templates/js/translated/build.js:1729
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:404
+#: stock/templates/stock/item_base.html:407
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#: templates/js/translated/table_filters.js:269
msgid "Expired"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:275
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:437
-#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899
+#: stock/templates/stock/item_base.html:440
+#: templates/js/translated/company.js:1038
+#: templates/js/translated/stock.js:1895
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:442
+#: stock/templates/stock/item_base.html:445
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:516
+#: stock/templates/stock/item_base.html:519
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:589
+#: stock/templates/stock/item_base.html:592
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:592
+#: stock/templates/stock/item_base.html:595
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:593
+#: stock/templates/stock/item_base.html:596
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:601
+#: stock/templates/stock/item_base.html:604
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:629
+#: stock/templates/stock/item_base.html:632
msgid "Return to Stock"
msgstr ""
@@ -6739,11 +6768,11 @@ msgstr ""
msgid "Refer to the error log in the admin interface for further details"
msgstr ""
-#: templates/503.html:11 templates/503.html:36
+#: templates/503.html:11 templates/503.html:34
msgid "Site is in Maintenance"
msgstr ""
-#: templates/503.html:42
+#: templates/503.html:40
msgid "The site is currently in maintenance and should be up again soon!"
msgstr ""
@@ -7509,7 +7538,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:644
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "Konfirmasi"
@@ -7728,7 +7757,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1481
+#: templates/js/translated/bom.js:1489
msgid "Required Quantity"
msgstr ""
@@ -7742,7 +7771,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2522
+#: templates/js/translated/part.js:2551
msgid "Minimum Quantity"
msgstr ""
@@ -7947,7 +7976,7 @@ msgstr ""
#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620
#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601
#: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003
-#: templates/js/translated/order.js:1085 templates/modals.html:15
+#: templates/js/translated/order.js:1179 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -7957,12 +7986,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145
+#: templates/js/translated/order.js:960 templates/js/translated/tables.js:145
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:867
+#: templates/js/translated/order.js:961
msgid "Select file format"
msgstr ""
@@ -8058,73 +8087,73 @@ msgstr ""
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857
-#: templates/js/translated/order.js:3738
+#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1857
+#: templates/js/translated/order.js:3932
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861
+#: templates/js/translated/bom.js:940 templates/js/translated/build.js:1861
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516
+#: templates/js/translated/bom.js:942 templates/js/translated/build.js:1863
+#: templates/js/translated/part.js:761 templates/js/translated/part.js:1533
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865
+#: templates/js/translated/bom.js:944 templates/js/translated/build.js:1865
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:954
+#: templates/js/translated/bom.js:962
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:969
+#: templates/js/translated/bom.js:977
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:976
+#: templates/js/translated/bom.js:984
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145
+#: templates/js/translated/bom.js:1033 templates/js/translated/bom.js:1153
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1052
+#: templates/js/translated/bom.js:1060
msgid "Including On Order"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1124
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1118
+#: templates/js/translated/bom.js:1126
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1120
+#: templates/js/translated/bom.js:1128
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284
+#: templates/js/translated/bom.js:1130 templates/js/translated/bom.js:1292
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1124
+#: templates/js/translated/bom.js:1132
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650
+#: templates/js/translated/bom.js:1228 templates/js/translated/build.js:1650
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789
+#: templates/js/translated/bom.js:1472 templates/js/translated/build.js:1789
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1486
+#: templates/js/translated/bom.js:1498
msgid "Inherited from parent BOM"
msgstr ""
@@ -8267,12 +8296,12 @@ msgid "No required tests for this build"
msgstr ""
#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697
-#: templates/js/translated/order.js:3438
+#: templates/js/translated/order.js:3632
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698
-#: templates/js/translated/order.js:3439
+#: templates/js/translated/order.js:3633
msgid "Delete stock allocation"
msgstr ""
@@ -8292,20 +8321,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745
+#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3939
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743
+#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3937
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127
-#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757
+#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3951
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837
+#: templates/js/translated/build.js:1930 templates/js/translated/order.js:4031
msgid "Build stock"
msgstr ""
@@ -8313,21 +8342,21 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830
+#: templates/js/translated/build.js:1937 templates/js/translated/order.js:4024
msgid "Allocate stock"
msgstr ""
#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965
+#: templates/js/translated/order.js:1007 templates/js/translated/order.js:3159
#: templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966
+#: templates/js/translated/build.js:1977 templates/js/translated/order.js:3160
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914
+#: templates/js/translated/build.js:2026 templates/js/translated/order.js:3108
msgid "Specify stock allocation quantity"
msgstr ""
@@ -8339,7 +8368,7 @@ msgstr ""
msgid "All selected parts have been fully allocated"
msgstr ""
-#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980
+#: templates/js/translated/build.js:2115 templates/js/translated/order.js:3174
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
@@ -8347,11 +8376,11 @@ msgstr ""
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077
+#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3271
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154
+#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3348
msgid "No matching stock items"
msgstr ""
@@ -8383,9 +8412,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401
-#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1422
+#: templates/js/translated/part.js:1948 templates/js/translated/stock.js:1686
+#: templates/js/translated/stock.js:2382
msgid "Select"
msgstr ""
@@ -8397,7 +8426,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647
+#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2643
msgid "No user information"
msgstr ""
@@ -8405,111 +8434,115 @@ msgstr ""
msgid "No parts allocated for"
msgstr ""
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:179
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:181
msgid "Add Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
msgid "Edit Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:167 templates/js/translated/order.js:511
+#: templates/js/translated/company.js:169 templates/js/translated/order.js:576
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:195 templates/js/translated/order.js:734
+#: templates/js/translated/company.js:197 templates/js/translated/order.js:828
msgid "Add Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:262
+#: templates/js/translated/company.js:297
msgid "All selected supplier parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:278
+#: templates/js/translated/company.js:313
msgid "Delete Supplier Parts"
msgstr ""
-#: templates/js/translated/company.js:350
+#: templates/js/translated/company.js:385
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:427
+#: templates/js/translated/company.js:462
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:471
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:451
+#: templates/js/translated/company.js:486
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:492
+#: templates/js/translated/company.js:527
msgid "All selected manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:507
+#: templates/js/translated/company.js:542
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:541
+#: templates/js/translated/company.js:576
msgid "All selected parameters will be deleted"
msgstr ""
-#: templates/js/translated/company.js:555
+#: templates/js/translated/company.js:590
msgid "Delete Parameters"
msgstr ""
-#: templates/js/translated/company.js:596
+#: templates/js/translated/company.js:631
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:616
-#: templates/js/translated/company.js:876 templates/js/translated/part.js:638
-#: templates/js/translated/part.js:723
+#: templates/js/translated/company.js:651
+#: templates/js/translated/company.js:912 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:721
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:620
-#: templates/js/translated/company.js:880 templates/js/translated/part.js:642
-#: templates/js/translated/part.js:727
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:916 templates/js/translated/part.js:640
+#: templates/js/translated/part.js:725
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:748 templates/js/translated/part.js:830
+#: templates/js/translated/company.js:783 templates/js/translated/part.js:828
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:785 templates/js/translated/part.js:872
+#: templates/js/translated/company.js:820 templates/js/translated/part.js:870
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:786 templates/js/translated/part.js:873
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:871
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:805 templates/js/translated/part.js:890
+#: templates/js/translated/company.js:840 templates/js/translated/part.js:888
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:816 templates/js/translated/part.js:902
+#: templates/js/translated/company.js:851 templates/js/translated/part.js:900
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:856
+#: templates/js/translated/company.js:891
msgid "No supplier parts found"
msgstr ""
-#: templates/js/translated/company.js:1002
+#: templates/js/translated/company.js:1032
+msgid "Availability"
+msgstr ""
+
+#: templates/js/translated/company.js:1055
msgid "Edit supplier part"
msgstr ""
-#: templates/js/translated/company.js:1003
+#: templates/js/translated/company.js:1056
msgid "Delete supplier part"
msgstr ""
@@ -8547,61 +8580,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:367 templates/js/translated/forms.js:382
-#: templates/js/translated/forms.js:396 templates/js/translated/forms.js:410
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:369
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:384
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:398
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:670
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:771
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1269 templates/modals.html:19
+#: templates/js/translated/forms.js:1274 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1702
+#: templates/js/translated/forms.js:1707
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1917 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2170
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2648
+#: templates/js/translated/forms.js:2653
msgid "Select Columns"
msgstr ""
@@ -8792,409 +8825,422 @@ msgstr ""
msgid "Notifications will load here"
msgstr ""
-#: templates/js/translated/order.js:96
+#: templates/js/translated/order.js:97
msgid "No stock items have been allocated to this shipment"
msgstr ""
-#: templates/js/translated/order.js:101
+#: templates/js/translated/order.js:102
msgid "The following stock items will be shipped"
msgstr ""
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:142
msgid "Complete Shipment"
msgstr ""
-#: templates/js/translated/order.js:161
+#: templates/js/translated/order.js:162
msgid "Confirm Shipment"
msgstr ""
-#: templates/js/translated/order.js:217
+#: templates/js/translated/order.js:218
msgid "No pending shipments found"
msgstr ""
-#: templates/js/translated/order.js:221
+#: templates/js/translated/order.js:222
msgid "No stock items have been allocated to pending shipments"
msgstr ""
-#: templates/js/translated/order.js:253
+#: templates/js/translated/order.js:254
msgid "Skip"
msgstr ""
-#: templates/js/translated/order.js:283
+#: templates/js/translated/order.js:284
msgid "Complete Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:289
+#: templates/js/translated/order.js:301 templates/js/translated/order.js:413
msgid "Mark this order as complete?"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:307
msgid "All line items have been received"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:312
msgid "This order has line items which have not been marked as received."
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:313 templates/js/translated/order.js:427
msgid "Completing this order means that the order and line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:324
+#: templates/js/translated/order.js:336
msgid "Cancel Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:329
+#: templates/js/translated/order.js:341
msgid "Are you sure you wish to cancel this purchase order?"
msgstr ""
-#: templates/js/translated/order.js:335
+#: templates/js/translated/order.js:347
msgid "This purchase order can not be cancelled"
msgstr ""
-#: templates/js/translated/order.js:358
+#: templates/js/translated/order.js:370
msgid "Issue Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:363
+#: templates/js/translated/order.js:375
msgid "After placing this purchase order, line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:385
+#: templates/js/translated/order.js:426
+msgid "This order has line items which have not been completed."
+msgstr ""
+
+#: templates/js/translated/order.js:450
msgid "Cancel Sales Order"
msgstr ""
-#: templates/js/translated/order.js:390
+#: templates/js/translated/order.js:455
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:444
+#: templates/js/translated/order.js:509
msgid "Create New Shipment"
msgstr ""
-#: templates/js/translated/order.js:469
+#: templates/js/translated/order.js:534
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:494
+#: templates/js/translated/order.js:559
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:555
+#: templates/js/translated/order.js:620
msgid "Select purchase order to duplicate"
msgstr ""
-#: templates/js/translated/order.js:562
+#: templates/js/translated/order.js:627
msgid "Duplicate Line Items"
msgstr ""
-#: templates/js/translated/order.js:563
+#: templates/js/translated/order.js:628
msgid "Duplicate all line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:570
+#: templates/js/translated/order.js:635
msgid "Duplicate Extra Lines"
msgstr ""
-#: templates/js/translated/order.js:571
+#: templates/js/translated/order.js:636
msgid "Duplicate extra line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:588
+#: templates/js/translated/order.js:653
msgid "Edit Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:605
+#: templates/js/translated/order.js:670
msgid "Duplication Options"
msgstr ""
-#: templates/js/translated/order.js:863
+#: templates/js/translated/order.js:957
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:914
+#: templates/js/translated/order.js:1008
msgid "At least one purchaseable part must be selected"
msgstr ""
-#: templates/js/translated/order.js:939
+#: templates/js/translated/order.js:1033
msgid "Quantity to order"
msgstr ""
-#: templates/js/translated/order.js:948
+#: templates/js/translated/order.js:1042
msgid "New supplier part"
msgstr ""
-#: templates/js/translated/order.js:966
+#: templates/js/translated/order.js:1060
msgid "New purchase order"
msgstr ""
-#: templates/js/translated/order.js:999
+#: templates/js/translated/order.js:1093
msgid "Add to purchase order"
msgstr ""
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1233
msgid "No matching supplier parts"
msgstr ""
-#: templates/js/translated/order.js:1123
+#: templates/js/translated/order.js:1252
msgid "No matching purchase orders"
msgstr ""
-#: templates/js/translated/order.js:1300
+#: templates/js/translated/order.js:1429
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1430
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420
+#: templates/js/translated/order.js:1450 templates/js/translated/order.js:1563
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431
+#: templates/js/translated/order.js:1456 templates/js/translated/order.js:1574
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1339
+#: templates/js/translated/order.js:1471
+msgid "Received Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:1482
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144
+#: templates/js/translated/order.js:1546 templates/js/translated/stock.js:2140
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:1494
+#: templates/js/translated/order.js:1639
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:1495
+#: templates/js/translated/order.js:1640
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:1497
+#: templates/js/translated/order.js:1642
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:1516
+#: templates/js/translated/order.js:1661
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:1517
+#: templates/js/translated/order.js:1662
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943
+#: templates/js/translated/order.js:1940 templates/js/translated/part.js:941
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2803
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674
-#: templates/js/translated/order.js:2815
+#: templates/js/translated/order.js:2017 templates/js/translated/order.js:2868
+#: templates/js/translated/order.js:3009
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889
+#: templates/js/translated/order.js:2115 templates/js/translated/order.js:4083
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911
+#: templates/js/translated/order.js:2132 templates/js/translated/order.js:4105
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:4116
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:2026
+#: templates/js/translated/order.js:2188
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:2215 templates/js/translated/order.js:3817
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309
-#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156
-#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753
+#: templates/js/translated/order.js:2270 templates/js/translated/part.js:1043
+#: templates/js/translated/part.js:1095
+msgid "Total Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:2301 templates/js/translated/order.js:2503
+#: templates/js/translated/order.js:3842 templates/js/translated/order.js:4350
+#: templates/js/translated/part.js:2184 templates/js/translated/part.js:2782
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325
-#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172
+#: templates/js/translated/order.js:2316 templates/js/translated/order.js:2519
+#: templates/js/translated/order.js:3858 templates/js/translated/order.js:4366
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706
-#: templates/js/translated/part.js:1070
+#: templates/js/translated/order.js:2357 templates/js/translated/order.js:3900
+#: templates/js/translated/part.js:1079
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110
+#: templates/js/translated/order.js:2416 templates/js/translated/part.js:1130
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2420 templates/js/translated/order.js:4037
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844
+#: templates/js/translated/order.js:2421 templates/js/translated/order.js:4038
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848
+#: templates/js/translated/order.js:2422 templates/js/translated/order.js:4042
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221
+#: templates/js/translated/order.js:2568 templates/js/translated/order.js:4415
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222
+#: templates/js/translated/order.js:2569 templates/js/translated/order.js:4416
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223
+#: templates/js/translated/order.js:2570 templates/js/translated/order.js:4417
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253
+#: templates/js/translated/order.js:2600 templates/js/translated/order.js:4447
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274
+#: templates/js/translated/order.js:2621 templates/js/translated/order.js:4468
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285
+#: templates/js/translated/order.js:2632 templates/js/translated/order.js:4479
msgid "Delete Line"
msgstr ""
-#: templates/js/translated/order.js:2449
+#: templates/js/translated/order.js:2643
msgid "No matching line"
msgstr ""
-#: templates/js/translated/order.js:2560
+#: templates/js/translated/order.js:2754
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:2623
+#: templates/js/translated/order.js:2817
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:2721
+#: templates/js/translated/order.js:2915
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:2724
+#: templates/js/translated/order.js:2918
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:2729
+#: templates/js/translated/order.js:2923
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:2749
+#: templates/js/translated/order.js:2943
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:2766
+#: templates/js/translated/order.js:2960
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:2800
+#: templates/js/translated/order.js:2994
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:2810
+#: templates/js/translated/order.js:3004
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:2834
+#: templates/js/translated/order.js:3028
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:2840
+#: templates/js/translated/order.js:3034
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:2844
+#: templates/js/translated/order.js:3038
msgid "Invoice"
msgstr ""
-#: templates/js/translated/order.js:3013
+#: templates/js/translated/order.js:3207
msgid "Add Shipment"
msgstr ""
-#: templates/js/translated/order.js:3064
+#: templates/js/translated/order.js:3258
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/order.js:3065
+#: templates/js/translated/order.js:3259
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:3273
+#: templates/js/translated/order.js:3467
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:3352
+#: templates/js/translated/order.js:3546
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3369
+#: templates/js/translated/order.js:3563
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:3370
+#: templates/js/translated/order.js:3564
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504
+#: templates/js/translated/order.js:3609 templates/js/translated/order.js:3698
#: templates/js/translated/stock.js:1602
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513
+#: templates/js/translated/order.js:3617 templates/js/translated/order.js:3707
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3827
+#: templates/js/translated/order.js:4021
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3833
+#: templates/js/translated/order.js:4027
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038
+#: templates/js/translated/order.js:4034 templates/js/translated/order.js:4232
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3852
+#: templates/js/translated/order.js:4046
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3855
+#: templates/js/translated/order.js:4049
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3937
+#: templates/js/translated/order.js:4131
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:4046
+#: templates/js/translated/order.js:4240
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:4060
+#: templates/js/translated/order.js:4254
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4296
+#: templates/js/translated/order.js:4490
msgid "No matching lines"
msgstr ""
@@ -9374,173 +9420,177 @@ msgstr ""
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498
+#: templates/js/translated/part.js:584 templates/js/translated/part.js:1515
#: templates/js/translated/table_filters.js:468
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:596
+#: templates/js/translated/part.js:594
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:715
+#: templates/js/translated/part.js:628 templates/js/translated/part.js:713
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:634 templates/js/translated/part.js:719
+#: templates/js/translated/part.js:632 templates/js/translated/part.js:717
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:646
+#: templates/js/translated/part.js:644
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:650
+#: templates/js/translated/part.js:648
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:778
+#: templates/js/translated/part.js:776
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1180
+#: templates/js/translated/part.js:1200
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1204
+#: templates/js/translated/part.js:1224
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573
+#: templates/js/translated/part.js:1291 templates/js/translated/part.js:1602
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1310
-msgid "Not available"
-msgstr ""
-
-#: templates/js/translated/part.js:1461
+#: templates/js/translated/part.js:1482
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1496
+#: templates/js/translated/part.js:1513
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840
-#: templates/js/translated/stock.js:2347
+#: templates/js/translated/part.js:1537
+msgid "Allocated to build orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1541
+msgid "Allocated to sales orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1626 templates/js/translated/part.js:1869
+#: templates/js/translated/stock.js:2343
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1613
+#: templates/js/translated/part.js:1642
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1679
+#: templates/js/translated/part.js:1708
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1684
+#: templates/js/translated/part.js:1713
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:1689
+#: templates/js/translated/part.js:1718
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1702
+#: templates/js/translated/part.js:1731
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366
+#: templates/js/translated/part.js:1888 templates/js/translated/stock.js:2362
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1938
+#: templates/js/translated/part.js:1967
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:1954
+#: templates/js/translated/part.js:1983
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2012
+#: templates/js/translated/part.js:2041
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299
+#: templates/js/translated/part.js:2092 templates/js/translated/stock.js:1299
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300
+#: templates/js/translated/part.js:2093 templates/js/translated/stock.js:1300
#: templates/js/translated/stock.js:1560
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2070
+#: templates/js/translated/part.js:2099
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2092
+#: templates/js/translated/part.js:2121
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2106
+#: templates/js/translated/part.js:2135
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2131
+#: templates/js/translated/part.js:2160
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:2188
+#: templates/js/translated/part.js:2217
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2189
+#: templates/js/translated/part.js:2218
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355
+#: templates/js/translated/part.js:2383 templates/js/translated/part.js:2384
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2357
+#: templates/js/translated/part.js:2386
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2363
+#: templates/js/translated/part.js:2392
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2413
+#: templates/js/translated/part.js:2442
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2419
+#: templates/js/translated/part.js:2448
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2515
+#: templates/js/translated/part.js:2544
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2531
+#: templates/js/translated/part.js:2560
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2576
+#: templates/js/translated/part.js:2605
msgid "Minimum Stock Level"
msgstr ""
-#: templates/js/translated/part.js:2677
+#: templates/js/translated/part.js:2706
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:2696
+#: templates/js/translated/part.js:2725
msgid "Single Price Difference"
msgstr ""
@@ -9778,7 +9828,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:942 users/models.py:216
+#: templates/js/translated/stock.js:942 users/models.py:218
msgid "Add"
msgstr ""
@@ -9854,156 +9904,156 @@ msgstr ""
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1775
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1780
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1787
+#: templates/js/translated/stock.js:1783
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1790
+#: templates/js/translated/stock.js:1786
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1792
+#: templates/js/translated/stock.js:1788
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1794
+#: templates/js/translated/stock.js:1790
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1797
+#: templates/js/translated/stock.js:1793
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1797
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1803
+#: templates/js/translated/stock.js:1799
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1810
+#: templates/js/translated/stock.js:1806
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:1808
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1814
+#: templates/js/translated/stock.js:1810
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1818
+#: templates/js/translated/stock.js:1814
#: templates/js/translated/table_filters.js:196
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1869
+#: templates/js/translated/stock.js:1865
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1948
+#: templates/js/translated/stock.js:1944
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1986
+#: templates/js/translated/stock.js:1982
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2159
+#: templates/js/translated/stock.js:2155
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2173
+#: templates/js/translated/stock.js:2169
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2174
+#: templates/js/translated/stock.js:2170
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2404
+#: templates/js/translated/stock.js:2400
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2493
+#: templates/js/translated/stock.js:2489
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2509
+#: templates/js/translated/stock.js:2505
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2531
+#: templates/js/translated/stock.js:2527
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2550
+#: templates/js/translated/stock.js:2546
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2569
+#: templates/js/translated/stock.js:2565
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2587
+#: templates/js/translated/stock.js:2583
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2610
+#: templates/js/translated/stock.js:2606
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2618
+#: templates/js/translated/stock.js:2614
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2694
+#: templates/js/translated/stock.js:2690
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781
+#: templates/js/translated/stock.js:2741 templates/js/translated/stock.js:2777
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2790
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2815
+#: templates/js/translated/stock.js:2811
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2816
+#: templates/js/translated/stock.js:2812
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2818
+#: templates/js/translated/stock.js:2814
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2819
+#: templates/js/translated/stock.js:2815
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2820
+#: templates/js/translated/stock.js:2816
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2821
+#: templates/js/translated/stock.js:2817
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2834
+#: templates/js/translated/stock.js:2830
msgid "Select part to install"
msgstr ""
@@ -10525,35 +10575,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:203
+#: users/models.py:205
msgid "Permission set"
msgstr ""
-#: users/models.py:211
+#: users/models.py:213
msgid "Group"
msgstr ""
-#: users/models.py:214
+#: users/models.py:216
msgid "View"
msgstr ""
-#: users/models.py:214
+#: users/models.py:216
msgid "Permission to view items"
msgstr ""
-#: users/models.py:216
+#: users/models.py:218
msgid "Permission to add items"
msgstr ""
-#: users/models.py:218
+#: users/models.py:220
msgid "Change"
msgstr ""
-#: users/models.py:218
+#: users/models.py:220
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:222
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po
index 5776af2f2e..f8f20903b6 100644
--- a/InvenTree/locale/it/LC_MESSAGES/django.po
+++ b/InvenTree/locale/it/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-08-25 10:08+0000\n"
-"PO-Revision-Date: 2022-08-26 01:55\n"
+"POT-Creation-Date: 2022-09-09 02:44+0000\n"
+"PO-Revision-Date: 2022-09-09 03:57\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"Language: it_IT\n"
@@ -29,9 +29,9 @@ msgstr "I dettagli dell'errore possono essere trovati nel pannello di amministra
msgid "Enter date"
msgstr "Inserisci la data"
-#: InvenTree/fields.py:186 build/serializers.py:384
-#: build/templates/build/sidebar.html:21 company/models.py:523
-#: company/templates/company/sidebar.html:25 order/models.py:906
+#: InvenTree/fields.py:183 build/serializers.py:384
+#: build/templates/build/sidebar.html:21 company/models.py:524
+#: company/templates/company/sidebar.html:25 order/models.py:910
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17
#: part/templates/part/part_sidebar.html:59
@@ -40,11 +40,12 @@ msgstr "Inserisci la data"
#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823
#: stock/serializers.py:922 stock/serializers.py:1054
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099
-#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210
-#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859
-#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208
-#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1107
+#: templates/js/translated/company.js:1022
+#: templates/js/translated/order.js:2404 templates/js/translated/order.js:2555
+#: templates/js/translated/order.js:3053 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:4402 templates/js/translated/stock.js:1374
+#: templates/js/translated/stock.js:1976
msgid "Notes"
msgstr "Note"
@@ -210,12 +211,12 @@ msgid "Select file to attach"
msgstr "Seleziona file da allegare"
#: InvenTree/models.py:402 company/models.py:124 company/models.py:276
-#: company/models.py:510 order/models.py:84 order/models.py:1245
+#: company/models.py:511 order/models.py:84 order/models.py:1249
#: part/models.py:802 part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
-#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848
-#: templates/js/translated/part.js:1534
+#: templates/js/translated/company.js:691
+#: templates/js/translated/company.js:1011
+#: templates/js/translated/order.js:3042 templates/js/translated/part.js:1563
msgid "Link"
msgstr "Collegamento"
@@ -233,12 +234,12 @@ msgstr "Commento"
msgid "File comment"
msgstr "Commento del file"
-#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665
-#: common/models.py:1666 common/models.py:1889 common/models.py:1890
-#: common/models.py:2152 common/models.py:2153 part/models.py:2239
-#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257
+#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1669
+#: common/models.py:1670 common/models.py:1893 common/models.py:1894
+#: common/models.py:2156 common/models.py:2157 part/models.py:2247
+#: part/models.py:2267 plugin/models.py:260 plugin/models.py:261
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2641
+#: templates/js/translated/stock.js:2637
msgid "User"
msgstr "Utente"
@@ -275,28 +276,28 @@ msgstr "Errore nella rinominazione del file"
msgid "Invalid choice"
msgstr "Scelta non valida"
-#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875
+#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1879
#: company/models.py:358 label/models.py:101 part/models.py:746
-#: part/models.py:2417 plugin/models.py:94 report/models.py:152
+#: part/models.py:2425 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin.html:134
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:347
-#: templates/js/translated/company.js:545
-#: templates/js/translated/company.js:758
+#: templates/js/translated/company.js:580
+#: templates/js/translated/company.js:793
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:688 templates/js/translated/part.js:840
-#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392
+#: templates/js/translated/part.js:686 templates/js/translated/part.js:838
+#: templates/js/translated/part.js:1955 templates/js/translated/stock.js:2388
msgid "Name"
msgstr "Nome"
#: InvenTree/models.py:544 build/models.py:174
#: build/templates/build/detail.html:24 company/models.py:282
-#: company/models.py:516 company/templates/company/company_base.html:71
+#: company/models.py:517 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:87 label/models.py:108
-#: order/models.py:82 part/models.py:769 part/models.py:2429
+#: company/templates/company/supplier_part.html:92 label/models.py:108
+#: order/models.py:82 part/models.py:769 part/models.py:2437
#: part/templates/part/category.html:80 part/templates/part/part_base.html:167
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
@@ -305,14 +306,14 @@ msgstr "Nome"
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/InvenTree/settings/settings.html:358
#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846
-#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409
-#: templates/js/translated/company.js:667
-#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637
-#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167
-#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962
-#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743
-#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478
+#: templates/js/translated/build.js:2512 templates/js/translated/company.js:444
+#: templates/js/translated/company.js:702
+#: templates/js/translated/company.js:986 templates/js/translated/order.js:1988
+#: templates/js/translated/order.js:2220 templates/js/translated/order.js:2831
+#: templates/js/translated/part.js:745 templates/js/translated/part.js:1187
+#: templates/js/translated/part.js:1463 templates/js/translated/part.js:1991
+#: templates/js/translated/part.js:2060 templates/js/translated/stock.js:1743
+#: templates/js/translated/stock.js:2420 templates/js/translated/stock.js:2474
msgid "Description"
msgstr "Descrizione"
@@ -325,7 +326,7 @@ msgid "parent"
msgstr "genitore"
#: InvenTree/models.py:560 InvenTree/models.py:561
-#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:2426
msgid "Path"
msgstr "Percorso"
@@ -337,7 +338,7 @@ msgstr "Errore del server"
msgid "An error has been logged by the server."
msgstr "Un errore è stato loggato dal server."
-#: InvenTree/serializers.py:55 part/models.py:2745
+#: InvenTree/serializers.py:55 part/models.py:2753
msgid "Must be a valid number"
msgstr "Deve essere un numero valido"
@@ -522,7 +523,7 @@ msgid "Placed"
msgstr "Inviato"
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr "Completo"
@@ -542,8 +543,8 @@ msgstr "Perso"
msgid "Returned"
msgstr "Reso"
-#: InvenTree/status_codes.py:141 order/models.py:1128
-#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785
+#: InvenTree/status_codes.py:141 order/models.py:1132
+#: templates/js/translated/order.js:3630 templates/js/translated/order.js:3979
msgid "Shipped"
msgstr "Spedito"
@@ -627,7 +628,7 @@ msgstr "Diviso dall'elemento genitore"
msgid "Split child item"
msgstr "Dividi elemento figlio"
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080
msgid "Merged stock items"
msgstr "Elemento stock raggruppato"
@@ -717,7 +718,7 @@ msgstr "Informazioni sistema"
msgid "About InvenTree"
msgstr "Informazioni Su InvenTree"
-#: build/api.py:217
+#: build/api.py:219
msgid "Build must be cancelled before it can be deleted"
msgstr ""
@@ -748,15 +749,15 @@ msgstr "Ordini di Produzione"
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:166 order/models.py:240 order/models.py:623
-#: order/models.py:904 part/models.py:2663
+#: build/models.py:166 order/models.py:240 order/models.py:627
+#: order/models.py:908 part/models.py:2671
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853
-#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089
-#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629
-#: templates/js/translated/order.js:4137
+#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2251
+#: templates/js/translated/order.js:2484 templates/js/translated/order.js:3823
+#: templates/js/translated/order.js:4331
msgid "Reference"
msgstr "Riferimento"
@@ -774,12 +775,12 @@ msgid "BuildOrder to which this build is allocated"
msgstr ""
#: build/models.py:191 build/templates/build/build_base.html:80
-#: build/templates/build/detail.html:29 company/models.py:670
-#: order/models.py:1001 order/models.py:1112 order/models.py:1113
-#: part/models.py:343 part/models.py:2185 part/models.py:2200
-#: part/models.py:2219 part/models.py:2237 part/models.py:2336
-#: part/models.py:2463 part/models.py:2553 part/models.py:2638
-#: part/models.py:2914 part/serializers.py:814
+#: build/templates/build/detail.html:29 company/models.py:679
+#: order/models.py:1005 order/models.py:1116 order/models.py:1117
+#: part/models.py:343 part/models.py:2193 part/models.py:2208
+#: part/models.py:2227 part/models.py:2245 part/models.py:2344
+#: part/models.py:2471 part/models.py:2561 part/models.py:2646
+#: part/models.py:2922 part/serializers.py:814
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -795,18 +796,18 @@ msgstr ""
#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800
#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682
#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517
-#: templates/js/translated/company.js:266
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:608
-#: templates/js/translated/company.js:868 templates/js/translated/order.js:105
-#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493
-#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613
-#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224
-#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586
+#: templates/js/translated/company.js:301
+#: templates/js/translated/company.js:531
+#: templates/js/translated/company.js:643
+#: templates/js/translated/company.js:904 templates/js/translated/order.js:106
+#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1638
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:3185
+#: templates/js/translated/order.js:3581 templates/js/translated/order.js:3807
+#: templates/js/translated/part.js:1172 templates/js/translated/part.js:1244
+#: templates/js/translated/part.js:1441 templates/js/translated/stock.js:586
#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504
-#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833
+#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2500
+#: templates/js/translated/stock.js:2695 templates/js/translated/stock.js:2829
msgid "Part"
msgstr "Articolo"
@@ -823,7 +824,7 @@ msgid "SalesOrder to which this build is allocated"
msgstr ""
#: build/models.py:213 build/serializers.py:800
-#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979
+#: templates/js/translated/build.js:2114 templates/js/translated/order.js:3173
msgid "Source Location"
msgstr "Posizione Di Origine"
@@ -863,8 +864,8 @@ msgstr "Stato Build"
msgid "Build status code"
msgstr ""
-#: build/models.py:251 build/serializers.py:225 order/serializers.py:447
-#: stock/models.py:662 templates/js/translated/order.js:1353
+#: build/models.py:251 build/serializers.py:225 order/serializers.py:464
+#: stock/models.py:662 templates/js/translated/order.js:1496
msgid "Batch Code"
msgstr "Codice Lotto"
@@ -873,11 +874,11 @@ msgid "Batch code for this build output"
msgstr ""
#: build/models.py:258 order/models.py:86 part/models.py:938
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2844
msgid "Creation Date"
msgstr "Data di creazione"
-#: build/models.py:262 order/models.py:648
+#: build/models.py:262 order/models.py:652
msgid "Target completion date"
msgstr "Data completamento obiettivo"
@@ -904,10 +905,10 @@ msgstr ""
#: build/models.py:289 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:100
-#: order/templates/order/order_base.html:179
+#: order/templates/order/order_base.html:185
#: order/templates/order/sales_order_base.html:183 part/models.py:942
#: report/templates/report/inventree_build_order_base.html:158
-#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860
+#: templates/js/translated/build.js:2574 templates/js/translated/order.js:2022
msgid "Responsible"
msgstr "Responsabile"
@@ -917,9 +918,9 @@ msgstr ""
#: build/models.py:295 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
-#: company/templates/company/supplier_part.html:153
+#: company/templates/company/supplier_part.html:165
#: part/templates/part/part_base.html:346 stock/models.py:656
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr "Collegamento esterno"
@@ -957,11 +958,11 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "La quantità assegnata ({q}) non deve essere maggiore della quantità disponibile ({a})"
-#: build/models.py:1188 order/models.py:1379
+#: build/models.py:1188 order/models.py:1383
msgid "Stock item is over-allocated"
msgstr "L'articolo in giacenza è sovrallocato"
-#: build/models.py:1194 order/models.py:1382
+#: build/models.py:1194 order/models.py:1386
msgid "Allocation quantity must be greater than zero"
msgstr "La quantità di assegnazione deve essere maggiore di zero"
@@ -973,7 +974,7 @@ msgstr "La quantità deve essere 1 per lo stock serializzato"
msgid "Selected stock item not found in BOM"
msgstr "Articolo in giacenza selezionato non trovato nel BOM"
-#: build/models.py:1326 stock/templates/stock/item_base.html:172
+#: build/models.py:1326 stock/templates/stock/item_base.html:175
#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496
#: templates/navbar.html:38
msgid "Build"
@@ -983,18 +984,18 @@ msgstr "Produzione"
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015
-#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754
+#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1035
+#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754
#: stock/serializers.py:880 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:197
#: templates/js/translated/build.js:774 templates/js/translated/build.js:779
#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679
-#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992
-#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299
-#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486
+#: templates/js/translated/order.js:107 templates/js/translated/order.js:3186
+#: templates/js/translated/order.js:3488 templates/js/translated/order.js:3493
+#: templates/js/translated/order.js:3588 templates/js/translated/order.js:3680
#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752
-#: templates/js/translated/stock.js:2577
+#: templates/js/translated/stock.js:2573
msgid "Stock Item"
msgstr "Articoli in magazzino"
@@ -1004,11 +1005,11 @@ msgstr "Origine giacenza articolo"
#: build/models.py:1356 build/serializers.py:193
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1697
-#: company/templates/company/supplier_part.html:279 order/models.py:897
-#: order/models.py:1423 order/serializers.py:1155
+#: build/templates/build/detail.html:34 common/models.py:1701
+#: company/templates/company/supplier_part.html:291 order/models.py:901
+#: order/models.py:1427 order/serializers.py:1209
#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40
-#: part/models.py:2654 part/templates/part/detail.html:951
+#: part/models.py:2662 part/templates/part/detail.html:951
#: part/templates/part/detail.html:1037
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -1017,8 +1018,8 @@ msgstr "Origine giacenza articolo"
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:291 stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
+#: stock/serializers.py:291 stock/templates/stock/item_base.html:290
+#: stock/templates/stock/item_base.html:298
#: templates/email/build_order_completed.html:18
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691
#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458
@@ -1026,16 +1027,16 @@ msgstr "Origine giacenza articolo"
#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708
#: templates/js/translated/build.js:2129
#: templates/js/translated/model_renderers.js:120
-#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043
-#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313
-#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492
-#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143
-#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176
-#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686
-#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458
+#: templates/js/translated/order.js:123 templates/js/translated/order.js:1137
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:2490
+#: templates/js/translated/order.js:3187 templates/js/translated/order.js:3507
+#: templates/js/translated/order.js:3594 templates/js/translated/order.js:3686
+#: templates/js/translated/order.js:3829 templates/js/translated/order.js:4337
+#: templates/js/translated/part.js:1036 templates/js/translated/part.js:2205
+#: templates/js/translated/part.js:2674 templates/js/translated/part.js:2715
+#: templates/js/translated/part.js:2793 templates/js/translated/stock.js:458
#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782
-#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2707
msgid "Quantity"
msgstr "Quantità"
@@ -1077,7 +1078,7 @@ msgid "Enter quantity for build output"
msgstr "Inserisci la quantità per l'output di compilazione"
#: build/serializers.py:208 build/serializers.py:665 order/models.py:318
-#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545
+#: order/serializers.py:304 order/serializers.py:459 part/serializers.py:545
#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251
#: stock/serializers.py:300
msgid "Quantity must be greater than zero"
@@ -1091,8 +1092,8 @@ msgstr ""
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159
-#: stock/serializers.py:309 templates/js/translated/order.js:1364
+#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213
+#: stock/serializers.py:309 templates/js/translated/order.js:1507
#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459
msgid "Serial Numbers"
msgstr "Codice Seriale"
@@ -1117,18 +1118,18 @@ msgstr "I seguenti numeri di serie sono già esistenti"
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532
+#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552
#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532
#: stock/serializers.py:915 stock/serializers.py:1148
-#: stock/templates/stock/item_base.html:385
+#: stock/templates/stock/item_base.html:388
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786
-#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391
-#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411
-#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500
+#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1534
+#: templates/js/translated/order.js:3500 templates/js/translated/order.js:3605
+#: templates/js/translated/order.js:3613 templates/js/translated/order.js:3694
#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588
#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960
-#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2514
msgid "Location"
msgstr "Posizione"
@@ -1137,12 +1138,12 @@ msgid "Location for completed build outputs"
msgstr "Posizione per gli output di build completati"
#: build/serializers.py:373 build/templates/build/build_base.html:145
-#: build/templates/build/detail.html:62 order/models.py:642
-#: order/serializers.py:465 stock/templates/stock/item_base.html:418
+#: build/templates/build/detail.html:62 order/models.py:646
+#: order/serializers.py:482 stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546
-#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830
-#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829
-#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727
+#: templates/js/translated/order.js:1643 templates/js/translated/order.js:1992
+#: templates/js/translated/order.js:2836 templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:2591 templates/js/translated/stock.js:2723
msgid "Status"
msgstr "Stato"
@@ -1202,7 +1203,7 @@ msgstr ""
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:527
+#: build/serializers.py:527 order/serializers.py:208 order/serializers.py:1103
msgid "Accept Incomplete"
msgstr ""
@@ -1218,8 +1219,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772
-#: part/models.py:2906
+#: build/serializers.py:577 build/serializers.py:622 part/models.py:2780
+#: part/models.py:2914
msgid "BOM Item"
msgstr "Distinta base (Bom)"
@@ -1239,7 +1240,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr "L'articolo deve essere disponibile"
-#: build/serializers.py:709 order/serializers.py:1073
+#: build/serializers.py:709 order/serializers.py:1093
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Quantità disponibile ({q}) superata"
@@ -1256,7 +1257,7 @@ msgstr ""
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:750 order/serializers.py:1319
+#: build/serializers.py:750 order/serializers.py:1373
msgid "Allocation items must be provided"
msgstr "Deve essere indicata l'allocazione dell'articolo"
@@ -1371,13 +1372,13 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:154
-#: build/templates/build/detail.html:131 order/models.py:910
-#: order/templates/order/order_base.html:165
+#: build/templates/build/detail.html:131 order/models.py:914
+#: order/templates/order/order_base.html:171
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:125
-#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847
-#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658
-#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042
+#: templates/js/translated/build.js:2586 templates/js/translated/order.js:2009
+#: templates/js/translated/order.js:2351 templates/js/translated/order.js:2852
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1051
msgid "Target Date"
msgstr "Data scadenza"
@@ -1388,7 +1389,7 @@ msgstr ""
#: build/templates/build/build_base.html:159
#: build/templates/build/build_base.html:204
-#: order/templates/order/order_base.html:101
+#: order/templates/order/order_base.html:107
#: order/templates/order/sales_order_base.html:94
#: templates/js/translated/table_filters.js:320
#: templates/js/translated/table_filters.js:361
@@ -1404,15 +1405,15 @@ msgid "Completed"
msgstr "Completato"
#: build/templates/build/build_base.html:179
-#: build/templates/build/detail.html:94 order/models.py:1105
-#: order/models.py:1199 order/models.py:1330
+#: build/templates/build/detail.html:94 order/models.py:1109
+#: order/models.py:1203 order/models.py:1334
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:365
+#: stock/templates/stock/item_base.html:368
#: templates/email/overdue_sales_order.html:15
-#: templates/js/translated/order.js:2604
+#: templates/js/translated/order.js:2798
msgid "Sales Order"
msgstr "Ordini di Vendita"
@@ -1438,8 +1439,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr "Lo stock può essere prelevato da qualsiasi posizione disponibile."
-#: build/templates/build/detail.html:49 order/models.py:1023
-#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199
+#: build/templates/build/detail.html:49 order/models.py:1027
+#: templates/js/translated/order.js:1644 templates/js/translated/order.js:2393
msgid "Destination"
msgstr "Destinazione"
@@ -1452,18 +1453,18 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:165
+#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1215
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843
-#: templates/js/translated/stock.js:2734
+#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1839
+#: templates/js/translated/stock.js:2730
#: templates/js/translated/table_filters.js:159
#: templates/js/translated/table_filters.js:250
msgid "Batch"
msgstr "Lotto"
#: build/templates/build/detail.html:126
-#: order/templates/order/order_base.html:152
+#: order/templates/order/order_base.html:158
#: order/templates/order/sales_order_base.html:158
#: templates/js/translated/build.js:2554
msgid "Created"
@@ -1516,7 +1517,7 @@ msgstr "Ordina articoli richiesti"
#: build/templates/build/detail.html:187
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:85
-#: part/templates/part/category.html:183 templates/js/translated/order.js:1083
+#: part/templates/part/category.html:183 templates/js/translated/order.js:1177
msgid "Order Parts"
msgstr "Ordine Articoli"
@@ -1851,7 +1852,7 @@ msgstr "Copia Template Parametri Categoria"
msgid "Copy category parameter templates when creating a part"
msgstr "Copia i modelli dei parametri categoria quando si crea un articolo"
-#: common/models.py:951 part/models.py:2465 report/models.py:158
+#: common/models.py:951 part/models.py:2473 report/models.py:158
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:484
msgid "Template"
@@ -1861,7 +1862,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr "Gli articoli sono modelli per impostazione predefinita"
-#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446
+#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1454
#: templates/js/translated/table_filters.js:176
#: templates/js/translated/table_filters.js:447
msgid "Assembly"
@@ -2275,349 +2276,349 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1342 common/models.py:1658
+#: common/models.py:1344 common/models.py:1662
msgid "Settings key (must be unique - case insensitive"
msgstr "Tasto impostazioni (deve essere univoco - maiuscole e minuscole"
-#: common/models.py:1364
+#: common/models.py:1366
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1365
+#: common/models.py:1367
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1371
+#: common/models.py:1373
msgid "Show subscribed categories"
msgstr "Mostra le categorie sottoscritte"
-#: common/models.py:1372
+#: common/models.py:1374
msgid "Show subscribed part categories on the homepage"
msgstr "Mostra le categorie dei componenti sottoscritti nella homepage"
-#: common/models.py:1378
+#: common/models.py:1380
msgid "Show latest parts"
msgstr "Mostra ultimi articoli"
-#: common/models.py:1379
+#: common/models.py:1381
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1385
+#: common/models.py:1387
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1386
+#: common/models.py:1388
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1392
+#: common/models.py:1394
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1393
+#: common/models.py:1395
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1399
+#: common/models.py:1401
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1400
+#: common/models.py:1402
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1406
+#: common/models.py:1408
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1407
+#: common/models.py:1409
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1413
+#: common/models.py:1415
msgid "Show low stock"
msgstr ""
-#: common/models.py:1414
+#: common/models.py:1416
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1420
+#: common/models.py:1422
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1421
+#: common/models.py:1423
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1427
+#: common/models.py:1429
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1430
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1434
+#: common/models.py:1436
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1435
+#: common/models.py:1437
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1441
+#: common/models.py:1443
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1442
+#: common/models.py:1444
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1448
+#: common/models.py:1450
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1449
+#: common/models.py:1451
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1455
+#: common/models.py:1457
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1456
+#: common/models.py:1458
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1462
+#: common/models.py:1464
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1463
+#: common/models.py:1465
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1469
+#: common/models.py:1471
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1470
+#: common/models.py:1472
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1476
+#: common/models.py:1478
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1477
+#: common/models.py:1479
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1483
+#: common/models.py:1485
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1484
+#: common/models.py:1486
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1490
+#: common/models.py:1492
msgid "Inline label display"
msgstr "Visualizzazione dell'etichetta in linea"
-#: common/models.py:1491
+#: common/models.py:1493
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file"
-#: common/models.py:1497
+#: common/models.py:1499
msgid "Inline report display"
msgstr "Visualizzazione dell'etichetta in linea"
-#: common/models.py:1498
+#: common/models.py:1500
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file"
-#: common/models.py:1504
+#: common/models.py:1506
msgid "Search Parts"
msgstr ""
-#: common/models.py:1505
+#: common/models.py:1507
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1513
msgid "Seach Supplier Parts"
msgstr ""
-#: common/models.py:1512
+#: common/models.py:1514
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1520
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:1519
+#: common/models.py:1521
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:1525
+#: common/models.py:1527
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1526
+#: common/models.py:1528
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1532
+#: common/models.py:1534
msgid "Search Categories"
msgstr ""
-#: common/models.py:1533
+#: common/models.py:1535
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1539
+#: common/models.py:1541
msgid "Search Stock"
msgstr ""
-#: common/models.py:1540
+#: common/models.py:1542
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1546
+#: common/models.py:1548
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1547
+#: common/models.py:1549
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1553
+#: common/models.py:1555
msgid "Search Locations"
msgstr ""
-#: common/models.py:1554
+#: common/models.py:1556
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1560
+#: common/models.py:1562
msgid "Search Companies"
msgstr ""
-#: common/models.py:1561
+#: common/models.py:1563
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1567
+#: common/models.py:1569
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1568
+#: common/models.py:1570
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1574
+#: common/models.py:1576
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1575
+#: common/models.py:1577
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1581
+#: common/models.py:1583
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1582
+#: common/models.py:1584
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1588
+#: common/models.py:1590
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1591
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1595
+#: common/models.py:1597
msgid "Search Preview Results"
msgstr "Risultati Dell'Anteprima Di Ricerca"
-#: common/models.py:1596
+#: common/models.py:1598
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1602
+#: common/models.py:1604
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1605
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1609
+#: common/models.py:1611
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1610
+#: common/models.py:1612
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1616
+#: common/models.py:1618
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1617
+#: common/models.py:1619
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1623
+#: common/models.py:1625
msgid "Date Format"
msgstr ""
-#: common/models.py:1624
+#: common/models.py:1626
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1638 part/templates/part/detail.html:41
+#: common/models.py:1640 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1641
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1698
+#: common/models.py:1702
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1705 company/serializers.py:366
-#: company/templates/company/supplier_part.html:284 order/models.py:938
-#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181
+#: common/models.py:1709 company/serializers.py:372
+#: company/templates/company/supplier_part.html:296 order/models.py:942
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:2210
msgid "Price"
msgstr "Prezzo"
-#: common/models.py:1706
+#: common/models.py:1710
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1866 common/models.py:2044
+#: common/models.py:1870 common/models.py:2048
msgid "Endpoint"
msgstr ""
-#: common/models.py:1867
+#: common/models.py:1871
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1876
+#: common/models.py:1880
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1881 part/models.py:921 plugin/models.py:100
+#: common/models.py:1885 part/models.py:921 plugin/models.py:100
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:104
#: templates/js/translated/table_filters.js:316
@@ -2625,67 +2626,67 @@ msgstr ""
msgid "Active"
msgstr "Attivo"
-#: common/models.py:1882
+#: common/models.py:1886
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1896
+#: common/models.py:1900
msgid "Token"
msgstr "Token"
-#: common/models.py:1897
+#: common/models.py:1901
msgid "Token for access"
msgstr ""
-#: common/models.py:1904
+#: common/models.py:1908
msgid "Secret"
msgstr ""
-#: common/models.py:1905
+#: common/models.py:1909
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2011
+#: common/models.py:2015
msgid "Message ID"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2016
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2020
+#: common/models.py:2024
msgid "Host"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2025
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2032
msgid "Header"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2033
msgid "Header of this message"
msgstr ""
-#: common/models.py:2035
+#: common/models.py:2039
msgid "Body"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2040
msgid "Body of this message"
msgstr ""
-#: common/models.py:2045
+#: common/models.py:2049
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2054
msgid "Worked on"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2055
msgid "Was the work on this message finished?"
msgstr ""
@@ -2747,7 +2748,7 @@ msgstr "Descrizione dell'azienda"
#: company/models.py:105 company/templates/company/company_base.html:100
#: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:413
+#: templates/js/translated/company.js:448
msgid "Website"
msgstr "Sito Web"
@@ -2824,7 +2825,7 @@ msgstr "è un produttore"
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:148 company/serializers.py:372
+#: company/models.py:148 company/serializers.py:378
#: company/templates/company/company_base.html:106 part/serializers.py:153
#: part/serializers.py:184 stock/serializers.py:178
msgid "Currency"
@@ -2834,24 +2835,24 @@ msgstr "Valuta"
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:248 company/models.py:481 stock/models.py:598
+#: company/models.py:248 company/models.py:482 stock/models.py:598
#: stock/serializers.py:85 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:542
msgid "Base Part"
msgstr "Articolo di base"
-#: company/models.py:252 company/models.py:485
+#: company/models.py:252 company/models.py:486
msgid "Select part"
msgstr "Seleziona articolo"
#: company/models.py:263 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:124
-#: stock/templates/stock/item_base.html:207
-#: templates/js/translated/company.js:397
-#: templates/js/translated/company.js:498
-#: templates/js/translated/company.js:633
-#: templates/js/translated/company.js:919 templates/js/translated/part.js:236
+#: company/templates/company/supplier_part.html:129
+#: stock/templates/stock/item_base.html:210
+#: templates/js/translated/company.js:432
+#: templates/js/translated/company.js:533
+#: templates/js/translated/company.js:668
+#: templates/js/translated/company.js:956 templates/js/translated/part.js:236
#: templates/js/translated/table_filters.js:419
msgid "Manufacturer"
msgstr "Produttore"
@@ -2861,12 +2862,12 @@ msgid "Select manufacturer"
msgstr "Seleziona Produttore"
#: company/models.py:270 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:132
-#: templates/js/translated/company.js:269
-#: templates/js/translated/company.js:497
-#: templates/js/translated/company.js:649
-#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077
-#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027
+#: company/templates/company/supplier_part.html:137
+#: templates/js/translated/company.js:304
+#: templates/js/translated/company.js:532
+#: templates/js/translated/company.js:684
+#: templates/js/translated/company.js:975 templates/js/translated/order.js:2239
+#: templates/js/translated/part.js:247 templates/js/translated/part.js:1025
msgid "MPN"
msgstr "Codice articolo produttore (MPN)"
@@ -2882,10 +2883,10 @@ msgstr "URL dell'articolo del fornitore"
msgid "Manufacturer part description"
msgstr "Descrizione articolo costruttore"
-#: company/models.py:328 company/models.py:352 company/models.py:504
+#: company/models.py:328 company/models.py:352 company/models.py:505
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:220
msgid "Manufacturer Part"
msgstr "Codice articolo produttore"
@@ -2895,8 +2896,8 @@ msgstr "Nome parametro"
#: company/models.py:365
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2095 templates/js/translated/company.js:546
-#: templates/js/translated/company.js:764 templates/js/translated/part.js:849
+#: stock/models.py:2095 templates/js/translated/company.js:581
+#: templates/js/translated/company.js:799 templates/js/translated/part.js:847
#: templates/js/translated/stock.js:1360
msgid "Value"
msgstr "Valore"
@@ -2905,10 +2906,10 @@ msgstr "Valore"
msgid "Parameter value"
msgstr "Valore del parametro"
-#: company/models.py:372 part/models.py:888 part/models.py:2425
+#: company/models.py:372 part/models.py:888 part/models.py:2433
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:352
-#: templates/js/translated/company.js:770 templates/js/translated/part.js:855
+#: templates/js/translated/company.js:805 templates/js/translated/part.js:853
msgid "Units"
msgstr "Unità"
@@ -2916,106 +2917,119 @@ msgstr "Unità"
msgid "Parameter units"
msgstr "Unità parametri"
-#: company/models.py:449
+#: company/models.py:450
msgid "Linked manufacturer part must reference the same base part"
msgstr "L'articolo del costruttore collegato deve riferirsi alla stesso articolo"
-#: company/models.py:491 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:108 order/models.py:258
-#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:224
+#: company/models.py:492 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:113 order/models.py:258
+#: order/templates/order/order_base.html:121 part/bom.py:237 part/bom.py:265
+#: stock/templates/stock/item_base.html:227
#: templates/email/overdue_purchase_order.html:16
-#: templates/js/translated/company.js:268
-#: templates/js/translated/company.js:401
-#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813
-#: templates/js/translated/part.js:217 templates/js/translated/part.js:995
+#: templates/js/translated/company.js:303
+#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:929 templates/js/translated/order.js:1975
+#: templates/js/translated/part.js:217 templates/js/translated/part.js:993
#: templates/js/translated/table_filters.js:423
msgid "Supplier"
msgstr "Fornitore"
-#: company/models.py:492 templates/js/translated/part.js:218
+#: company/models.py:493 templates/js/translated/part.js:218
msgid "Select supplier"
msgstr "Seleziona fornitore"
-#: company/models.py:497 company/templates/company/supplier_part.html:118
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267
-#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228
-#: templates/js/translated/part.js:1013
+#: company/models.py:498 company/templates/company/supplier_part.html:123
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:302
+#: templates/js/translated/order.js:2226 templates/js/translated/part.js:228
+#: templates/js/translated/part.js:1011
msgid "SKU"
msgstr ""
-#: company/models.py:498 templates/js/translated/part.js:229
+#: company/models.py:499 templates/js/translated/part.js:229
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:505
+#: company/models.py:506
msgid "Select manufacturer part"
msgstr "Selezionare un produttore"
-#: company/models.py:511
+#: company/models.py:512
msgid "URL for external supplier part link"
msgstr "URL dell'articolo del fornitore"
-#: company/models.py:517
+#: company/models.py:518
msgid "Supplier part description"
msgstr "Descrizione articolo fornitore"
-#: company/models.py:522 company/templates/company/supplier_part.html:146
-#: part/models.py:2666 part/templates/part/upload_bom.html:59
+#: company/models.py:523 company/templates/company/supplier_part.html:158
+#: part/models.py:2674 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399
msgid "Note"
msgstr "Nota"
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "base cost"
msgstr "costo base"
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Onere minimo (ad esempio tassa di stoccaggio)"
-#: company/models.py:528 company/templates/company/supplier_part.html:139
-#: stock/models.py:624 stock/templates/stock/item_base.html:240
-#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976
+#: company/models.py:529 company/templates/company/supplier_part.html:144
+#: stock/models.py:624 stock/templates/stock/item_base.html:243
+#: templates/js/translated/company.js:991 templates/js/translated/stock.js:1972
msgid "Packaging"
msgstr "Confezionamento"
-#: company/models.py:528
+#: company/models.py:529
msgid "Part packaging"
msgstr "Imballaggio del pezzo"
-#: company/models.py:530 part/models.py:1783
+#: company/models.py:532 company/serializers.py:242
+#: company/templates/company/supplier_part.html:151
+#: templates/js/translated/company.js:996 templates/js/translated/order.js:820
+#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:2270 templates/js/translated/order.js:2287
+#: templates/js/translated/part.js:1043 templates/js/translated/part.js:1095
+msgid "Pack Quantity"
+msgstr ""
+
+#: company/models.py:533
+msgid "Unit quantity supplied in a single pack"
+msgstr ""
+
+#: company/models.py:539 part/models.py:1783
msgid "multiple"
msgstr "multiplo"
-#: company/models.py:530
+#: company/models.py:539
msgid "Order multiple"
msgstr "Ordine multiplo"
-#: company/models.py:538 company/templates/company/supplier_part.html:94
+#: company/models.py:547 company/templates/company/supplier_part.html:99
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823
-#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979
-#: templates/js/translated/part.js:600 templates/js/translated/part.js:603
+#: templates/js/translated/bom.js:915 templates/js/translated/build.js:1823
+#: templates/js/translated/build.js:2686 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:601
#: templates/js/translated/table_filters.js:186
msgid "Available"
msgstr "Disponibile"
-#: company/models.py:539
+#: company/models.py:548
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:543
+#: company/models.py:552
msgid "Availability Updated"
msgstr ""
-#: company/models.py:544
+#: company/models.py:553
msgid "Date of last update of availability data"
msgstr ""
-#: company/models.py:672
+#: company/models.py:681
msgid "last updated"
msgstr ""
@@ -3029,12 +3043,12 @@ msgstr "Codice valuta"
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386
+#: templates/InvenTree/search.html:179 templates/js/translated/company.js:421
msgid "Company"
msgstr "Azienda"
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:624
+#: templates/js/translated/order.js:689
msgid "Create Purchase Order"
msgstr "Crea ordine d'acquisto"
@@ -3047,7 +3061,7 @@ msgid "Edit company information"
msgstr "Modifica le informazioni dell'azienda"
#: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:329
+#: templates/js/translated/company.js:364
msgid "Edit Company"
msgstr "Modifica azienda"
@@ -3070,13 +3084,13 @@ msgstr "Carica nuova immagine"
msgid "Download image from URL"
msgstr "Scarica immagine dall'URL"
-#: company/templates/company/company_base.html:86 order/models.py:637
+#: company/templates/company/company_base.html:86 order/models.py:641
#: order/templates/order/sales_order_base.html:116 stock/models.py:643
#: stock/models.py:644 stock/serializers.py:809
-#: stock/templates/stock/item_base.html:396
+#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
-#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619
-#: templates/js/translated/stock.js:2559
+#: templates/js/translated/company.js:428 templates/js/translated/order.js:2813
+#: templates/js/translated/stock.js:2555
#: templates/js/translated/table_filters.js:427
msgid "Customer"
msgstr "Cliente"
@@ -3211,23 +3225,23 @@ msgid "Manufacturers"
msgstr "Produttori"
#: company/templates/company/manufacturer_part.html:35
-#: company/templates/company/supplier_part.html:186
+#: company/templates/company/supplier_part.html:198
#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80
msgid "Order part"
msgstr "Articoli ordinati"
#: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:681
+#: templates/js/translated/company.js:716
msgid "Edit manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:682
+#: templates/js/translated/company.js:717
msgid "Delete manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:65
-#: company/templates/company/supplier_part.html:77
+#: company/templates/company/supplier_part.html:82
msgid "Internal Part"
msgstr "Articolo interno"
@@ -3250,8 +3264,8 @@ msgstr "Elimina articolo fornitore"
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:371 part/templates/part/detail.html:401
-#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34
-#: users/models.py:220
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:34
+#: users/models.py:222
msgid "Delete"
msgstr "Elimina"
@@ -3296,9 +3310,9 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:607
-#: stock/templates/stock/item_base.html:233
-#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041
-#: templates/js/translated/stock.js:1933
+#: stock/templates/stock/item_base.html:236
+#: templates/js/translated/company.js:945 templates/js/translated/order.js:1135
+#: templates/js/translated/stock.js:1929
msgid "Supplier Part"
msgstr "Articolo Fornitore"
@@ -3308,7 +3322,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:40
#: company/templates/company/supplier_part.html:41
-#: company/templates/company/supplier_part.html:187
+#: company/templates/company/supplier_part.html:199
#: part/templates/part/detail.html:88
msgid "Order Part"
msgstr "Ordine Articolo"
@@ -3320,81 +3334,87 @@ msgstr ""
#: company/templates/company/supplier_part.html:48
#: company/templates/company/supplier_part.html:49
-#: templates/js/translated/company.js:212
+#: templates/js/translated/company.js:247
msgid "Edit Supplier Part"
msgstr "Modifica fornitore articolo"
#: company/templates/company/supplier_part.html:53
+#: company/templates/company/supplier_part.html:54
+#: templates/js/translated/company.js:222
+msgid "Duplicate Supplier Part"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:58
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:54
+#: company/templates/company/supplier_part.html:59
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:112
+#: company/templates/company/supplier_part.html:117
msgid "No supplier information available"
msgstr ""
-#: company/templates/company/supplier_part.html:165
+#: company/templates/company/supplier_part.html:177
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr "Fornitore articolo in giacenza"
-#: company/templates/company/supplier_part.html:168
+#: company/templates/company/supplier_part.html:180
#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181
msgid "Create new stock item"
msgstr "Crea nuova allocazione magazzino"
-#: company/templates/company/supplier_part.html:169
+#: company/templates/company/supplier_part.html:181
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182
#: templates/js/translated/stock.js:435
msgid "New Stock Item"
msgstr "Nuovo Elemento in giacenza"
-#: company/templates/company/supplier_part.html:182
+#: company/templates/company/supplier_part.html:194
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr "Ordini articoli fornitore"
-#: company/templates/company/supplier_part.html:207
+#: company/templates/company/supplier_part.html:219
#: part/templates/part/prices.html:10
msgid "Pricing Information"
msgstr "Informazioni Prezzi"
-#: company/templates/company/supplier_part.html:212
-#: company/templates/company/supplier_part.html:326
-#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253
+#: company/templates/company/supplier_part.html:224
+#: company/templates/company/supplier_part.html:338
+#: part/templates/part/prices.html:276 templates/js/translated/part.js:2282
msgid "Add Price Break"
msgstr "Aggiungi riduzione prezzo"
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:250
msgid "No price break information found"
msgstr "Nessuna informazione di riduzione di prezzo trovata"
-#: company/templates/company/supplier_part.html:252
-#: templates/js/translated/part.js:2263
+#: company/templates/company/supplier_part.html:264
+#: templates/js/translated/part.js:2292
msgid "Delete Price Break"
msgstr "Elimina riduzione di prezzo"
-#: company/templates/company/supplier_part.html:266
-#: templates/js/translated/part.js:2277
+#: company/templates/company/supplier_part.html:278
+#: templates/js/translated/part.js:2306
msgid "Edit Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:291
+#: company/templates/company/supplier_part.html:303
msgid "Edit price break"
msgstr "Modifica riduzione di prezzo"
-#: company/templates/company/supplier_part.html:292
+#: company/templates/company/supplier_part.html:304
msgid "Delete price break"
msgstr "Cancella riduzione di prezzo"
-#: company/templates/company/supplier_part.html:301
+#: company/templates/company/supplier_part.html:313
msgid "Last updated"
msgstr ""
-#: company/templates/company/supplier_part.html:382
+#: company/templates/company/supplier_part.html:394
msgid "Update Part Availability"
msgstr ""
@@ -3404,8 +3424,8 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313
-#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959
+#: templates/js/translated/part.js:749 templates/js/translated/part.js:1334
+#: templates/js/translated/part.js:1495 templates/js/translated/stock.js:959
#: templates/js/translated/stock.js:1754 templates/navbar.html:31
msgid "Stock"
msgstr "Magazzino"
@@ -3432,7 +3452,7 @@ msgstr "Prezzi"
#: stock/templates/stock/location.html:178
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2436 users/models.py:40
+#: templates/js/translated/stock.js:2432 users/models.py:40
msgid "Stock Items"
msgstr "Articoli in magazzino"
@@ -3534,7 +3554,7 @@ msgstr ""
msgid "Order description"
msgstr "Descrizione ordine"
-#: order/models.py:84 order/models.py:1246
+#: order/models.py:84 order/models.py:1250
msgid "Link to external page"
msgstr ""
@@ -3550,11 +3570,11 @@ msgstr "Utente o gruppo responsabile di questo ordine"
msgid "Order notes"
msgstr "Note ordine"
-#: order/models.py:241 order/models.py:624
+#: order/models.py:241 order/models.py:628
msgid "Order reference"
msgstr "Riferimento ordine"
-#: order/models.py:249 order/models.py:642
+#: order/models.py:249 order/models.py:646
msgid "Purchase order status"
msgstr "Stato ordine d'acquisto"
@@ -3562,8 +3582,8 @@ msgstr "Stato ordine d'acquisto"
msgid "Company from which the items are being ordered"
msgstr "Azienda da cui sono stati ordinati gli articoli"
-#: order/models.py:262 order/templates/order/order_base.html:127
-#: templates/js/translated/order.js:1822
+#: order/models.py:262 order/templates/order/order_base.html:133
+#: templates/js/translated/order.js:1984
msgid "Supplier Reference"
msgstr "Riferimento fornitore"
@@ -3603,245 +3623,245 @@ msgstr ""
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:638
+#: order/models.py:642
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer Reference "
msgstr ""
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:649
+#: order/models.py:653
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:652 order/models.py:1204
-#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828
+#: order/models.py:656 order/models.py:1208
+#: templates/js/translated/order.js:2860 templates/js/translated/order.js:3022
msgid "Shipment Date"
msgstr ""
-#: order/models.py:659
+#: order/models.py:663
msgid "shipped by"
msgstr ""
-#: order/models.py:714
+#: order/models.py:718
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:718
+#: order/models.py:722
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:721
+#: order/models.py:725 templates/js/translated/order.js:419
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:724
+#: order/models.py:728
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:898
+#: order/models.py:902
msgid "Item quantity"
msgstr ""
-#: order/models.py:904
+#: order/models.py:908
msgid "Line item reference"
msgstr ""
-#: order/models.py:906
+#: order/models.py:910
msgid "Line item notes"
msgstr ""
-#: order/models.py:911
+#: order/models.py:915
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:929
+#: order/models.py:933
msgid "Context"
msgstr ""
-#: order/models.py:930
+#: order/models.py:934
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:939
+#: order/models.py:943
msgid "Unit price"
msgstr ""
-#: order/models.py:969
+#: order/models.py:973
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:977
+#: order/models.py:981
msgid "deleted"
msgstr ""
-#: order/models.py:983 order/models.py:1063 order/models.py:1104
-#: order/models.py:1198 order/models.py:1330
-#: templates/js/translated/order.js:3284
+#: order/models.py:987 order/models.py:1067 order/models.py:1108
+#: order/models.py:1202 order/models.py:1334
+#: templates/js/translated/order.js:3478
msgid "Order"
msgstr ""
-#: order/models.py:984 order/models.py:1063
+#: order/models.py:988 order/models.py:1067
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:179
+#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
-#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042
-#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972
-#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540
+#: templates/js/translated/order.js:619 templates/js/translated/order.js:1136
+#: templates/js/translated/order.js:1959 templates/js/translated/part.js:970
+#: templates/js/translated/stock.js:1909 templates/js/translated/stock.js:2536
msgid "Purchase Order"
msgstr ""
-#: order/models.py:1002
+#: order/models.py:1006
msgid "Supplier part"
msgstr "Articolo Fornitore"
-#: order/models.py:1009 order/templates/order/order_base.html:172
-#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105
+#: order/models.py:1013 order/templates/order/order_base.html:178
+#: templates/js/translated/order.js:1641 templates/js/translated/order.js:2373
+#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1125
#: templates/js/translated/table_filters.js:338
msgid "Received"
msgstr ""
-#: order/models.py:1010
+#: order/models.py:1014
msgid "Number of items received"
msgstr ""
-#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734
-#: stock/serializers.py:169 stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1964
+#: order/models.py:1021 part/templates/part/prices.html:181 stock/models.py:734
+#: stock/serializers.py:169 stock/templates/stock/item_base.html:189
+#: templates/js/translated/stock.js:1960
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1018
+#: order/models.py:1022
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1026
+#: order/models.py:1030
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1092
+#: order/models.py:1096
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1097
+#: order/models.py:1101
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1123 part/templates/part/part_pricing.html:115
+#: order/models.py:1127 part/templates/part/part_pricing.html:115
#: part/templates/part/prices.html:121 part/templates/part/prices.html:290
msgid "Sale Price"
msgstr ""
-#: order/models.py:1124
+#: order/models.py:1128
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1129
+#: order/models.py:1133
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1205
+#: order/models.py:1209
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1212
+#: order/models.py:1216
msgid "Checked By"
msgstr ""
-#: order/models.py:1213
+#: order/models.py:1217
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1220 order/models.py:1405 order/serializers.py:1170
-#: order/serializers.py:1294 templates/js/translated/model_renderers.js:314
+#: order/models.py:1224 order/models.py:1409 order/serializers.py:1224
+#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314
msgid "Shipment"
msgstr ""
-#: order/models.py:1221
+#: order/models.py:1225
msgid "Shipment number"
msgstr ""
-#: order/models.py:1225
+#: order/models.py:1229
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1231
+#: order/models.py:1235
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1232
+#: order/models.py:1236
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1239
+#: order/models.py:1243
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1240
+#: order/models.py:1244
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1258
+#: order/models.py:1262
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1261
+#: order/models.py:1265
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1364 order/models.py:1366
+#: order/models.py:1368 order/models.py:1370
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1370
+#: order/models.py:1374
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1372
+#: order/models.py:1376
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1375
+#: order/models.py:1379
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "La quantità di ripartizione non puo' superare la disponibilità della giacenza"
-#: order/models.py:1385 order/serializers.py:1066
+#: order/models.py:1389 order/serializers.py:1086
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1388
+#: order/models.py:1392
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1389
+#: order/models.py:1393
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1397
+#: order/models.py:1401
msgid "Line"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1410
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1419 templates/js/translated/notification.js:55
+#: order/models.py:1423 templates/js/translated/notification.js:55
msgid "Item"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1424
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1423
+#: order/models.py:1427
msgid "Enter stock allocation quantity"
msgstr "Inserisci la quantità assegnata alla giacenza"
@@ -3853,111 +3873,119 @@ msgstr ""
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:294
+#: order/serializers.py:209 order/serializers.py:1104
+msgid "Allow order to be closed with incomplete line items"
+msgstr ""
+
+#: order/serializers.py:220 order/serializers.py:1115
+msgid "Order has incomplete line items"
+msgstr ""
+
+#: order/serializers.py:311
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:318
+#: order/serializers.py:335
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:354
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:342
+#: order/serializers.py:359
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:348
+#: order/serializers.py:365
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:349
+#: order/serializers.py:366
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:413 order/serializers.py:1138
+#: order/serializers.py:430 order/serializers.py:1192
msgid "Line Item"
msgstr ""
-#: order/serializers.py:419
+#: order/serializers.py:436
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:429 order/serializers.py:533
+#: order/serializers.py:446 order/serializers.py:553
msgid "Select destination location for received items"
msgstr "Seleziona la posizione di destinazione per gli elementi ricevuti"
-#: order/serializers.py:448 templates/js/translated/order.js:1354
+#: order/serializers.py:465 templates/js/translated/order.js:1497
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:456 templates/js/translated/order.js:1365
+#: order/serializers.py:473 templates/js/translated/order.js:1508
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:469
+#: order/serializers.py:486
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:470
+#: order/serializers.py:487
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:484
+#: order/serializers.py:501
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:507
+#: order/serializers.py:527
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:549
+#: order/serializers.py:569
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:566
+#: order/serializers.py:586
msgid "Destination location must be specified"
msgstr "La destinazione deve essere specificata"
-#: order/serializers.py:577
+#: order/serializers.py:597
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:883
+#: order/serializers.py:903
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:964
+#: order/serializers.py:984
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1027 order/serializers.py:1147
+#: order/serializers.py:1047 order/serializers.py:1201
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1049
+#: order/serializers.py:1069
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1160
+#: order/serializers.py:1214
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1182 order/serializers.py:1302
+#: order/serializers.py:1236 order/serializers.py:1356
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1185 order/serializers.py:1305
+#: order/serializers.py:1239 order/serializers.py:1359
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1235
+#: order/serializers.py:1289
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1245
+#: order/serializers.py:1299
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3993,83 +4021,83 @@ msgstr ""
msgid "Order actions"
msgstr ""
-#: order/templates/order/order_base.html:45
+#: order/templates/order/order_base.html:46
#: order/templates/order/sales_order_base.html:58
msgid "Edit order"
msgstr ""
-#: order/templates/order/order_base.html:47
+#: order/templates/order/order_base.html:50
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr "Annulla l'ordine"
-#: order/templates/order/order_base.html:50
+#: order/templates/order/order_base.html:55
msgid "Duplicate order"
msgstr ""
-#: order/templates/order/order_base.html:55
+#: order/templates/order/order_base.html:61
msgid "Place order"
msgstr "Invia l'ordine"
-#: order/templates/order/order_base.html:59
+#: order/templates/order/order_base.html:65
msgid "Receive items"
msgstr "Ricevere articoli"
-#: order/templates/order/order_base.html:61
+#: order/templates/order/order_base.html:67
#: order/templates/order/purchase_order_detail.html:30
msgid "Receive Items"
msgstr ""
-#: order/templates/order/order_base.html:63
+#: order/templates/order/order_base.html:69
msgid "Mark order as complete"
msgstr "Contrassegna ordine come completato"
-#: order/templates/order/order_base.html:65
+#: order/templates/order/order_base.html:71
#: order/templates/order/sales_order_base.html:68
msgid "Complete Order"
msgstr ""
-#: order/templates/order/order_base.html:87
+#: order/templates/order/order_base.html:93
#: order/templates/order/sales_order_base.html:80
msgid "Order Reference"
msgstr "Riferimento ordine"
-#: order/templates/order/order_base.html:92
+#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:85
msgid "Order Description"
msgstr ""
-#: order/templates/order/order_base.html:97
+#: order/templates/order/order_base.html:103
#: order/templates/order/sales_order_base.html:90
msgid "Order Status"
msgstr "Stato dell'ordine"
-#: order/templates/order/order_base.html:120
+#: order/templates/order/order_base.html:126
msgid "No suppplier information available"
msgstr ""
-#: order/templates/order/order_base.html:133
+#: order/templates/order/order_base.html:139
#: order/templates/order/sales_order_base.html:129
msgid "Completed Line Items"
msgstr ""
-#: order/templates/order/order_base.html:139
+#: order/templates/order/order_base.html:145
#: order/templates/order/sales_order_base.html:135
#: order/templates/order/sales_order_base.html:145
msgid "Incomplete"
msgstr ""
-#: order/templates/order/order_base.html:158
+#: order/templates/order/order_base.html:164
#: report/templates/report/inventree_build_order_base.html:121
msgid "Issued"
msgstr "Emesso"
-#: order/templates/order/order_base.html:186
+#: order/templates/order/order_base.html:192
#: order/templates/order/sales_order_base.html:190
msgid "Total cost"
msgstr ""
-#: order/templates/order/order_base.html:190
+#: order/templates/order/order_base.html:196
#: order/templates/order/sales_order_base.html:194
msgid "Total cost could not be calculated"
msgstr ""
@@ -4102,8 +4130,8 @@ msgstr "Seleziona l'articolo del fornitore"
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463
#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015
-#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443
-#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625
+#: templates/js/translated/order.js:1084 templates/js/translated/order.js:1586
+#: templates/js/translated/order.js:3097 templates/js/translated/stock.js:625
#: templates/js/translated/stock.js:793
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
@@ -4139,7 +4167,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:26
#: order/templates/order/sales_order_detail.html:22
#: order/templates/order/sales_order_detail.html:255
-#: templates/js/translated/order.js:663
+#: templates/js/translated/order.js:728
msgid "Add Line Item"
msgstr ""
@@ -4167,7 +4195,7 @@ msgstr ""
msgid "Order Notes"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:228
+#: order/templates/order/purchase_order_detail.html:232
msgid "Add Order Line"
msgstr ""
@@ -4185,12 +4213,12 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:231
+#: templates/js/translated/order.js:232
msgid "Complete Shipments"
msgstr ""
#: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:258
+#: templates/js/translated/order.js:397
msgid "Complete Sales Order"
msgstr ""
@@ -4199,7 +4227,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2632
+#: templates/js/translated/order.js:2826
msgid "Customer Reference"
msgstr ""
@@ -4223,7 +4251,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:72
-#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1116
#: templates/js/translated/build.js:1923
msgid "Actions"
msgstr ""
@@ -4308,14 +4336,14 @@ msgid "Total Stock"
msgstr "Giacenze Totali"
#: part/bom.py:129 part/templates/part/part_base.html:189
-#: templates/js/translated/order.js:3724
+#: templates/js/translated/order.js:3918
msgid "Available Stock"
msgstr "Disponibilità in magazzino"
#: part/bom.py:130 part/templates/part/part_base.html:207
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853
-#: templates/js/translated/part.js:590 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503
+#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1853
+#: templates/js/translated/part.js:588 templates/js/translated/part.js:608
+#: templates/js/translated/part.js:1337 templates/js/translated/part.js:1520
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr "Ordinato"
@@ -4344,7 +4372,7 @@ msgstr ""
msgid "Icon (optional)"
msgstr ""
-#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16
+#: part/models.py:122 part/models.py:2516 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Categoria Articoli"
@@ -4361,7 +4389,7 @@ msgstr "Categorie Articolo"
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146
+#: templates/js/translated/part.js:2004 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr "Articoli"
@@ -4391,7 +4419,7 @@ msgstr "Il numero di serie più recente è"
msgid "Duplicate IPN not allowed in part settings"
msgstr "Non è consentito duplicare IPN nelle impostazioni dell'articolo"
-#: part/models.py:745 part/models.py:2562
+#: part/models.py:745 part/models.py:2570
msgid "Part name"
msgstr "Nome articolo"
@@ -4424,11 +4452,11 @@ msgstr "Parole Chiave"
msgid "Part keywords to improve visibility in search results"
msgstr "Parole chiave per migliorare la visibilità nei risultati di ricerca"
-#: part/models.py:783 part/models.py:2257 part/models.py:2507
+#: part/models.py:783 part/models.py:2265 part/models.py:2515
#: part/templates/part/part_base.html:257
#: templates/InvenTree/settings/settings.html:232
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688
+#: templates/js/translated/part.js:1477 templates/js/translated/part.js:1717
msgid "Category"
msgstr "Categoria"
@@ -4437,7 +4465,7 @@ msgid "Part category"
msgstr "Categoria articolo"
#: part/models.py:789 part/templates/part/part_base.html:266
-#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:1430
#: templates/js/translated/stock.js:1726
msgid "IPN"
msgstr "IPN - Numero di riferimento interno"
@@ -4451,7 +4479,7 @@ msgid "Part revision or version number"
msgstr "Numero di revisione o di versione"
#: part/models.py:797 part/templates/part/part_base.html:273
-#: report/models.py:171 templates/js/translated/part.js:743
+#: report/models.py:171 templates/js/translated/part.js:741
msgid "Revision"
msgstr "Revisione"
@@ -4543,245 +4571,245 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2304
+#: part/models.py:2312
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2321
+#: part/models.py:2329
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2341 templates/js/translated/part.js:2026
+#: part/models.py:2349 templates/js/translated/part.js:2055
#: templates/js/translated/stock.js:1340
msgid "Test Name"
msgstr ""
-#: part/models.py:2342
+#: part/models.py:2350
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2347
+#: part/models.py:2355
msgid "Test Description"
msgstr "Descrizione Di Prova"
-#: part/models.py:2348
+#: part/models.py:2356
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2353 templates/js/translated/part.js:2035
+#: part/models.py:2361 templates/js/translated/part.js:2064
#: templates/js/translated/table_filters.js:302
msgid "Required"
msgstr ""
-#: part/models.py:2354
+#: part/models.py:2362
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2359 templates/js/translated/part.js:2043
+#: part/models.py:2367 templates/js/translated/part.js:2072
msgid "Requires Value"
msgstr ""
-#: part/models.py:2360
+#: part/models.py:2368
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2365 templates/js/translated/part.js:2050
+#: part/models.py:2373 templates/js/translated/part.js:2079
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2366
+#: part/models.py:2374
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2374
+#: part/models.py:2382
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2410
+#: part/models.py:2418
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2418
+#: part/models.py:2426
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2433
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2430
+#: part/models.py:2438
msgid "Parameter description"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2471
msgid "Parent Part"
msgstr ""
-#: part/models.py:2465 part/models.py:2513 part/models.py:2514
+#: part/models.py:2473 part/models.py:2521 part/models.py:2522
#: templates/InvenTree/settings/settings.html:227
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Data"
msgstr ""
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2518 templates/InvenTree/settings/settings.html:236
+#: part/models.py:2526 templates/InvenTree/settings/settings.html:236
msgid "Default Value"
msgstr ""
-#: part/models.py:2519
+#: part/models.py:2527
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2554
+#: part/models.py:2562
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2557 templates/js/translated/model_renderers.js:212
+#: part/models.py:2565 templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr "Codice Articolo"
-#: part/models.py:2558
+#: part/models.py:2566
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2561
+#: part/models.py:2569
msgid "Part Name"
msgstr ""
-#: part/models.py:2565
+#: part/models.py:2573
msgid "Part IPN"
msgstr ""
-#: part/models.py:2566
+#: part/models.py:2574
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2569
+#: part/models.py:2577
msgid "Level"
msgstr ""
-#: part/models.py:2570
+#: part/models.py:2578
msgid "BOM level"
msgstr ""
-#: part/models.py:2639
+#: part/models.py:2647
msgid "Select parent part"
msgstr ""
-#: part/models.py:2647
+#: part/models.py:2655
msgid "Sub part"
msgstr ""
-#: part/models.py:2648
+#: part/models.py:2656
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2654
+#: part/models.py:2662
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2656 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997
+#: part/models.py:2664 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:876 templates/js/translated/bom.js:1005
#: templates/js/translated/table_filters.js:100
msgid "Optional"
msgstr ""
-#: part/models.py:2656
+#: part/models.py:2664
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2659 part/templates/part/upload_bom.html:55
+#: part/models.py:2667 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2660
+#: part/models.py:2668
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2671
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2666
+#: part/models.py:2674
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "Checksum"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2672 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1014
+#: part/models.py:2680 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:1022
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:96
msgid "Inherited"
msgstr ""
-#: part/models.py:2673
+#: part/models.py:2681
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2678 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1006
+#: part/models.py:2686 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:1014
msgid "Allow Variants"
msgstr "Consenti Le Varianti"
-#: part/models.py:2679
+#: part/models.py:2687
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2757 stock/models.py:468
+#: part/models.py:2765 stock/models.py:468
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2766 part/models.py:2768
+#: part/models.py:2774 part/models.py:2776
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2873
+#: part/models.py:2881
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2902
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2915
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2923
msgid "Substitute part"
msgstr ""
-#: part/models.py:2930
+#: part/models.py:2938
msgid "Part 1"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Part 2"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2960
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:2956
+#: part/models.py:2964
msgid "Duplicate relationship already exists"
msgstr ""
@@ -5309,10 +5337,10 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:624
-#: templates/js/translated/company.js:884
+#: templates/js/translated/company.js:659
+#: templates/js/translated/company.js:920
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:654 templates/js/translated/part.js:731
+#: templates/js/translated/part.js:652 templates/js/translated/part.js:729
msgid "Inactive"
msgstr "Inattivo"
@@ -5327,28 +5355,28 @@ msgid "This part is a variant of %(link)s"
msgstr ""
#: part/templates/part/part_base.html:194
-#: templates/js/translated/company.js:974
+#: templates/js/translated/company.js:1027
#: templates/js/translated/table_filters.js:201
msgid "In Stock"
msgstr "In magazzino"
#: part/templates/part/part_base.html:215
-#: stock/templates/stock/item_base.html:379
+#: stock/templates/stock/item_base.html:382
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:224
-#: stock/templates/stock/item_base.html:372
+#: stock/templates/stock/item_base.html:375
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1043
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320
-#: templates/js/translated/part.js:1510
+#: part/templates/part/part_base.html:238 templates/js/translated/part.js:591
+#: templates/js/translated/part.js:611 templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1527
msgid "Building"
msgstr ""
@@ -5361,7 +5389,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:328
+#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
@@ -5400,7 +5428,7 @@ msgid "Total Cost"
msgstr "Costo Totale"
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:989
+#: templates/js/translated/bom.js:997
msgid "No supplier pricing available"
msgstr ""
@@ -5439,7 +5467,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:53
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468
+#: templates/js/translated/order.js:2001 templates/js/translated/stock.js:2464
msgid "Date"
msgstr "Data"
@@ -5495,7 +5523,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983
+#: part/templates/part/prices.html:160 templates/js/translated/bom.js:991
msgid "Supplier Cost"
msgstr ""
@@ -5533,8 +5561,8 @@ msgstr ""
msgid "No sale pice history available for this part."
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616
-#: templates/js/translated/part.js:1308
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:614
+#: templates/js/translated/part.js:1329 templates/js/translated/part.js:1331
msgid "No Stock"
msgstr "Nessuna giacenza"
@@ -5735,19 +5763,19 @@ msgstr ""
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:186
+#: plugin/models.py:188
msgid "Plugin"
msgstr ""
-#: plugin/models.py:249
+#: plugin/models.py:253
msgid "Method"
msgstr ""
-#: plugin/plugin.py:251
+#: plugin/plugin.py:252
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:263
+#: plugin/plugin.py:264
msgid "No date found"
msgstr ""
@@ -5925,12 +5953,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:648 stock/templates/stock/item_base.html:317
+#: stock/models.py:648 stock/templates/stock/item_base.html:320
#: templates/js/translated/build.js:456 templates/js/translated/build.js:608
#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706
#: templates/js/translated/model_renderers.js:118
-#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403
-#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490
+#: templates/js/translated/order.js:121 templates/js/translated/order.js:3597
+#: templates/js/translated/order.js:3684 templates/js/translated/stock.js:490
msgid "Serial Number"
msgstr ""
@@ -5963,7 +5991,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780
-#: templates/js/translated/stock.js:2717
+#: templates/js/translated/stock.js:2713
msgid "Serial"
msgstr "Seriale"
@@ -5980,7 +6008,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
#: stock/models.py:89 stock/models.py:739
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:250
msgid "Owner"
msgstr ""
@@ -6046,7 +6074,7 @@ msgstr ""
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:631 stock/templates/stock/item_base.html:356
+#: stock/models.py:631 stock/templates/stock/item_base.html:359
msgid "Installed In"
msgstr "Installato In"
@@ -6086,8 +6114,8 @@ msgstr ""
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:706 stock/templates/stock/item_base.html:424
-#: templates/js/translated/stock.js:1883
+#: stock/models.py:706 stock/templates/stock/item_base.html:427
+#: templates/js/translated/stock.js:1879
msgid "Expiry Date"
msgstr "Data di Scadenza"
@@ -6379,7 +6407,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2857
msgid "Install Stock Item"
msgstr ""
@@ -6479,134 +6507,135 @@ msgstr ""
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:158
+#: stock/templates/stock/item_base.html:161
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:193
+#: stock/templates/stock/item_base.html:196
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:214
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:254
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/location.html:132
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:268
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:266
+#: stock/templates/stock/item_base.html:269
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:279
+#: stock/templates/stock/item_base.html:282
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:290
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:298
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:301
+#: stock/templates/stock/item_base.html:304
msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
msgstr ""
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "previous page"
msgstr "pagina precedente"
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "next page"
msgstr "pagina successiva"
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:345
+#: stock/templates/stock/item_base.html:348
msgid "Available Quantity"
msgstr ""
-#: stock/templates/stock/item_base.html:389
+#: stock/templates/stock/item_base.html:392
#: templates/js/translated/build.js:1729
msgid "No location set"
msgstr "Nessuna posizione impostata"
-#: stock/templates/stock/item_base.html:404
+#: stock/templates/stock/item_base.html:407
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#: templates/js/translated/table_filters.js:269
msgid "Expired"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:275
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:437
-#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899
+#: stock/templates/stock/item_base.html:440
+#: templates/js/translated/company.js:1038
+#: templates/js/translated/stock.js:1895
msgid "Last Updated"
msgstr "Ultimo aggiornamento"
-#: stock/templates/stock/item_base.html:442
+#: stock/templates/stock/item_base.html:445
msgid "Last Stocktake"
msgstr "Ultimo Inventario"
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr "Nessun inventario eseguito"
-#: stock/templates/stock/item_base.html:516
+#: stock/templates/stock/item_base.html:519
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:589
+#: stock/templates/stock/item_base.html:592
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:592
+#: stock/templates/stock/item_base.html:595
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:593
+#: stock/templates/stock/item_base.html:596
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:601
+#: stock/templates/stock/item_base.html:604
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:629
+#: stock/templates/stock/item_base.html:632
msgid "Return to Stock"
msgstr ""
@@ -6739,11 +6768,11 @@ msgstr ""
msgid "Refer to the error log in the admin interface for further details"
msgstr ""
-#: templates/503.html:11 templates/503.html:36
+#: templates/503.html:11 templates/503.html:34
msgid "Site is in Maintenance"
msgstr ""
-#: templates/503.html:42
+#: templates/503.html:40
msgid "The site is currently in maintenance and should be up again soon!"
msgstr ""
@@ -7509,7 +7538,7 @@ msgstr "Conferma l'indirizzo e-mail"
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:644
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "Conferma"
@@ -7728,7 +7757,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1481
+#: templates/js/translated/bom.js:1489
msgid "Required Quantity"
msgstr "Quantità richiesta"
@@ -7742,7 +7771,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2522
+#: templates/js/translated/part.js:2551
msgid "Minimum Quantity"
msgstr "Quantità minima"
@@ -7947,7 +7976,7 @@ msgstr ""
#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620
#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601
#: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003
-#: templates/js/translated/order.js:1085 templates/modals.html:15
+#: templates/js/translated/order.js:1179 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr "Chiudi"
@@ -7957,12 +7986,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145
+#: templates/js/translated/order.js:960 templates/js/translated/tables.js:145
msgid "Format"
msgstr "Formato"
#: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:867
+#: templates/js/translated/order.js:961
msgid "Select file format"
msgstr ""
@@ -8058,73 +8087,73 @@ msgstr ""
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857
-#: templates/js/translated/order.js:3738
+#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1857
+#: templates/js/translated/order.js:3932
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861
+#: templates/js/translated/bom.js:940 templates/js/translated/build.js:1861
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516
+#: templates/js/translated/bom.js:942 templates/js/translated/build.js:1863
+#: templates/js/translated/part.js:761 templates/js/translated/part.js:1533
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865
+#: templates/js/translated/bom.js:944 templates/js/translated/build.js:1865
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:954
+#: templates/js/translated/bom.js:962
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:969
+#: templates/js/translated/bom.js:977
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:976
+#: templates/js/translated/bom.js:984
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145
+#: templates/js/translated/bom.js:1033 templates/js/translated/bom.js:1153
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1052
+#: templates/js/translated/bom.js:1060
msgid "Including On Order"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1124
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1118
+#: templates/js/translated/bom.js:1126
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1120
+#: templates/js/translated/bom.js:1128
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284
+#: templates/js/translated/bom.js:1130 templates/js/translated/bom.js:1292
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1124
+#: templates/js/translated/bom.js:1132
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650
+#: templates/js/translated/bom.js:1228 templates/js/translated/build.js:1650
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789
+#: templates/js/translated/bom.js:1472 templates/js/translated/build.js:1789
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1486
+#: templates/js/translated/bom.js:1498
msgid "Inherited from parent BOM"
msgstr ""
@@ -8267,12 +8296,12 @@ msgid "No required tests for this build"
msgstr ""
#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697
-#: templates/js/translated/order.js:3438
+#: templates/js/translated/order.js:3632
msgid "Edit stock allocation"
msgstr "Modifica allocazione magazzino"
#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698
-#: templates/js/translated/order.js:3439
+#: templates/js/translated/order.js:3633
msgid "Delete stock allocation"
msgstr "Elimina posizione giacenza"
@@ -8292,20 +8321,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745
+#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3939
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743
+#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3937
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127
-#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757
+#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3951
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837
+#: templates/js/translated/build.js:1930 templates/js/translated/order.js:4031
msgid "Build stock"
msgstr ""
@@ -8313,21 +8342,21 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830
+#: templates/js/translated/build.js:1937 templates/js/translated/order.js:4024
msgid "Allocate stock"
msgstr ""
#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965
+#: templates/js/translated/order.js:1007 templates/js/translated/order.js:3159
#: templates/js/translated/report.js:225
msgid "Select Parts"
msgstr "Seleziona Articoli"
-#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966
+#: templates/js/translated/build.js:1977 templates/js/translated/order.js:3160
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914
+#: templates/js/translated/build.js:2026 templates/js/translated/order.js:3108
msgid "Specify stock allocation quantity"
msgstr "Specificare il quantitativo assegnato allo stock"
@@ -8339,7 +8368,7 @@ msgstr ""
msgid "All selected parts have been fully allocated"
msgstr ""
-#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980
+#: templates/js/translated/build.js:2115 templates/js/translated/order.js:3174
msgid "Select source location (leave blank to take from all locations)"
msgstr "Seleziona la posizione di origine (lascia vuoto per prendere da tutte le posizioni)"
@@ -8347,11 +8376,11 @@ msgstr "Seleziona la posizione di origine (lascia vuoto per prendere da tutte le
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077
+#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3271
msgid "No matching stock locations"
msgstr "Nessuna posizione di magazzino corrispondente"
-#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154
+#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3348
msgid "No matching stock items"
msgstr ""
@@ -8383,9 +8412,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401
-#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1422
+#: templates/js/translated/part.js:1948 templates/js/translated/stock.js:1686
+#: templates/js/translated/stock.js:2382
msgid "Select"
msgstr ""
@@ -8397,7 +8426,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647
+#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2643
msgid "No user information"
msgstr ""
@@ -8405,111 +8434,115 @@ msgstr ""
msgid "No parts allocated for"
msgstr ""
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:179
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:181
msgid "Add Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
msgid "Edit Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:167 templates/js/translated/order.js:511
+#: templates/js/translated/company.js:169 templates/js/translated/order.js:576
msgid "Add Supplier"
msgstr "Aggiungi fornitore"
-#: templates/js/translated/company.js:195 templates/js/translated/order.js:734
+#: templates/js/translated/company.js:197 templates/js/translated/order.js:828
msgid "Add Supplier Part"
msgstr "Aggiungi fornitore articolo"
-#: templates/js/translated/company.js:262
+#: templates/js/translated/company.js:297
msgid "All selected supplier parts will be deleted"
msgstr "Tutte gli articoli del fornitore selezionati saranno eliminati"
-#: templates/js/translated/company.js:278
+#: templates/js/translated/company.js:313
msgid "Delete Supplier Parts"
msgstr ""
-#: templates/js/translated/company.js:350
+#: templates/js/translated/company.js:385
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:427
+#: templates/js/translated/company.js:462
msgid "Parts Supplied"
msgstr "Fornitori articoli"
-#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:471
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:451
+#: templates/js/translated/company.js:486
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:492
+#: templates/js/translated/company.js:527
msgid "All selected manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:507
+#: templates/js/translated/company.js:542
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:541
+#: templates/js/translated/company.js:576
msgid "All selected parameters will be deleted"
msgstr ""
-#: templates/js/translated/company.js:555
+#: templates/js/translated/company.js:590
msgid "Delete Parameters"
msgstr "Elimina Parametri"
-#: templates/js/translated/company.js:596
+#: templates/js/translated/company.js:631
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:616
-#: templates/js/translated/company.js:876 templates/js/translated/part.js:638
-#: templates/js/translated/part.js:723
+#: templates/js/translated/company.js:651
+#: templates/js/translated/company.js:912 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:721
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:620
-#: templates/js/translated/company.js:880 templates/js/translated/part.js:642
-#: templates/js/translated/part.js:727
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:916 templates/js/translated/part.js:640
+#: templates/js/translated/part.js:725
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:748 templates/js/translated/part.js:830
+#: templates/js/translated/company.js:783 templates/js/translated/part.js:828
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:785 templates/js/translated/part.js:872
+#: templates/js/translated/company.js:820 templates/js/translated/part.js:870
msgid "Edit parameter"
msgstr "Modifica parametro"
-#: templates/js/translated/company.js:786 templates/js/translated/part.js:873
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:871
msgid "Delete parameter"
msgstr "Elimina il parametro"
-#: templates/js/translated/company.js:805 templates/js/translated/part.js:890
+#: templates/js/translated/company.js:840 templates/js/translated/part.js:888
msgid "Edit Parameter"
msgstr "Modifica parametro"
-#: templates/js/translated/company.js:816 templates/js/translated/part.js:902
+#: templates/js/translated/company.js:851 templates/js/translated/part.js:900
msgid "Delete Parameter"
msgstr "Elimina Parametri"
-#: templates/js/translated/company.js:856
+#: templates/js/translated/company.js:891
msgid "No supplier parts found"
msgstr "Nessun fornitore trovato"
-#: templates/js/translated/company.js:1002
+#: templates/js/translated/company.js:1032
+msgid "Availability"
+msgstr ""
+
+#: templates/js/translated/company.js:1055
msgid "Edit supplier part"
msgstr "Modifica articolo fornitore"
-#: templates/js/translated/company.js:1003
+#: templates/js/translated/company.js:1056
msgid "Delete supplier part"
msgstr "Elimina articolo fornitore"
@@ -8547,61 +8580,61 @@ msgstr "Cancella tutti i filtri"
msgid "Create filter"
msgstr "Crea filtro"
-#: templates/js/translated/forms.js:367 templates/js/translated/forms.js:382
-#: templates/js/translated/forms.js:396 templates/js/translated/forms.js:410
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr "Azione Vietata"
-#: templates/js/translated/forms.js:369
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr "Crea operazione non consentita"
-#: templates/js/translated/forms.js:384
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr "Operazione di aggiornamento non consentita"
-#: templates/js/translated/forms.js:398
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr "Operazione di eliminazione non consentita"
-#: templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr "Mostra operazione non consentita"
-#: templates/js/translated/forms.js:670
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:771
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr "Inserisci un numero valido"
-#: templates/js/translated/forms.js:1269 templates/modals.html:19
+#: templates/js/translated/forms.js:1274 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1702
+#: templates/js/translated/forms.js:1707
msgid "No results found"
msgstr "Nessun risultato trovato"
-#: templates/js/translated/forms.js:1917 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr "Ricerca"
-#: templates/js/translated/forms.js:2170
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr "Cancella input"
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2648
+#: templates/js/translated/forms.js:2653
msgid "Select Columns"
msgstr ""
@@ -8792,409 +8825,422 @@ msgstr ""
msgid "Notifications will load here"
msgstr ""
-#: templates/js/translated/order.js:96
+#: templates/js/translated/order.js:97
msgid "No stock items have been allocated to this shipment"
msgstr ""
-#: templates/js/translated/order.js:101
+#: templates/js/translated/order.js:102
msgid "The following stock items will be shipped"
msgstr ""
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:142
msgid "Complete Shipment"
msgstr ""
-#: templates/js/translated/order.js:161
+#: templates/js/translated/order.js:162
msgid "Confirm Shipment"
msgstr ""
-#: templates/js/translated/order.js:217
+#: templates/js/translated/order.js:218
msgid "No pending shipments found"
msgstr ""
-#: templates/js/translated/order.js:221
+#: templates/js/translated/order.js:222
msgid "No stock items have been allocated to pending shipments"
msgstr ""
-#: templates/js/translated/order.js:253
+#: templates/js/translated/order.js:254
msgid "Skip"
msgstr ""
-#: templates/js/translated/order.js:283
+#: templates/js/translated/order.js:284
msgid "Complete Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:289
+#: templates/js/translated/order.js:301 templates/js/translated/order.js:413
msgid "Mark this order as complete?"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:307
msgid "All line items have been received"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:312
msgid "This order has line items which have not been marked as received."
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:313 templates/js/translated/order.js:427
msgid "Completing this order means that the order and line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:324
+#: templates/js/translated/order.js:336
msgid "Cancel Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:329
+#: templates/js/translated/order.js:341
msgid "Are you sure you wish to cancel this purchase order?"
msgstr ""
-#: templates/js/translated/order.js:335
+#: templates/js/translated/order.js:347
msgid "This purchase order can not be cancelled"
msgstr ""
-#: templates/js/translated/order.js:358
+#: templates/js/translated/order.js:370
msgid "Issue Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:363
+#: templates/js/translated/order.js:375
msgid "After placing this purchase order, line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:385
+#: templates/js/translated/order.js:426
+msgid "This order has line items which have not been completed."
+msgstr ""
+
+#: templates/js/translated/order.js:450
msgid "Cancel Sales Order"
msgstr ""
-#: templates/js/translated/order.js:390
+#: templates/js/translated/order.js:455
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:444
+#: templates/js/translated/order.js:509
msgid "Create New Shipment"
msgstr ""
-#: templates/js/translated/order.js:469
+#: templates/js/translated/order.js:534
msgid "Add Customer"
msgstr "Aggiungi cliente"
-#: templates/js/translated/order.js:494
+#: templates/js/translated/order.js:559
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:555
+#: templates/js/translated/order.js:620
msgid "Select purchase order to duplicate"
msgstr ""
-#: templates/js/translated/order.js:562
+#: templates/js/translated/order.js:627
msgid "Duplicate Line Items"
msgstr ""
-#: templates/js/translated/order.js:563
+#: templates/js/translated/order.js:628
msgid "Duplicate all line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:570
+#: templates/js/translated/order.js:635
msgid "Duplicate Extra Lines"
msgstr ""
-#: templates/js/translated/order.js:571
+#: templates/js/translated/order.js:636
msgid "Duplicate extra line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:588
+#: templates/js/translated/order.js:653
msgid "Edit Purchase Order"
msgstr "Modifica ordine d'acquisto"
-#: templates/js/translated/order.js:605
+#: templates/js/translated/order.js:670
msgid "Duplication Options"
msgstr ""
-#: templates/js/translated/order.js:863
+#: templates/js/translated/order.js:957
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:914
+#: templates/js/translated/order.js:1008
msgid "At least one purchaseable part must be selected"
msgstr ""
-#: templates/js/translated/order.js:939
+#: templates/js/translated/order.js:1033
msgid "Quantity to order"
msgstr ""
-#: templates/js/translated/order.js:948
+#: templates/js/translated/order.js:1042
msgid "New supplier part"
msgstr ""
-#: templates/js/translated/order.js:966
+#: templates/js/translated/order.js:1060
msgid "New purchase order"
msgstr ""
-#: templates/js/translated/order.js:999
+#: templates/js/translated/order.js:1093
msgid "Add to purchase order"
msgstr ""
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1233
msgid "No matching supplier parts"
msgstr ""
-#: templates/js/translated/order.js:1123
+#: templates/js/translated/order.js:1252
msgid "No matching purchase orders"
msgstr ""
-#: templates/js/translated/order.js:1300
+#: templates/js/translated/order.js:1429
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1430
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420
+#: templates/js/translated/order.js:1450 templates/js/translated/order.js:1563
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431
+#: templates/js/translated/order.js:1456 templates/js/translated/order.js:1574
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1339
+#: templates/js/translated/order.js:1471
+msgid "Received Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:1482
msgid "Quantity to receive"
msgstr "Quantità da ricevere"
-#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144
+#: templates/js/translated/order.js:1546 templates/js/translated/stock.js:2140
msgid "Stock Status"
msgstr "Stato giacenza"
-#: templates/js/translated/order.js:1494
+#: templates/js/translated/order.js:1639
msgid "Order Code"
msgstr "Codice ordine"
-#: templates/js/translated/order.js:1495
+#: templates/js/translated/order.js:1640
msgid "Ordered"
msgstr "Ordinato"
-#: templates/js/translated/order.js:1497
+#: templates/js/translated/order.js:1642
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:1516
+#: templates/js/translated/order.js:1661
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:1517
+#: templates/js/translated/order.js:1662
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943
+#: templates/js/translated/order.js:1940 templates/js/translated/part.js:941
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2803
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674
-#: templates/js/translated/order.js:2815
+#: templates/js/translated/order.js:2017 templates/js/translated/order.js:2868
+#: templates/js/translated/order.js:3009
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889
+#: templates/js/translated/order.js:2115 templates/js/translated/order.js:4083
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911
+#: templates/js/translated/order.js:2132 templates/js/translated/order.js:4105
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:4116
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:2026
+#: templates/js/translated/order.js:2188
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:2215 templates/js/translated/order.js:3817
msgid "Total"
msgstr "Totale"
-#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309
-#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156
-#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753
+#: templates/js/translated/order.js:2270 templates/js/translated/part.js:1043
+#: templates/js/translated/part.js:1095
+msgid "Total Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:2301 templates/js/translated/order.js:2503
+#: templates/js/translated/order.js:3842 templates/js/translated/order.js:4350
+#: templates/js/translated/part.js:2184 templates/js/translated/part.js:2782
msgid "Unit Price"
msgstr "Prezzo Unitario"
-#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325
-#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172
+#: templates/js/translated/order.js:2316 templates/js/translated/order.js:2519
+#: templates/js/translated/order.js:3858 templates/js/translated/order.js:4366
msgid "Total Price"
msgstr "Prezzo Totale"
-#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706
-#: templates/js/translated/part.js:1070
+#: templates/js/translated/order.js:2357 templates/js/translated/order.js:3900
+#: templates/js/translated/part.js:1079
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110
+#: templates/js/translated/order.js:2416 templates/js/translated/part.js:1130
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2420 templates/js/translated/order.js:4037
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844
+#: templates/js/translated/order.js:2421 templates/js/translated/order.js:4038
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848
+#: templates/js/translated/order.js:2422 templates/js/translated/order.js:4042
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221
+#: templates/js/translated/order.js:2568 templates/js/translated/order.js:4415
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222
+#: templates/js/translated/order.js:2569 templates/js/translated/order.js:4416
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223
+#: templates/js/translated/order.js:2570 templates/js/translated/order.js:4417
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253
+#: templates/js/translated/order.js:2600 templates/js/translated/order.js:4447
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274
+#: templates/js/translated/order.js:2621 templates/js/translated/order.js:4468
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285
+#: templates/js/translated/order.js:2632 templates/js/translated/order.js:4479
msgid "Delete Line"
msgstr ""
-#: templates/js/translated/order.js:2449
+#: templates/js/translated/order.js:2643
msgid "No matching line"
msgstr ""
-#: templates/js/translated/order.js:2560
+#: templates/js/translated/order.js:2754
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:2623
+#: templates/js/translated/order.js:2817
msgid "Invalid Customer"
msgstr "Cliente non valido"
-#: templates/js/translated/order.js:2721
+#: templates/js/translated/order.js:2915
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:2724
+#: templates/js/translated/order.js:2918
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:2729
+#: templates/js/translated/order.js:2923
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:2749
+#: templates/js/translated/order.js:2943
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:2766
+#: templates/js/translated/order.js:2960
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:2800
+#: templates/js/translated/order.js:2994
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:2810
+#: templates/js/translated/order.js:3004
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:2834
+#: templates/js/translated/order.js:3028
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:2840
+#: templates/js/translated/order.js:3034
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:2844
+#: templates/js/translated/order.js:3038
msgid "Invoice"
msgstr ""
-#: templates/js/translated/order.js:3013
+#: templates/js/translated/order.js:3207
msgid "Add Shipment"
msgstr ""
-#: templates/js/translated/order.js:3064
+#: templates/js/translated/order.js:3258
msgid "Confirm stock allocation"
msgstr "Conferma l'assegnazione della giacenza"
-#: templates/js/translated/order.js:3065
+#: templates/js/translated/order.js:3259
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:3273
+#: templates/js/translated/order.js:3467
msgid "No sales order allocations found"
msgstr "Nessun ordine di vendita trovato"
-#: templates/js/translated/order.js:3352
+#: templates/js/translated/order.js:3546
msgid "Edit Stock Allocation"
msgstr "Modifica posizione giacenza"
-#: templates/js/translated/order.js:3369
+#: templates/js/translated/order.js:3563
msgid "Confirm Delete Operation"
msgstr "Conferma Operazione Eliminazione"
-#: templates/js/translated/order.js:3370
+#: templates/js/translated/order.js:3564
msgid "Delete Stock Allocation"
msgstr "Elimina posizione giacenza"
-#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504
+#: templates/js/translated/order.js:3609 templates/js/translated/order.js:3698
#: templates/js/translated/stock.js:1602
msgid "Shipped to customer"
msgstr "Spedito al cliente"
-#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513
+#: templates/js/translated/order.js:3617 templates/js/translated/order.js:3707
msgid "Stock location not specified"
msgstr "Nessun posizione specificata"
-#: templates/js/translated/order.js:3827
+#: templates/js/translated/order.js:4021
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3833
+#: templates/js/translated/order.js:4027
msgid "Purchase stock"
msgstr "Prezzo d'acquisto"
-#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038
+#: templates/js/translated/order.js:4034 templates/js/translated/order.js:4232
msgid "Calculate price"
msgstr "Calcola il prezzo"
-#: templates/js/translated/order.js:3852
+#: templates/js/translated/order.js:4046
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3855
+#: templates/js/translated/order.js:4049
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3937
+#: templates/js/translated/order.js:4131
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:4046
+#: templates/js/translated/order.js:4240
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:4060
+#: templates/js/translated/order.js:4254
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4296
+#: templates/js/translated/order.js:4490
msgid "No matching lines"
msgstr ""
@@ -9374,173 +9420,177 @@ msgstr ""
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498
+#: templates/js/translated/part.js:584 templates/js/translated/part.js:1515
#: templates/js/translated/table_filters.js:468
msgid "Low stock"
msgstr "In esaurimento"
-#: templates/js/translated/part.js:596
+#: templates/js/translated/part.js:594
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:715
+#: templates/js/translated/part.js:628 templates/js/translated/part.js:713
msgid "Trackable part"
msgstr "Parte tracciabile"
-#: templates/js/translated/part.js:634 templates/js/translated/part.js:719
+#: templates/js/translated/part.js:632 templates/js/translated/part.js:717
msgid "Virtual part"
msgstr "Parte virtuale"
-#: templates/js/translated/part.js:646
+#: templates/js/translated/part.js:644
msgid "Subscribed part"
msgstr "Parte sottoscritta"
-#: templates/js/translated/part.js:650
+#: templates/js/translated/part.js:648
msgid "Salable part"
msgstr "Parte vendibile"
-#: templates/js/translated/part.js:778
+#: templates/js/translated/part.js:776
msgid "No variants found"
msgstr "Nessuna variante trovata"
-#: templates/js/translated/part.js:1180
+#: templates/js/translated/part.js:1200
msgid "Delete part relationship"
msgstr "Elimina relazione tra i componenti"
-#: templates/js/translated/part.js:1204
+#: templates/js/translated/part.js:1224
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573
+#: templates/js/translated/part.js:1291 templates/js/translated/part.js:1602
msgid "No parts found"
msgstr "Nessun articolo trovato"
-#: templates/js/translated/part.js:1310
-msgid "Not available"
-msgstr ""
-
-#: templates/js/translated/part.js:1461
+#: templates/js/translated/part.js:1482
msgid "No category"
msgstr "Nessuna categoria"
-#: templates/js/translated/part.js:1496
+#: templates/js/translated/part.js:1513
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840
-#: templates/js/translated/stock.js:2347
+#: templates/js/translated/part.js:1537
+msgid "Allocated to build orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1541
+msgid "Allocated to sales orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1626 templates/js/translated/part.js:1869
+#: templates/js/translated/stock.js:2343
msgid "Display as list"
msgstr "Visualizza come elenco"
-#: templates/js/translated/part.js:1613
+#: templates/js/translated/part.js:1642
msgid "Display as grid"
msgstr "Visualizza come griglia"
-#: templates/js/translated/part.js:1679
+#: templates/js/translated/part.js:1708
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1684
+#: templates/js/translated/part.js:1713
msgid "Set Part Category"
msgstr "Imposta categoria articolo"
-#: templates/js/translated/part.js:1689
+#: templates/js/translated/part.js:1718
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1702
+#: templates/js/translated/part.js:1731
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366
+#: templates/js/translated/part.js:1888 templates/js/translated/stock.js:2362
msgid "Display as tree"
msgstr "Visualizza come struttura ad albero"
-#: templates/js/translated/part.js:1938
+#: templates/js/translated/part.js:1967
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:1954
+#: templates/js/translated/part.js:1983
msgid "Subscribed category"
msgstr "Categoria sottoscritta"
-#: templates/js/translated/part.js:2012
+#: templates/js/translated/part.js:2041
msgid "No test templates matching query"
msgstr "Nessun modello di test corrispondente"
-#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299
+#: templates/js/translated/part.js:2092 templates/js/translated/stock.js:1299
msgid "Edit test result"
msgstr "Modificare il risultato del test"
-#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300
+#: templates/js/translated/part.js:2093 templates/js/translated/stock.js:1300
#: templates/js/translated/stock.js:1560
msgid "Delete test result"
msgstr "Cancellare il risultato del test"
-#: templates/js/translated/part.js:2070
+#: templates/js/translated/part.js:2099
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2092
+#: templates/js/translated/part.js:2121
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2106
+#: templates/js/translated/part.js:2135
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2131
+#: templates/js/translated/part.js:2160
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:2188
+#: templates/js/translated/part.js:2217
#, python-brace-format
msgid "Edit ${human_name}"
msgstr "Modifica ${human_name}"
-#: templates/js/translated/part.js:2189
+#: templates/js/translated/part.js:2218
#, python-brace-format
msgid "Delete ${human_name}"
msgstr "Elimina ${human_name}"
-#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355
+#: templates/js/translated/part.js:2383 templates/js/translated/part.js:2384
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2357
+#: templates/js/translated/part.js:2386
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2363
+#: templates/js/translated/part.js:2392
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2413
+#: templates/js/translated/part.js:2442
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2419
+#: templates/js/translated/part.js:2448
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2515
+#: templates/js/translated/part.js:2544
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2531
+#: templates/js/translated/part.js:2560
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2576
+#: templates/js/translated/part.js:2605
msgid "Minimum Stock Level"
msgstr ""
-#: templates/js/translated/part.js:2677
+#: templates/js/translated/part.js:2706
msgid "Single Price"
msgstr "Prezzo Singolo"
-#: templates/js/translated/part.js:2696
+#: templates/js/translated/part.js:2725
msgid "Single Price Difference"
msgstr ""
@@ -9778,7 +9828,7 @@ msgstr "Prendi"
msgid "Add Stock"
msgstr "Aggiungi giacenza"
-#: templates/js/translated/stock.js:942 users/models.py:216
+#: templates/js/translated/stock.js:942 users/models.py:218
msgid "Add"
msgstr "Aggiungi"
@@ -9854,156 +9904,156 @@ msgstr "Assegnato all'ordine di vendita"
msgid "No stock location set"
msgstr "Nessuna giacenza impostata"
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1775
msgid "Stock item is in production"
msgstr "L'articolo di magazzino è in produzione"
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1780
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1787
+#: templates/js/translated/stock.js:1783
msgid "Stock item assigned to customer"
msgstr "Articolo stock assegnato al cliente"
-#: templates/js/translated/stock.js:1790
+#: templates/js/translated/stock.js:1786
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1792
+#: templates/js/translated/stock.js:1788
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1794
+#: templates/js/translated/stock.js:1790
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1797
+#: templates/js/translated/stock.js:1793
msgid "Stock item has been installed in another item"
msgstr "L'elemento stock è stato installato in un altro articolo"
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1797
msgid "Stock item has expired"
msgstr "L'articolo stock è scaduto"
-#: templates/js/translated/stock.js:1803
+#: templates/js/translated/stock.js:1799
msgid "Stock item will expire soon"
msgstr "Articolo in giacenza prossimo alla scadenza"
-#: templates/js/translated/stock.js:1810
+#: templates/js/translated/stock.js:1806
msgid "Stock item has been rejected"
msgstr "L'articolo stock è stato rifiutato"
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:1808
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1814
+#: templates/js/translated/stock.js:1810
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1818
+#: templates/js/translated/stock.js:1814
#: templates/js/translated/table_filters.js:196
msgid "Depleted"
msgstr "Esaurito"
-#: templates/js/translated/stock.js:1869
+#: templates/js/translated/stock.js:1865
msgid "Stocktake"
msgstr "Inventario"
-#: templates/js/translated/stock.js:1948
+#: templates/js/translated/stock.js:1944
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1986
+#: templates/js/translated/stock.js:1982
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2159
+#: templates/js/translated/stock.js:2155
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2173
+#: templates/js/translated/stock.js:2169
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2174
+#: templates/js/translated/stock.js:2170
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2404
+#: templates/js/translated/stock.js:2400
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2493
+#: templates/js/translated/stock.js:2489
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2509
+#: templates/js/translated/stock.js:2505
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2531
+#: templates/js/translated/stock.js:2527
msgid "Location no longer exists"
msgstr "La posizione non esiste più"
-#: templates/js/translated/stock.js:2550
+#: templates/js/translated/stock.js:2546
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2569
+#: templates/js/translated/stock.js:2565
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2587
+#: templates/js/translated/stock.js:2583
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2610
+#: templates/js/translated/stock.js:2606
msgid "Added"
msgstr "Aggiunto"
-#: templates/js/translated/stock.js:2618
+#: templates/js/translated/stock.js:2614
msgid "Removed"
msgstr "Rimosso"
-#: templates/js/translated/stock.js:2694
+#: templates/js/translated/stock.js:2690
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781
+#: templates/js/translated/stock.js:2741 templates/js/translated/stock.js:2777
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2790
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2815
+#: templates/js/translated/stock.js:2811
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2816
+#: templates/js/translated/stock.js:2812
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2818
+#: templates/js/translated/stock.js:2814
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2819
+#: templates/js/translated/stock.js:2815
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2820
+#: templates/js/translated/stock.js:2816
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2821
+#: templates/js/translated/stock.js:2817
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2834
+#: templates/js/translated/stock.js:2830
msgid "Select part to install"
msgstr ""
@@ -10525,35 +10575,35 @@ msgstr "Permessi"
msgid "Important dates"
msgstr "Date Importanti"
-#: users/models.py:203
+#: users/models.py:205
msgid "Permission set"
msgstr "Impostazione autorizzazioni"
-#: users/models.py:211
+#: users/models.py:213
msgid "Group"
msgstr "Gruppo"
-#: users/models.py:214
+#: users/models.py:216
msgid "View"
msgstr "Visualizza"
-#: users/models.py:214
+#: users/models.py:216
msgid "Permission to view items"
msgstr "Autorizzazione a visualizzare gli articoli"
-#: users/models.py:216
+#: users/models.py:218
msgid "Permission to add items"
msgstr "Autorizzazione ad aggiungere elementi"
-#: users/models.py:218
+#: users/models.py:220
msgid "Change"
msgstr "Modificare"
-#: users/models.py:218
+#: users/models.py:220
msgid "Permissions to edit items"
msgstr "Permessi per modificare gli elementi"
-#: users/models.py:220
+#: users/models.py:222
msgid "Permission to delete items"
msgstr "Autorizzazione ad eliminare gli elementi"
diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po
index a32e01c02a..4a2f2e4ba3 100644
--- a/InvenTree/locale/ja/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ja/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-08-25 10:08+0000\n"
-"PO-Revision-Date: 2022-08-26 01:55\n"
+"POT-Creation-Date: 2022-09-09 02:44+0000\n"
+"PO-Revision-Date: 2022-09-09 03:57\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
"Language: ja_JP\n"
@@ -29,9 +29,9 @@ msgstr ""
msgid "Enter date"
msgstr "日付を入力する"
-#: InvenTree/fields.py:186 build/serializers.py:384
-#: build/templates/build/sidebar.html:21 company/models.py:523
-#: company/templates/company/sidebar.html:25 order/models.py:906
+#: InvenTree/fields.py:183 build/serializers.py:384
+#: build/templates/build/sidebar.html:21 company/models.py:524
+#: company/templates/company/sidebar.html:25 order/models.py:910
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17
#: part/templates/part/part_sidebar.html:59
@@ -40,11 +40,12 @@ msgstr "日付を入力する"
#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823
#: stock/serializers.py:922 stock/serializers.py:1054
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099
-#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210
-#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859
-#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208
-#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1107
+#: templates/js/translated/company.js:1022
+#: templates/js/translated/order.js:2404 templates/js/translated/order.js:2555
+#: templates/js/translated/order.js:3053 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:4402 templates/js/translated/stock.js:1374
+#: templates/js/translated/stock.js:1976
msgid "Notes"
msgstr "メモ"
@@ -210,12 +211,12 @@ msgid "Select file to attach"
msgstr "添付ファイルを選択"
#: InvenTree/models.py:402 company/models.py:124 company/models.py:276
-#: company/models.py:510 order/models.py:84 order/models.py:1245
+#: company/models.py:511 order/models.py:84 order/models.py:1249
#: part/models.py:802 part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
-#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848
-#: templates/js/translated/part.js:1534
+#: templates/js/translated/company.js:691
+#: templates/js/translated/company.js:1011
+#: templates/js/translated/order.js:3042 templates/js/translated/part.js:1563
msgid "Link"
msgstr "リンク"
@@ -233,12 +234,12 @@ msgstr "コメント:"
msgid "File comment"
msgstr "ファイルコメント"
-#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665
-#: common/models.py:1666 common/models.py:1889 common/models.py:1890
-#: common/models.py:2152 common/models.py:2153 part/models.py:2239
-#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257
+#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1669
+#: common/models.py:1670 common/models.py:1893 common/models.py:1894
+#: common/models.py:2156 common/models.py:2157 part/models.py:2247
+#: part/models.py:2267 plugin/models.py:260 plugin/models.py:261
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2641
+#: templates/js/translated/stock.js:2637
msgid "User"
msgstr "ユーザー"
@@ -275,28 +276,28 @@ msgstr "ファイル名の変更に失敗しました"
msgid "Invalid choice"
msgstr "無効な選択です"
-#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875
+#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1879
#: company/models.py:358 label/models.py:101 part/models.py:746
-#: part/models.py:2417 plugin/models.py:94 report/models.py:152
+#: part/models.py:2425 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin.html:134
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:347
-#: templates/js/translated/company.js:545
-#: templates/js/translated/company.js:758
+#: templates/js/translated/company.js:580
+#: templates/js/translated/company.js:793
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:688 templates/js/translated/part.js:840
-#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392
+#: templates/js/translated/part.js:686 templates/js/translated/part.js:838
+#: templates/js/translated/part.js:1955 templates/js/translated/stock.js:2388
msgid "Name"
msgstr "お名前"
#: InvenTree/models.py:544 build/models.py:174
#: build/templates/build/detail.html:24 company/models.py:282
-#: company/models.py:516 company/templates/company/company_base.html:71
+#: company/models.py:517 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:87 label/models.py:108
-#: order/models.py:82 part/models.py:769 part/models.py:2429
+#: company/templates/company/supplier_part.html:92 label/models.py:108
+#: order/models.py:82 part/models.py:769 part/models.py:2437
#: part/templates/part/category.html:80 part/templates/part/part_base.html:167
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
@@ -305,14 +306,14 @@ msgstr "お名前"
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/InvenTree/settings/settings.html:358
#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846
-#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409
-#: templates/js/translated/company.js:667
-#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637
-#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167
-#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962
-#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743
-#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478
+#: templates/js/translated/build.js:2512 templates/js/translated/company.js:444
+#: templates/js/translated/company.js:702
+#: templates/js/translated/company.js:986 templates/js/translated/order.js:1988
+#: templates/js/translated/order.js:2220 templates/js/translated/order.js:2831
+#: templates/js/translated/part.js:745 templates/js/translated/part.js:1187
+#: templates/js/translated/part.js:1463 templates/js/translated/part.js:1991
+#: templates/js/translated/part.js:2060 templates/js/translated/stock.js:1743
+#: templates/js/translated/stock.js:2420 templates/js/translated/stock.js:2474
msgid "Description"
msgstr "説明"
@@ -325,7 +326,7 @@ msgid "parent"
msgstr "親"
#: InvenTree/models.py:560 InvenTree/models.py:561
-#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:2426
msgid "Path"
msgstr ""
@@ -337,7 +338,7 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2745
+#: InvenTree/serializers.py:55 part/models.py:2753
msgid "Must be a valid number"
msgstr "有効な数字でなければなりません"
@@ -522,7 +523,7 @@ msgid "Placed"
msgstr "設置済"
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr "完了"
@@ -542,8 +543,8 @@ msgstr "紛失"
msgid "Returned"
msgstr "返品済"
-#: InvenTree/status_codes.py:141 order/models.py:1128
-#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785
+#: InvenTree/status_codes.py:141 order/models.py:1132
+#: templates/js/translated/order.js:3630 templates/js/translated/order.js:3979
msgid "Shipped"
msgstr "発送済み"
@@ -627,7 +628,7 @@ msgstr "親アイテムから分割する"
msgid "Split child item"
msgstr "子項目を分割"
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080
msgid "Merged stock items"
msgstr "商品在庫をマージしました"
@@ -717,7 +718,7 @@ msgstr "システム情報"
msgid "About InvenTree"
msgstr ""
-#: build/api.py:217
+#: build/api.py:219
msgid "Build must be cancelled before it can be deleted"
msgstr ""
@@ -748,15 +749,15 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:166 order/models.py:240 order/models.py:623
-#: order/models.py:904 part/models.py:2663
+#: build/models.py:166 order/models.py:240 order/models.py:627
+#: order/models.py:908 part/models.py:2671
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853
-#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089
-#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629
-#: templates/js/translated/order.js:4137
+#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2251
+#: templates/js/translated/order.js:2484 templates/js/translated/order.js:3823
+#: templates/js/translated/order.js:4331
msgid "Reference"
msgstr ""
@@ -774,12 +775,12 @@ msgid "BuildOrder to which this build is allocated"
msgstr ""
#: build/models.py:191 build/templates/build/build_base.html:80
-#: build/templates/build/detail.html:29 company/models.py:670
-#: order/models.py:1001 order/models.py:1112 order/models.py:1113
-#: part/models.py:343 part/models.py:2185 part/models.py:2200
-#: part/models.py:2219 part/models.py:2237 part/models.py:2336
-#: part/models.py:2463 part/models.py:2553 part/models.py:2638
-#: part/models.py:2914 part/serializers.py:814
+#: build/templates/build/detail.html:29 company/models.py:679
+#: order/models.py:1005 order/models.py:1116 order/models.py:1117
+#: part/models.py:343 part/models.py:2193 part/models.py:2208
+#: part/models.py:2227 part/models.py:2245 part/models.py:2344
+#: part/models.py:2471 part/models.py:2561 part/models.py:2646
+#: part/models.py:2922 part/serializers.py:814
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -795,18 +796,18 @@ msgstr ""
#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800
#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682
#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517
-#: templates/js/translated/company.js:266
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:608
-#: templates/js/translated/company.js:868 templates/js/translated/order.js:105
-#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493
-#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613
-#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224
-#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586
+#: templates/js/translated/company.js:301
+#: templates/js/translated/company.js:531
+#: templates/js/translated/company.js:643
+#: templates/js/translated/company.js:904 templates/js/translated/order.js:106
+#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1638
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:3185
+#: templates/js/translated/order.js:3581 templates/js/translated/order.js:3807
+#: templates/js/translated/part.js:1172 templates/js/translated/part.js:1244
+#: templates/js/translated/part.js:1441 templates/js/translated/stock.js:586
#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504
-#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833
+#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2500
+#: templates/js/translated/stock.js:2695 templates/js/translated/stock.js:2829
msgid "Part"
msgstr "パーツ"
@@ -823,7 +824,7 @@ msgid "SalesOrder to which this build is allocated"
msgstr ""
#: build/models.py:213 build/serializers.py:800
-#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979
+#: templates/js/translated/build.js:2114 templates/js/translated/order.js:3173
msgid "Source Location"
msgstr ""
@@ -863,8 +864,8 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:251 build/serializers.py:225 order/serializers.py:447
-#: stock/models.py:662 templates/js/translated/order.js:1353
+#: build/models.py:251 build/serializers.py:225 order/serializers.py:464
+#: stock/models.py:662 templates/js/translated/order.js:1496
msgid "Batch Code"
msgstr ""
@@ -873,11 +874,11 @@ msgid "Batch code for this build output"
msgstr ""
#: build/models.py:258 order/models.py:86 part/models.py:938
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2844
msgid "Creation Date"
msgstr "作成日時"
-#: build/models.py:262 order/models.py:648
+#: build/models.py:262 order/models.py:652
msgid "Target completion date"
msgstr ""
@@ -904,10 +905,10 @@ msgstr ""
#: build/models.py:289 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:100
-#: order/templates/order/order_base.html:179
+#: order/templates/order/order_base.html:185
#: order/templates/order/sales_order_base.html:183 part/models.py:942
#: report/templates/report/inventree_build_order_base.html:158
-#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860
+#: templates/js/translated/build.js:2574 templates/js/translated/order.js:2022
msgid "Responsible"
msgstr ""
@@ -917,9 +918,9 @@ msgstr ""
#: build/models.py:295 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
-#: company/templates/company/supplier_part.html:153
+#: company/templates/company/supplier_part.html:165
#: part/templates/part/part_base.html:346 stock/models.py:656
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr ""
@@ -957,11 +958,11 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1188 order/models.py:1379
+#: build/models.py:1188 order/models.py:1383
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1194 order/models.py:1382
+#: build/models.py:1194 order/models.py:1386
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -973,7 +974,7 @@ msgstr ""
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1326 stock/templates/stock/item_base.html:172
+#: build/models.py:1326 stock/templates/stock/item_base.html:175
#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496
#: templates/navbar.html:38
msgid "Build"
@@ -983,18 +984,18 @@ msgstr ""
msgid "Build to allocate parts"
msgstr "パーツを割り当てるためにビルドする"
-#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015
-#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754
+#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1035
+#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754
#: stock/serializers.py:880 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:197
#: templates/js/translated/build.js:774 templates/js/translated/build.js:779
#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679
-#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992
-#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299
-#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486
+#: templates/js/translated/order.js:107 templates/js/translated/order.js:3186
+#: templates/js/translated/order.js:3488 templates/js/translated/order.js:3493
+#: templates/js/translated/order.js:3588 templates/js/translated/order.js:3680
#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752
-#: templates/js/translated/stock.js:2577
+#: templates/js/translated/stock.js:2573
msgid "Stock Item"
msgstr "在庫商品"
@@ -1004,11 +1005,11 @@ msgstr ""
#: build/models.py:1356 build/serializers.py:193
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1697
-#: company/templates/company/supplier_part.html:279 order/models.py:897
-#: order/models.py:1423 order/serializers.py:1155
+#: build/templates/build/detail.html:34 common/models.py:1701
+#: company/templates/company/supplier_part.html:291 order/models.py:901
+#: order/models.py:1427 order/serializers.py:1209
#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40
-#: part/models.py:2654 part/templates/part/detail.html:951
+#: part/models.py:2662 part/templates/part/detail.html:951
#: part/templates/part/detail.html:1037
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -1017,8 +1018,8 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:291 stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
+#: stock/serializers.py:291 stock/templates/stock/item_base.html:290
+#: stock/templates/stock/item_base.html:298
#: templates/email/build_order_completed.html:18
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691
#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458
@@ -1026,16 +1027,16 @@ msgstr ""
#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708
#: templates/js/translated/build.js:2129
#: templates/js/translated/model_renderers.js:120
-#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043
-#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313
-#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492
-#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143
-#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176
-#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686
-#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458
+#: templates/js/translated/order.js:123 templates/js/translated/order.js:1137
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:2490
+#: templates/js/translated/order.js:3187 templates/js/translated/order.js:3507
+#: templates/js/translated/order.js:3594 templates/js/translated/order.js:3686
+#: templates/js/translated/order.js:3829 templates/js/translated/order.js:4337
+#: templates/js/translated/part.js:1036 templates/js/translated/part.js:2205
+#: templates/js/translated/part.js:2674 templates/js/translated/part.js:2715
+#: templates/js/translated/part.js:2793 templates/js/translated/stock.js:458
#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782
-#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2707
msgid "Quantity"
msgstr "数量"
@@ -1077,7 +1078,7 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:208 build/serializers.py:665 order/models.py:318
-#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545
+#: order/serializers.py:304 order/serializers.py:459 part/serializers.py:545
#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251
#: stock/serializers.py:300
msgid "Quantity must be greater than zero"
@@ -1091,8 +1092,8 @@ msgstr ""
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159
-#: stock/serializers.py:309 templates/js/translated/order.js:1364
+#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213
+#: stock/serializers.py:309 templates/js/translated/order.js:1507
#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459
msgid "Serial Numbers"
msgstr ""
@@ -1117,18 +1118,18 @@ msgstr ""
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532
+#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552
#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532
#: stock/serializers.py:915 stock/serializers.py:1148
-#: stock/templates/stock/item_base.html:385
+#: stock/templates/stock/item_base.html:388
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786
-#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391
-#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411
-#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500
+#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1534
+#: templates/js/translated/order.js:3500 templates/js/translated/order.js:3605
+#: templates/js/translated/order.js:3613 templates/js/translated/order.js:3694
#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588
#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960
-#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2514
msgid "Location"
msgstr ""
@@ -1137,12 +1138,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:373 build/templates/build/build_base.html:145
-#: build/templates/build/detail.html:62 order/models.py:642
-#: order/serializers.py:465 stock/templates/stock/item_base.html:418
+#: build/templates/build/detail.html:62 order/models.py:646
+#: order/serializers.py:482 stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546
-#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830
-#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829
-#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727
+#: templates/js/translated/order.js:1643 templates/js/translated/order.js:1992
+#: templates/js/translated/order.js:2836 templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:2591 templates/js/translated/stock.js:2723
msgid "Status"
msgstr "ステータス"
@@ -1202,7 +1203,7 @@ msgstr ""
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:527
+#: build/serializers.py:527 order/serializers.py:208 order/serializers.py:1103
msgid "Accept Incomplete"
msgstr ""
@@ -1218,8 +1219,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772
-#: part/models.py:2906
+#: build/serializers.py:577 build/serializers.py:622 part/models.py:2780
+#: part/models.py:2914
msgid "BOM Item"
msgstr ""
@@ -1239,7 +1240,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:709 order/serializers.py:1073
+#: build/serializers.py:709 order/serializers.py:1093
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1256,7 +1257,7 @@ msgstr ""
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:750 order/serializers.py:1319
+#: build/serializers.py:750 order/serializers.py:1373
msgid "Allocation items must be provided"
msgstr ""
@@ -1371,13 +1372,13 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:154
-#: build/templates/build/detail.html:131 order/models.py:910
-#: order/templates/order/order_base.html:165
+#: build/templates/build/detail.html:131 order/models.py:914
+#: order/templates/order/order_base.html:171
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:125
-#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847
-#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658
-#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042
+#: templates/js/translated/build.js:2586 templates/js/translated/order.js:2009
+#: templates/js/translated/order.js:2351 templates/js/translated/order.js:2852
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1051
msgid "Target Date"
msgstr ""
@@ -1388,7 +1389,7 @@ msgstr ""
#: build/templates/build/build_base.html:159
#: build/templates/build/build_base.html:204
-#: order/templates/order/order_base.html:101
+#: order/templates/order/order_base.html:107
#: order/templates/order/sales_order_base.html:94
#: templates/js/translated/table_filters.js:320
#: templates/js/translated/table_filters.js:361
@@ -1404,15 +1405,15 @@ msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:179
-#: build/templates/build/detail.html:94 order/models.py:1105
-#: order/models.py:1199 order/models.py:1330
+#: build/templates/build/detail.html:94 order/models.py:1109
+#: order/models.py:1203 order/models.py:1334
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:365
+#: stock/templates/stock/item_base.html:368
#: templates/email/overdue_sales_order.html:15
-#: templates/js/translated/order.js:2604
+#: templates/js/translated/order.js:2798
msgid "Sales Order"
msgstr ""
@@ -1438,8 +1439,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1023
-#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199
+#: build/templates/build/detail.html:49 order/models.py:1027
+#: templates/js/translated/order.js:1644 templates/js/translated/order.js:2393
msgid "Destination"
msgstr ""
@@ -1452,18 +1453,18 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:165
+#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1215
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843
-#: templates/js/translated/stock.js:2734
+#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1839
+#: templates/js/translated/stock.js:2730
#: templates/js/translated/table_filters.js:159
#: templates/js/translated/table_filters.js:250
msgid "Batch"
msgstr ""
#: build/templates/build/detail.html:126
-#: order/templates/order/order_base.html:152
+#: order/templates/order/order_base.html:158
#: order/templates/order/sales_order_base.html:158
#: templates/js/translated/build.js:2554
msgid "Created"
@@ -1516,7 +1517,7 @@ msgstr "注文必須パーツ"
#: build/templates/build/detail.html:187
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:85
-#: part/templates/part/category.html:183 templates/js/translated/order.js:1083
+#: part/templates/part/category.html:183 templates/js/translated/order.js:1177
msgid "Order Parts"
msgstr "パーツの注文"
@@ -1851,7 +1852,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:951 part/models.py:2465 report/models.py:158
+#: common/models.py:951 part/models.py:2473 report/models.py:158
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:484
msgid "Template"
@@ -1861,7 +1862,7 @@ msgstr "テンプレート"
msgid "Parts are templates by default"
msgstr "パーツはデフォルトのテンプレートです"
-#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446
+#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1454
#: templates/js/translated/table_filters.js:176
#: templates/js/translated/table_filters.js:447
msgid "Assembly"
@@ -2275,349 +2276,349 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1342 common/models.py:1658
+#: common/models.py:1344 common/models.py:1662
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1364
+#: common/models.py:1366
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1365
+#: common/models.py:1367
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1371
+#: common/models.py:1373
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1372
+#: common/models.py:1374
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1378
+#: common/models.py:1380
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1379
+#: common/models.py:1381
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1385
+#: common/models.py:1387
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1386
+#: common/models.py:1388
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1392
+#: common/models.py:1394
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1393
+#: common/models.py:1395
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1399
+#: common/models.py:1401
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1400
+#: common/models.py:1402
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1406
+#: common/models.py:1408
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1407
+#: common/models.py:1409
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1413
+#: common/models.py:1415
msgid "Show low stock"
msgstr ""
-#: common/models.py:1414
+#: common/models.py:1416
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1420
+#: common/models.py:1422
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1421
+#: common/models.py:1423
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1427
+#: common/models.py:1429
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1430
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1434
+#: common/models.py:1436
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1435
+#: common/models.py:1437
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1441
+#: common/models.py:1443
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1442
+#: common/models.py:1444
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1448
+#: common/models.py:1450
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1449
+#: common/models.py:1451
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1455
+#: common/models.py:1457
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1456
+#: common/models.py:1458
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1462
+#: common/models.py:1464
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1463
+#: common/models.py:1465
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1469
+#: common/models.py:1471
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1470
+#: common/models.py:1472
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1476
+#: common/models.py:1478
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1477
+#: common/models.py:1479
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1483
+#: common/models.py:1485
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1484
+#: common/models.py:1486
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1490
+#: common/models.py:1492
msgid "Inline label display"
msgstr ""
-#: common/models.py:1491
+#: common/models.py:1493
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1499
msgid "Inline report display"
msgstr ""
-#: common/models.py:1498
+#: common/models.py:1500
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1506
msgid "Search Parts"
msgstr ""
-#: common/models.py:1505
+#: common/models.py:1507
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1513
msgid "Seach Supplier Parts"
msgstr ""
-#: common/models.py:1512
+#: common/models.py:1514
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1520
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:1519
+#: common/models.py:1521
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:1525
+#: common/models.py:1527
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1526
+#: common/models.py:1528
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1532
+#: common/models.py:1534
msgid "Search Categories"
msgstr ""
-#: common/models.py:1533
+#: common/models.py:1535
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1539
+#: common/models.py:1541
msgid "Search Stock"
msgstr ""
-#: common/models.py:1540
+#: common/models.py:1542
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1546
+#: common/models.py:1548
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1547
+#: common/models.py:1549
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1553
+#: common/models.py:1555
msgid "Search Locations"
msgstr ""
-#: common/models.py:1554
+#: common/models.py:1556
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1560
+#: common/models.py:1562
msgid "Search Companies"
msgstr ""
-#: common/models.py:1561
+#: common/models.py:1563
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1567
+#: common/models.py:1569
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1568
+#: common/models.py:1570
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1574
+#: common/models.py:1576
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1575
+#: common/models.py:1577
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1581
+#: common/models.py:1583
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1582
+#: common/models.py:1584
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1588
+#: common/models.py:1590
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1591
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1595
+#: common/models.py:1597
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1598
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1602
+#: common/models.py:1604
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1605
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1609
+#: common/models.py:1611
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1610
+#: common/models.py:1612
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1616
+#: common/models.py:1618
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1617
+#: common/models.py:1619
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1623
+#: common/models.py:1625
msgid "Date Format"
msgstr ""
-#: common/models.py:1624
+#: common/models.py:1626
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1638 part/templates/part/detail.html:41
+#: common/models.py:1640 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1641
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1698
+#: common/models.py:1702
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1705 company/serializers.py:366
-#: company/templates/company/supplier_part.html:284 order/models.py:938
-#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181
+#: common/models.py:1709 company/serializers.py:372
+#: company/templates/company/supplier_part.html:296 order/models.py:942
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:2210
msgid "Price"
msgstr ""
-#: common/models.py:1706
+#: common/models.py:1710
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1866 common/models.py:2044
+#: common/models.py:1870 common/models.py:2048
msgid "Endpoint"
msgstr ""
-#: common/models.py:1867
+#: common/models.py:1871
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1876
+#: common/models.py:1880
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1881 part/models.py:921 plugin/models.py:100
+#: common/models.py:1885 part/models.py:921 plugin/models.py:100
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:104
#: templates/js/translated/table_filters.js:316
@@ -2625,67 +2626,67 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1886
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1896
+#: common/models.py:1900
msgid "Token"
msgstr ""
-#: common/models.py:1897
+#: common/models.py:1901
msgid "Token for access"
msgstr ""
-#: common/models.py:1904
+#: common/models.py:1908
msgid "Secret"
msgstr ""
-#: common/models.py:1905
+#: common/models.py:1909
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2011
+#: common/models.py:2015
msgid "Message ID"
msgstr "メッセージ ID:"
-#: common/models.py:2012
+#: common/models.py:2016
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2020
+#: common/models.py:2024
msgid "Host"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2025
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2032
msgid "Header"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2033
msgid "Header of this message"
msgstr ""
-#: common/models.py:2035
+#: common/models.py:2039
msgid "Body"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2040
msgid "Body of this message"
msgstr ""
-#: common/models.py:2045
+#: common/models.py:2049
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2054
msgid "Worked on"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2055
msgid "Was the work on this message finished?"
msgstr ""
@@ -2747,7 +2748,7 @@ msgstr ""
#: company/models.py:105 company/templates/company/company_base.html:100
#: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:413
+#: templates/js/translated/company.js:448
msgid "Website"
msgstr ""
@@ -2824,7 +2825,7 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:148 company/serializers.py:372
+#: company/models.py:148 company/serializers.py:378
#: company/templates/company/company_base.html:106 part/serializers.py:153
#: part/serializers.py:184 stock/serializers.py:178
msgid "Currency"
@@ -2834,24 +2835,24 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:248 company/models.py:481 stock/models.py:598
+#: company/models.py:248 company/models.py:482 stock/models.py:598
#: stock/serializers.py:85 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:542
msgid "Base Part"
msgstr ""
-#: company/models.py:252 company/models.py:485
+#: company/models.py:252 company/models.py:486
msgid "Select part"
msgstr ""
#: company/models.py:263 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:124
-#: stock/templates/stock/item_base.html:207
-#: templates/js/translated/company.js:397
-#: templates/js/translated/company.js:498
-#: templates/js/translated/company.js:633
-#: templates/js/translated/company.js:919 templates/js/translated/part.js:236
+#: company/templates/company/supplier_part.html:129
+#: stock/templates/stock/item_base.html:210
+#: templates/js/translated/company.js:432
+#: templates/js/translated/company.js:533
+#: templates/js/translated/company.js:668
+#: templates/js/translated/company.js:956 templates/js/translated/part.js:236
#: templates/js/translated/table_filters.js:419
msgid "Manufacturer"
msgstr ""
@@ -2861,12 +2862,12 @@ msgid "Select manufacturer"
msgstr ""
#: company/models.py:270 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:132
-#: templates/js/translated/company.js:269
-#: templates/js/translated/company.js:497
-#: templates/js/translated/company.js:649
-#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077
-#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027
+#: company/templates/company/supplier_part.html:137
+#: templates/js/translated/company.js:304
+#: templates/js/translated/company.js:532
+#: templates/js/translated/company.js:684
+#: templates/js/translated/company.js:975 templates/js/translated/order.js:2239
+#: templates/js/translated/part.js:247 templates/js/translated/part.js:1025
msgid "MPN"
msgstr ""
@@ -2882,10 +2883,10 @@ msgstr ""
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:328 company/models.py:352 company/models.py:504
+#: company/models.py:328 company/models.py:352 company/models.py:505
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:220
msgid "Manufacturer Part"
msgstr "メーカー・パーツ"
@@ -2895,8 +2896,8 @@ msgstr ""
#: company/models.py:365
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2095 templates/js/translated/company.js:546
-#: templates/js/translated/company.js:764 templates/js/translated/part.js:849
+#: stock/models.py:2095 templates/js/translated/company.js:581
+#: templates/js/translated/company.js:799 templates/js/translated/part.js:847
#: templates/js/translated/stock.js:1360
msgid "Value"
msgstr ""
@@ -2905,10 +2906,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:372 part/models.py:888 part/models.py:2425
+#: company/models.py:372 part/models.py:888 part/models.py:2433
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:352
-#: templates/js/translated/company.js:770 templates/js/translated/part.js:855
+#: templates/js/translated/company.js:805 templates/js/translated/part.js:853
msgid "Units"
msgstr ""
@@ -2916,106 +2917,119 @@ msgstr ""
msgid "Parameter units"
msgstr ""
-#: company/models.py:449
+#: company/models.py:450
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:491 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:108 order/models.py:258
-#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:224
+#: company/models.py:492 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:113 order/models.py:258
+#: order/templates/order/order_base.html:121 part/bom.py:237 part/bom.py:265
+#: stock/templates/stock/item_base.html:227
#: templates/email/overdue_purchase_order.html:16
-#: templates/js/translated/company.js:268
-#: templates/js/translated/company.js:401
-#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813
-#: templates/js/translated/part.js:217 templates/js/translated/part.js:995
+#: templates/js/translated/company.js:303
+#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:929 templates/js/translated/order.js:1975
+#: templates/js/translated/part.js:217 templates/js/translated/part.js:993
#: templates/js/translated/table_filters.js:423
msgid "Supplier"
msgstr ""
-#: company/models.py:492 templates/js/translated/part.js:218
+#: company/models.py:493 templates/js/translated/part.js:218
msgid "Select supplier"
msgstr ""
-#: company/models.py:497 company/templates/company/supplier_part.html:118
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267
-#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228
-#: templates/js/translated/part.js:1013
+#: company/models.py:498 company/templates/company/supplier_part.html:123
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:302
+#: templates/js/translated/order.js:2226 templates/js/translated/part.js:228
+#: templates/js/translated/part.js:1011
msgid "SKU"
msgstr ""
-#: company/models.py:498 templates/js/translated/part.js:229
+#: company/models.py:499 templates/js/translated/part.js:229
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:505
+#: company/models.py:506
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:511
+#: company/models.py:512
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:517
+#: company/models.py:518
msgid "Supplier part description"
msgstr ""
-#: company/models.py:522 company/templates/company/supplier_part.html:146
-#: part/models.py:2666 part/templates/part/upload_bom.html:59
+#: company/models.py:523 company/templates/company/supplier_part.html:158
+#: part/models.py:2674 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399
msgid "Note"
msgstr ""
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "base cost"
msgstr ""
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:528 company/templates/company/supplier_part.html:139
-#: stock/models.py:624 stock/templates/stock/item_base.html:240
-#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976
+#: company/models.py:529 company/templates/company/supplier_part.html:144
+#: stock/models.py:624 stock/templates/stock/item_base.html:243
+#: templates/js/translated/company.js:991 templates/js/translated/stock.js:1972
msgid "Packaging"
msgstr ""
-#: company/models.py:528
+#: company/models.py:529
msgid "Part packaging"
msgstr ""
-#: company/models.py:530 part/models.py:1783
+#: company/models.py:532 company/serializers.py:242
+#: company/templates/company/supplier_part.html:151
+#: templates/js/translated/company.js:996 templates/js/translated/order.js:820
+#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:2270 templates/js/translated/order.js:2287
+#: templates/js/translated/part.js:1043 templates/js/translated/part.js:1095
+msgid "Pack Quantity"
+msgstr ""
+
+#: company/models.py:533
+msgid "Unit quantity supplied in a single pack"
+msgstr ""
+
+#: company/models.py:539 part/models.py:1783
msgid "multiple"
msgstr ""
-#: company/models.py:530
+#: company/models.py:539
msgid "Order multiple"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part.html:94
+#: company/models.py:547 company/templates/company/supplier_part.html:99
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823
-#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979
-#: templates/js/translated/part.js:600 templates/js/translated/part.js:603
+#: templates/js/translated/bom.js:915 templates/js/translated/build.js:1823
+#: templates/js/translated/build.js:2686 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:601
#: templates/js/translated/table_filters.js:186
msgid "Available"
msgstr ""
-#: company/models.py:539
+#: company/models.py:548
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:543
+#: company/models.py:552
msgid "Availability Updated"
msgstr ""
-#: company/models.py:544
+#: company/models.py:553
msgid "Date of last update of availability data"
msgstr ""
-#: company/models.py:672
+#: company/models.py:681
msgid "last updated"
msgstr ""
@@ -3029,12 +3043,12 @@ msgstr ""
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386
+#: templates/InvenTree/search.html:179 templates/js/translated/company.js:421
msgid "Company"
msgstr ""
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:624
+#: templates/js/translated/order.js:689
msgid "Create Purchase Order"
msgstr ""
@@ -3047,7 +3061,7 @@ msgid "Edit company information"
msgstr ""
#: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:329
+#: templates/js/translated/company.js:364
msgid "Edit Company"
msgstr ""
@@ -3070,13 +3084,13 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:86 order/models.py:637
+#: company/templates/company/company_base.html:86 order/models.py:641
#: order/templates/order/sales_order_base.html:116 stock/models.py:643
#: stock/models.py:644 stock/serializers.py:809
-#: stock/templates/stock/item_base.html:396
+#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
-#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619
-#: templates/js/translated/stock.js:2559
+#: templates/js/translated/company.js:428 templates/js/translated/order.js:2813
+#: templates/js/translated/stock.js:2555
#: templates/js/translated/table_filters.js:427
msgid "Customer"
msgstr ""
@@ -3211,23 +3225,23 @@ msgid "Manufacturers"
msgstr ""
#: company/templates/company/manufacturer_part.html:35
-#: company/templates/company/supplier_part.html:186
+#: company/templates/company/supplier_part.html:198
#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80
msgid "Order part"
msgstr "パーツの注文"
#: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:681
+#: templates/js/translated/company.js:716
msgid "Edit manufacturer part"
msgstr "メーカー・パーツの編集"
#: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:682
+#: templates/js/translated/company.js:717
msgid "Delete manufacturer part"
msgstr "メーカー・パーツを削除"
#: company/templates/company/manufacturer_part.html:65
-#: company/templates/company/supplier_part.html:77
+#: company/templates/company/supplier_part.html:82
msgid "Internal Part"
msgstr "内部パーツ"
@@ -3250,8 +3264,8 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:371 part/templates/part/detail.html:401
-#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34
-#: users/models.py:220
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:34
+#: users/models.py:222
msgid "Delete"
msgstr ""
@@ -3296,9 +3310,9 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:607
-#: stock/templates/stock/item_base.html:233
-#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041
-#: templates/js/translated/stock.js:1933
+#: stock/templates/stock/item_base.html:236
+#: templates/js/translated/company.js:945 templates/js/translated/order.js:1135
+#: templates/js/translated/stock.js:1929
msgid "Supplier Part"
msgstr ""
@@ -3308,7 +3322,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:40
#: company/templates/company/supplier_part.html:41
-#: company/templates/company/supplier_part.html:187
+#: company/templates/company/supplier_part.html:199
#: part/templates/part/detail.html:88
msgid "Order Part"
msgstr ""
@@ -3320,81 +3334,87 @@ msgstr ""
#: company/templates/company/supplier_part.html:48
#: company/templates/company/supplier_part.html:49
-#: templates/js/translated/company.js:212
+#: templates/js/translated/company.js:247
msgid "Edit Supplier Part"
msgstr ""
#: company/templates/company/supplier_part.html:53
+#: company/templates/company/supplier_part.html:54
+#: templates/js/translated/company.js:222
+msgid "Duplicate Supplier Part"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:58
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:54
+#: company/templates/company/supplier_part.html:59
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:112
+#: company/templates/company/supplier_part.html:117
msgid "No supplier information available"
msgstr ""
-#: company/templates/company/supplier_part.html:165
+#: company/templates/company/supplier_part.html:177
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr ""
-#: company/templates/company/supplier_part.html:168
+#: company/templates/company/supplier_part.html:180
#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181
msgid "Create new stock item"
msgstr ""
-#: company/templates/company/supplier_part.html:169
+#: company/templates/company/supplier_part.html:181
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182
#: templates/js/translated/stock.js:435
msgid "New Stock Item"
msgstr ""
-#: company/templates/company/supplier_part.html:182
+#: company/templates/company/supplier_part.html:194
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr ""
-#: company/templates/company/supplier_part.html:207
+#: company/templates/company/supplier_part.html:219
#: part/templates/part/prices.html:10
msgid "Pricing Information"
msgstr ""
-#: company/templates/company/supplier_part.html:212
-#: company/templates/company/supplier_part.html:326
-#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253
+#: company/templates/company/supplier_part.html:224
+#: company/templates/company/supplier_part.html:338
+#: part/templates/part/prices.html:276 templates/js/translated/part.js:2282
msgid "Add Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:250
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:252
-#: templates/js/translated/part.js:2263
+#: company/templates/company/supplier_part.html:264
+#: templates/js/translated/part.js:2292
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:266
-#: templates/js/translated/part.js:2277
+#: company/templates/company/supplier_part.html:278
+#: templates/js/translated/part.js:2306
msgid "Edit Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:291
+#: company/templates/company/supplier_part.html:303
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part.html:292
+#: company/templates/company/supplier_part.html:304
msgid "Delete price break"
msgstr ""
-#: company/templates/company/supplier_part.html:301
+#: company/templates/company/supplier_part.html:313
msgid "Last updated"
msgstr ""
-#: company/templates/company/supplier_part.html:382
+#: company/templates/company/supplier_part.html:394
msgid "Update Part Availability"
msgstr ""
@@ -3404,8 +3424,8 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313
-#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959
+#: templates/js/translated/part.js:749 templates/js/translated/part.js:1334
+#: templates/js/translated/part.js:1495 templates/js/translated/stock.js:959
#: templates/js/translated/stock.js:1754 templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -3432,7 +3452,7 @@ msgstr ""
#: stock/templates/stock/location.html:178
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2436 users/models.py:40
+#: templates/js/translated/stock.js:2432 users/models.py:40
msgid "Stock Items"
msgstr ""
@@ -3534,7 +3554,7 @@ msgstr ""
msgid "Order description"
msgstr ""
-#: order/models.py:84 order/models.py:1246
+#: order/models.py:84 order/models.py:1250
msgid "Link to external page"
msgstr ""
@@ -3550,11 +3570,11 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:241 order/models.py:624
+#: order/models.py:241 order/models.py:628
msgid "Order reference"
msgstr ""
-#: order/models.py:249 order/models.py:642
+#: order/models.py:249 order/models.py:646
msgid "Purchase order status"
msgstr ""
@@ -3562,8 +3582,8 @@ msgstr ""
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:262 order/templates/order/order_base.html:127
-#: templates/js/translated/order.js:1822
+#: order/models.py:262 order/templates/order/order_base.html:133
+#: templates/js/translated/order.js:1984
msgid "Supplier Reference"
msgstr ""
@@ -3603,245 +3623,245 @@ msgstr ""
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:638
+#: order/models.py:642
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer Reference "
msgstr ""
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:649
+#: order/models.py:653
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:652 order/models.py:1204
-#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828
+#: order/models.py:656 order/models.py:1208
+#: templates/js/translated/order.js:2860 templates/js/translated/order.js:3022
msgid "Shipment Date"
msgstr ""
-#: order/models.py:659
+#: order/models.py:663
msgid "shipped by"
msgstr ""
-#: order/models.py:714
+#: order/models.py:718
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:718
+#: order/models.py:722
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:721
+#: order/models.py:725 templates/js/translated/order.js:419
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:724
+#: order/models.py:728
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:898
+#: order/models.py:902
msgid "Item quantity"
msgstr ""
-#: order/models.py:904
+#: order/models.py:908
msgid "Line item reference"
msgstr ""
-#: order/models.py:906
+#: order/models.py:910
msgid "Line item notes"
msgstr ""
-#: order/models.py:911
+#: order/models.py:915
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:929
+#: order/models.py:933
msgid "Context"
msgstr ""
-#: order/models.py:930
+#: order/models.py:934
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:939
+#: order/models.py:943
msgid "Unit price"
msgstr ""
-#: order/models.py:969
+#: order/models.py:973
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:977
+#: order/models.py:981
msgid "deleted"
msgstr ""
-#: order/models.py:983 order/models.py:1063 order/models.py:1104
-#: order/models.py:1198 order/models.py:1330
-#: templates/js/translated/order.js:3284
+#: order/models.py:987 order/models.py:1067 order/models.py:1108
+#: order/models.py:1202 order/models.py:1334
+#: templates/js/translated/order.js:3478
msgid "Order"
msgstr ""
-#: order/models.py:984 order/models.py:1063
+#: order/models.py:988 order/models.py:1067
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:179
+#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
-#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042
-#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972
-#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540
+#: templates/js/translated/order.js:619 templates/js/translated/order.js:1136
+#: templates/js/translated/order.js:1959 templates/js/translated/part.js:970
+#: templates/js/translated/stock.js:1909 templates/js/translated/stock.js:2536
msgid "Purchase Order"
msgstr ""
-#: order/models.py:1002
+#: order/models.py:1006
msgid "Supplier part"
msgstr ""
-#: order/models.py:1009 order/templates/order/order_base.html:172
-#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105
+#: order/models.py:1013 order/templates/order/order_base.html:178
+#: templates/js/translated/order.js:1641 templates/js/translated/order.js:2373
+#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1125
#: templates/js/translated/table_filters.js:338
msgid "Received"
msgstr ""
-#: order/models.py:1010
+#: order/models.py:1014
msgid "Number of items received"
msgstr ""
-#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734
-#: stock/serializers.py:169 stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1964
+#: order/models.py:1021 part/templates/part/prices.html:181 stock/models.py:734
+#: stock/serializers.py:169 stock/templates/stock/item_base.html:189
+#: templates/js/translated/stock.js:1960
msgid "Purchase Price"
msgstr "購入金額"
-#: order/models.py:1018
+#: order/models.py:1022
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1026
+#: order/models.py:1030
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1092
+#: order/models.py:1096
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1097
+#: order/models.py:1101
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1123 part/templates/part/part_pricing.html:115
+#: order/models.py:1127 part/templates/part/part_pricing.html:115
#: part/templates/part/prices.html:121 part/templates/part/prices.html:290
msgid "Sale Price"
msgstr ""
-#: order/models.py:1124
+#: order/models.py:1128
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1129
+#: order/models.py:1133
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1205
+#: order/models.py:1209
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1212
+#: order/models.py:1216
msgid "Checked By"
msgstr ""
-#: order/models.py:1213
+#: order/models.py:1217
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1220 order/models.py:1405 order/serializers.py:1170
-#: order/serializers.py:1294 templates/js/translated/model_renderers.js:314
+#: order/models.py:1224 order/models.py:1409 order/serializers.py:1224
+#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314
msgid "Shipment"
msgstr ""
-#: order/models.py:1221
+#: order/models.py:1225
msgid "Shipment number"
msgstr ""
-#: order/models.py:1225
+#: order/models.py:1229
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1231
+#: order/models.py:1235
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1232
+#: order/models.py:1236
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1239
+#: order/models.py:1243
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1240
+#: order/models.py:1244
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1258
+#: order/models.py:1262
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1261
+#: order/models.py:1265
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1364 order/models.py:1366
+#: order/models.py:1368 order/models.py:1370
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1370
+#: order/models.py:1374
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1372
+#: order/models.py:1376
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1375
+#: order/models.py:1379
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1385 order/serializers.py:1066
+#: order/models.py:1389 order/serializers.py:1086
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1388
+#: order/models.py:1392
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1389
+#: order/models.py:1393
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1397
+#: order/models.py:1401
msgid "Line"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1410
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1419 templates/js/translated/notification.js:55
+#: order/models.py:1423 templates/js/translated/notification.js:55
msgid "Item"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1424
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1423
+#: order/models.py:1427
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3853,111 +3873,119 @@ msgstr ""
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:294
+#: order/serializers.py:209 order/serializers.py:1104
+msgid "Allow order to be closed with incomplete line items"
+msgstr ""
+
+#: order/serializers.py:220 order/serializers.py:1115
+msgid "Order has incomplete line items"
+msgstr ""
+
+#: order/serializers.py:311
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:318
+#: order/serializers.py:335
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:354
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:342
+#: order/serializers.py:359
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:348
+#: order/serializers.py:365
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:349
+#: order/serializers.py:366
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:413 order/serializers.py:1138
+#: order/serializers.py:430 order/serializers.py:1192
msgid "Line Item"
msgstr ""
-#: order/serializers.py:419
+#: order/serializers.py:436
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:429 order/serializers.py:533
+#: order/serializers.py:446 order/serializers.py:553
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:448 templates/js/translated/order.js:1354
+#: order/serializers.py:465 templates/js/translated/order.js:1497
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:456 templates/js/translated/order.js:1365
+#: order/serializers.py:473 templates/js/translated/order.js:1508
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:469
+#: order/serializers.py:486
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:470
+#: order/serializers.py:487
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:484
+#: order/serializers.py:501
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:507
+#: order/serializers.py:527
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:549
+#: order/serializers.py:569
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:566
+#: order/serializers.py:586
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:577
+#: order/serializers.py:597
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:883
+#: order/serializers.py:903
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:964
+#: order/serializers.py:984
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1027 order/serializers.py:1147
+#: order/serializers.py:1047 order/serializers.py:1201
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1049
+#: order/serializers.py:1069
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1160
+#: order/serializers.py:1214
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1182 order/serializers.py:1302
+#: order/serializers.py:1236 order/serializers.py:1356
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1185 order/serializers.py:1305
+#: order/serializers.py:1239 order/serializers.py:1359
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1235
+#: order/serializers.py:1289
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1245
+#: order/serializers.py:1299
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3993,83 +4021,83 @@ msgstr ""
msgid "Order actions"
msgstr ""
-#: order/templates/order/order_base.html:45
+#: order/templates/order/order_base.html:46
#: order/templates/order/sales_order_base.html:58
msgid "Edit order"
msgstr ""
-#: order/templates/order/order_base.html:47
+#: order/templates/order/order_base.html:50
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr ""
-#: order/templates/order/order_base.html:50
+#: order/templates/order/order_base.html:55
msgid "Duplicate order"
msgstr ""
-#: order/templates/order/order_base.html:55
+#: order/templates/order/order_base.html:61
msgid "Place order"
msgstr ""
-#: order/templates/order/order_base.html:59
+#: order/templates/order/order_base.html:65
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:61
+#: order/templates/order/order_base.html:67
#: order/templates/order/purchase_order_detail.html:30
msgid "Receive Items"
msgstr ""
-#: order/templates/order/order_base.html:63
+#: order/templates/order/order_base.html:69
msgid "Mark order as complete"
msgstr ""
-#: order/templates/order/order_base.html:65
+#: order/templates/order/order_base.html:71
#: order/templates/order/sales_order_base.html:68
msgid "Complete Order"
msgstr ""
-#: order/templates/order/order_base.html:87
+#: order/templates/order/order_base.html:93
#: order/templates/order/sales_order_base.html:80
msgid "Order Reference"
msgstr ""
-#: order/templates/order/order_base.html:92
+#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:85
msgid "Order Description"
msgstr ""
-#: order/templates/order/order_base.html:97
+#: order/templates/order/order_base.html:103
#: order/templates/order/sales_order_base.html:90
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:120
+#: order/templates/order/order_base.html:126
msgid "No suppplier information available"
msgstr ""
-#: order/templates/order/order_base.html:133
+#: order/templates/order/order_base.html:139
#: order/templates/order/sales_order_base.html:129
msgid "Completed Line Items"
msgstr ""
-#: order/templates/order/order_base.html:139
+#: order/templates/order/order_base.html:145
#: order/templates/order/sales_order_base.html:135
#: order/templates/order/sales_order_base.html:145
msgid "Incomplete"
msgstr ""
-#: order/templates/order/order_base.html:158
+#: order/templates/order/order_base.html:164
#: report/templates/report/inventree_build_order_base.html:121
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:186
+#: order/templates/order/order_base.html:192
#: order/templates/order/sales_order_base.html:190
msgid "Total cost"
msgstr ""
-#: order/templates/order/order_base.html:190
+#: order/templates/order/order_base.html:196
#: order/templates/order/sales_order_base.html:194
msgid "Total cost could not be calculated"
msgstr ""
@@ -4102,8 +4130,8 @@ msgstr ""
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463
#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015
-#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443
-#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625
+#: templates/js/translated/order.js:1084 templates/js/translated/order.js:1586
+#: templates/js/translated/order.js:3097 templates/js/translated/stock.js:625
#: templates/js/translated/stock.js:793
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
@@ -4139,7 +4167,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:26
#: order/templates/order/sales_order_detail.html:22
#: order/templates/order/sales_order_detail.html:255
-#: templates/js/translated/order.js:663
+#: templates/js/translated/order.js:728
msgid "Add Line Item"
msgstr ""
@@ -4167,7 +4195,7 @@ msgstr ""
msgid "Order Notes"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:228
+#: order/templates/order/purchase_order_detail.html:232
msgid "Add Order Line"
msgstr ""
@@ -4185,12 +4213,12 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:231
+#: templates/js/translated/order.js:232
msgid "Complete Shipments"
msgstr ""
#: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:258
+#: templates/js/translated/order.js:397
msgid "Complete Sales Order"
msgstr ""
@@ -4199,7 +4227,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2632
+#: templates/js/translated/order.js:2826
msgid "Customer Reference"
msgstr ""
@@ -4223,7 +4251,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:72
-#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1116
#: templates/js/translated/build.js:1923
msgid "Actions"
msgstr ""
@@ -4308,14 +4336,14 @@ msgid "Total Stock"
msgstr ""
#: part/bom.py:129 part/templates/part/part_base.html:189
-#: templates/js/translated/order.js:3724
+#: templates/js/translated/order.js:3918
msgid "Available Stock"
msgstr ""
#: part/bom.py:130 part/templates/part/part_base.html:207
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853
-#: templates/js/translated/part.js:590 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503
+#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1853
+#: templates/js/translated/part.js:588 templates/js/translated/part.js:608
+#: templates/js/translated/part.js:1337 templates/js/translated/part.js:1520
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr ""
@@ -4344,7 +4372,7 @@ msgstr ""
msgid "Icon (optional)"
msgstr ""
-#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16
+#: part/models.py:122 part/models.py:2516 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -4361,7 +4389,7 @@ msgstr ""
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146
+#: templates/js/translated/part.js:2004 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr "パーツ"
@@ -4391,7 +4419,7 @@ msgstr ""
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:745 part/models.py:2562
+#: part/models.py:745 part/models.py:2570
msgid "Part name"
msgstr ""
@@ -4424,11 +4452,11 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:783 part/models.py:2257 part/models.py:2507
+#: part/models.py:783 part/models.py:2265 part/models.py:2515
#: part/templates/part/part_base.html:257
#: templates/InvenTree/settings/settings.html:232
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688
+#: templates/js/translated/part.js:1477 templates/js/translated/part.js:1717
msgid "Category"
msgstr "カテゴリ"
@@ -4437,7 +4465,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:789 part/templates/part/part_base.html:266
-#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:1430
#: templates/js/translated/stock.js:1726
msgid "IPN"
msgstr ""
@@ -4451,7 +4479,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:797 part/templates/part/part_base.html:273
-#: report/models.py:171 templates/js/translated/part.js:743
+#: report/models.py:171 templates/js/translated/part.js:741
msgid "Revision"
msgstr ""
@@ -4543,245 +4571,245 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2304
+#: part/models.py:2312
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2321
+#: part/models.py:2329
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2341 templates/js/translated/part.js:2026
+#: part/models.py:2349 templates/js/translated/part.js:2055
#: templates/js/translated/stock.js:1340
msgid "Test Name"
msgstr ""
-#: part/models.py:2342
+#: part/models.py:2350
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2347
+#: part/models.py:2355
msgid "Test Description"
msgstr ""
-#: part/models.py:2348
+#: part/models.py:2356
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2353 templates/js/translated/part.js:2035
+#: part/models.py:2361 templates/js/translated/part.js:2064
#: templates/js/translated/table_filters.js:302
msgid "Required"
msgstr ""
-#: part/models.py:2354
+#: part/models.py:2362
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2359 templates/js/translated/part.js:2043
+#: part/models.py:2367 templates/js/translated/part.js:2072
msgid "Requires Value"
msgstr ""
-#: part/models.py:2360
+#: part/models.py:2368
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2365 templates/js/translated/part.js:2050
+#: part/models.py:2373 templates/js/translated/part.js:2079
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2366
+#: part/models.py:2374
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2374
+#: part/models.py:2382
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2410
+#: part/models.py:2418
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2418
+#: part/models.py:2426
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2433
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2430
+#: part/models.py:2438
msgid "Parameter description"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2471
msgid "Parent Part"
msgstr ""
-#: part/models.py:2465 part/models.py:2513 part/models.py:2514
+#: part/models.py:2473 part/models.py:2521 part/models.py:2522
#: templates/InvenTree/settings/settings.html:227
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Data"
msgstr ""
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2518 templates/InvenTree/settings/settings.html:236
+#: part/models.py:2526 templates/InvenTree/settings/settings.html:236
msgid "Default Value"
msgstr ""
-#: part/models.py:2519
+#: part/models.py:2527
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2554
+#: part/models.py:2562
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2557 templates/js/translated/model_renderers.js:212
+#: part/models.py:2565 templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr ""
-#: part/models.py:2558
+#: part/models.py:2566
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2561
+#: part/models.py:2569
msgid "Part Name"
msgstr ""
-#: part/models.py:2565
+#: part/models.py:2573
msgid "Part IPN"
msgstr ""
-#: part/models.py:2566
+#: part/models.py:2574
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2569
+#: part/models.py:2577
msgid "Level"
msgstr ""
-#: part/models.py:2570
+#: part/models.py:2578
msgid "BOM level"
msgstr ""
-#: part/models.py:2639
+#: part/models.py:2647
msgid "Select parent part"
msgstr ""
-#: part/models.py:2647
+#: part/models.py:2655
msgid "Sub part"
msgstr ""
-#: part/models.py:2648
+#: part/models.py:2656
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2654
+#: part/models.py:2662
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2656 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997
+#: part/models.py:2664 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:876 templates/js/translated/bom.js:1005
#: templates/js/translated/table_filters.js:100
msgid "Optional"
msgstr ""
-#: part/models.py:2656
+#: part/models.py:2664
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2659 part/templates/part/upload_bom.html:55
+#: part/models.py:2667 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2660
+#: part/models.py:2668
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2671
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2666
+#: part/models.py:2674
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "Checksum"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2672 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1014
+#: part/models.py:2680 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:1022
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:96
msgid "Inherited"
msgstr ""
-#: part/models.py:2673
+#: part/models.py:2681
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2678 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1006
+#: part/models.py:2686 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:1014
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2679
+#: part/models.py:2687
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2757 stock/models.py:468
+#: part/models.py:2765 stock/models.py:468
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2766 part/models.py:2768
+#: part/models.py:2774 part/models.py:2776
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2873
+#: part/models.py:2881
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2902
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2915
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2923
msgid "Substitute part"
msgstr ""
-#: part/models.py:2930
+#: part/models.py:2938
msgid "Part 1"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Part 2"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2960
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:2956
+#: part/models.py:2964
msgid "Duplicate relationship already exists"
msgstr ""
@@ -5309,10 +5337,10 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:624
-#: templates/js/translated/company.js:884
+#: templates/js/translated/company.js:659
+#: templates/js/translated/company.js:920
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:654 templates/js/translated/part.js:731
+#: templates/js/translated/part.js:652 templates/js/translated/part.js:729
msgid "Inactive"
msgstr ""
@@ -5327,28 +5355,28 @@ msgid "This part is a variant of %(link)s"
msgstr ""
#: part/templates/part/part_base.html:194
-#: templates/js/translated/company.js:974
+#: templates/js/translated/company.js:1027
#: templates/js/translated/table_filters.js:201
msgid "In Stock"
msgstr ""
#: part/templates/part/part_base.html:215
-#: stock/templates/stock/item_base.html:379
+#: stock/templates/stock/item_base.html:382
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:224
-#: stock/templates/stock/item_base.html:372
+#: stock/templates/stock/item_base.html:375
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1043
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320
-#: templates/js/translated/part.js:1510
+#: part/templates/part/part_base.html:238 templates/js/translated/part.js:591
+#: templates/js/translated/part.js:611 templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1527
msgid "Building"
msgstr ""
@@ -5361,7 +5389,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:328
+#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
@@ -5400,7 +5428,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:989
+#: templates/js/translated/bom.js:997
msgid "No supplier pricing available"
msgstr ""
@@ -5439,7 +5467,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:53
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468
+#: templates/js/translated/order.js:2001 templates/js/translated/stock.js:2464
msgid "Date"
msgstr ""
@@ -5495,7 +5523,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983
+#: part/templates/part/prices.html:160 templates/js/translated/bom.js:991
msgid "Supplier Cost"
msgstr ""
@@ -5533,8 +5561,8 @@ msgstr ""
msgid "No sale pice history available for this part."
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616
-#: templates/js/translated/part.js:1308
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:614
+#: templates/js/translated/part.js:1329 templates/js/translated/part.js:1331
msgid "No Stock"
msgstr "在庫切れ"
@@ -5735,19 +5763,19 @@ msgstr ""
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:186
+#: plugin/models.py:188
msgid "Plugin"
msgstr ""
-#: plugin/models.py:249
+#: plugin/models.py:253
msgid "Method"
msgstr ""
-#: plugin/plugin.py:251
+#: plugin/plugin.py:252
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:263
+#: plugin/plugin.py:264
msgid "No date found"
msgstr ""
@@ -5925,12 +5953,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:648 stock/templates/stock/item_base.html:317
+#: stock/models.py:648 stock/templates/stock/item_base.html:320
#: templates/js/translated/build.js:456 templates/js/translated/build.js:608
#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706
#: templates/js/translated/model_renderers.js:118
-#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403
-#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490
+#: templates/js/translated/order.js:121 templates/js/translated/order.js:3597
+#: templates/js/translated/order.js:3684 templates/js/translated/stock.js:490
msgid "Serial Number"
msgstr ""
@@ -5963,7 +5991,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780
-#: templates/js/translated/stock.js:2717
+#: templates/js/translated/stock.js:2713
msgid "Serial"
msgstr ""
@@ -5980,7 +6008,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
#: stock/models.py:89 stock/models.py:739
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:250
msgid "Owner"
msgstr ""
@@ -6046,7 +6074,7 @@ msgstr ""
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:631 stock/templates/stock/item_base.html:356
+#: stock/models.py:631 stock/templates/stock/item_base.html:359
msgid "Installed In"
msgstr ""
@@ -6086,8 +6114,8 @@ msgstr ""
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:706 stock/templates/stock/item_base.html:424
-#: templates/js/translated/stock.js:1883
+#: stock/models.py:706 stock/templates/stock/item_base.html:427
+#: templates/js/translated/stock.js:1879
msgid "Expiry Date"
msgstr ""
@@ -6379,7 +6407,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2857
msgid "Install Stock Item"
msgstr ""
@@ -6479,134 +6507,135 @@ msgstr ""
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:158
+#: stock/templates/stock/item_base.html:161
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:193
+#: stock/templates/stock/item_base.html:196
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:214
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:254
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/location.html:132
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:268
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:266
+#: stock/templates/stock/item_base.html:269
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:279
+#: stock/templates/stock/item_base.html:282
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:290
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:298
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:301
+#: stock/templates/stock/item_base.html:304
msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
msgstr ""
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:345
+#: stock/templates/stock/item_base.html:348
msgid "Available Quantity"
msgstr ""
-#: stock/templates/stock/item_base.html:389
+#: stock/templates/stock/item_base.html:392
#: templates/js/translated/build.js:1729
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:404
+#: stock/templates/stock/item_base.html:407
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#: templates/js/translated/table_filters.js:269
msgid "Expired"
msgstr "期限切れ"
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:275
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:437
-#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899
+#: stock/templates/stock/item_base.html:440
+#: templates/js/translated/company.js:1038
+#: templates/js/translated/stock.js:1895
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:442
+#: stock/templates/stock/item_base.html:445
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:516
+#: stock/templates/stock/item_base.html:519
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:589
+#: stock/templates/stock/item_base.html:592
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:592
+#: stock/templates/stock/item_base.html:595
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:593
+#: stock/templates/stock/item_base.html:596
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:601
+#: stock/templates/stock/item_base.html:604
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:629
+#: stock/templates/stock/item_base.html:632
msgid "Return to Stock"
msgstr ""
@@ -6739,11 +6768,11 @@ msgstr ""
msgid "Refer to the error log in the admin interface for further details"
msgstr ""
-#: templates/503.html:11 templates/503.html:36
+#: templates/503.html:11 templates/503.html:34
msgid "Site is in Maintenance"
msgstr ""
-#: templates/503.html:42
+#: templates/503.html:40
msgid "The site is currently in maintenance and should be up again soon!"
msgstr ""
@@ -7509,7 +7538,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:644
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "確認"
@@ -7728,7 +7757,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1481
+#: templates/js/translated/bom.js:1489
msgid "Required Quantity"
msgstr ""
@@ -7742,7 +7771,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2522
+#: templates/js/translated/part.js:2551
msgid "Minimum Quantity"
msgstr ""
@@ -7947,7 +7976,7 @@ msgstr ""
#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620
#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601
#: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003
-#: templates/js/translated/order.js:1085 templates/modals.html:15
+#: templates/js/translated/order.js:1179 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -7957,12 +7986,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145
+#: templates/js/translated/order.js:960 templates/js/translated/tables.js:145
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:867
+#: templates/js/translated/order.js:961
msgid "Select file format"
msgstr ""
@@ -8058,73 +8087,73 @@ msgstr ""
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857
-#: templates/js/translated/order.js:3738
+#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1857
+#: templates/js/translated/order.js:3932
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861
+#: templates/js/translated/bom.js:940 templates/js/translated/build.js:1861
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516
+#: templates/js/translated/bom.js:942 templates/js/translated/build.js:1863
+#: templates/js/translated/part.js:761 templates/js/translated/part.js:1533
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865
+#: templates/js/translated/bom.js:944 templates/js/translated/build.js:1865
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:954
+#: templates/js/translated/bom.js:962
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:969
+#: templates/js/translated/bom.js:977
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:976
+#: templates/js/translated/bom.js:984
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145
+#: templates/js/translated/bom.js:1033 templates/js/translated/bom.js:1153
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1052
+#: templates/js/translated/bom.js:1060
msgid "Including On Order"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1124
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1118
+#: templates/js/translated/bom.js:1126
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1120
+#: templates/js/translated/bom.js:1128
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284
+#: templates/js/translated/bom.js:1130 templates/js/translated/bom.js:1292
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1124
+#: templates/js/translated/bom.js:1132
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650
+#: templates/js/translated/bom.js:1228 templates/js/translated/build.js:1650
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789
+#: templates/js/translated/bom.js:1472 templates/js/translated/build.js:1789
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1486
+#: templates/js/translated/bom.js:1498
msgid "Inherited from parent BOM"
msgstr ""
@@ -8267,12 +8296,12 @@ msgid "No required tests for this build"
msgstr ""
#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697
-#: templates/js/translated/order.js:3438
+#: templates/js/translated/order.js:3632
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698
-#: templates/js/translated/order.js:3439
+#: templates/js/translated/order.js:3633
msgid "Delete stock allocation"
msgstr ""
@@ -8292,20 +8321,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745
+#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3939
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743
+#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3937
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127
-#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757
+#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3951
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837
+#: templates/js/translated/build.js:1930 templates/js/translated/order.js:4031
msgid "Build stock"
msgstr ""
@@ -8313,21 +8342,21 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830
+#: templates/js/translated/build.js:1937 templates/js/translated/order.js:4024
msgid "Allocate stock"
msgstr ""
#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965
+#: templates/js/translated/order.js:1007 templates/js/translated/order.js:3159
#: templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966
+#: templates/js/translated/build.js:1977 templates/js/translated/order.js:3160
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914
+#: templates/js/translated/build.js:2026 templates/js/translated/order.js:3108
msgid "Specify stock allocation quantity"
msgstr ""
@@ -8339,7 +8368,7 @@ msgstr ""
msgid "All selected parts have been fully allocated"
msgstr ""
-#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980
+#: templates/js/translated/build.js:2115 templates/js/translated/order.js:3174
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
@@ -8347,11 +8376,11 @@ msgstr ""
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077
+#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3271
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154
+#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3348
msgid "No matching stock items"
msgstr ""
@@ -8383,9 +8412,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401
-#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1422
+#: templates/js/translated/part.js:1948 templates/js/translated/stock.js:1686
+#: templates/js/translated/stock.js:2382
msgid "Select"
msgstr ""
@@ -8397,7 +8426,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647
+#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2643
msgid "No user information"
msgstr ""
@@ -8405,111 +8434,115 @@ msgstr ""
msgid "No parts allocated for"
msgstr ""
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:179
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:181
msgid "Add Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
msgid "Edit Manufacturer Part"
msgstr "メーカー・パーツの編集"
-#: templates/js/translated/company.js:167 templates/js/translated/order.js:511
+#: templates/js/translated/company.js:169 templates/js/translated/order.js:576
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:195 templates/js/translated/order.js:734
+#: templates/js/translated/company.js:197 templates/js/translated/order.js:828
msgid "Add Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:262
+#: templates/js/translated/company.js:297
msgid "All selected supplier parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:278
+#: templates/js/translated/company.js:313
msgid "Delete Supplier Parts"
msgstr ""
-#: templates/js/translated/company.js:350
+#: templates/js/translated/company.js:385
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:427
+#: templates/js/translated/company.js:462
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:471
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:451
+#: templates/js/translated/company.js:486
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:492
+#: templates/js/translated/company.js:527
msgid "All selected manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:507
+#: templates/js/translated/company.js:542
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:541
+#: templates/js/translated/company.js:576
msgid "All selected parameters will be deleted"
msgstr ""
-#: templates/js/translated/company.js:555
+#: templates/js/translated/company.js:590
msgid "Delete Parameters"
msgstr ""
-#: templates/js/translated/company.js:596
+#: templates/js/translated/company.js:631
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:616
-#: templates/js/translated/company.js:876 templates/js/translated/part.js:638
-#: templates/js/translated/part.js:723
+#: templates/js/translated/company.js:651
+#: templates/js/translated/company.js:912 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:721
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:620
-#: templates/js/translated/company.js:880 templates/js/translated/part.js:642
-#: templates/js/translated/part.js:727
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:916 templates/js/translated/part.js:640
+#: templates/js/translated/part.js:725
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:748 templates/js/translated/part.js:830
+#: templates/js/translated/company.js:783 templates/js/translated/part.js:828
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:785 templates/js/translated/part.js:872
+#: templates/js/translated/company.js:820 templates/js/translated/part.js:870
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:786 templates/js/translated/part.js:873
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:871
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:805 templates/js/translated/part.js:890
+#: templates/js/translated/company.js:840 templates/js/translated/part.js:888
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:816 templates/js/translated/part.js:902
+#: templates/js/translated/company.js:851 templates/js/translated/part.js:900
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:856
+#: templates/js/translated/company.js:891
msgid "No supplier parts found"
msgstr ""
-#: templates/js/translated/company.js:1002
+#: templates/js/translated/company.js:1032
+msgid "Availability"
+msgstr ""
+
+#: templates/js/translated/company.js:1055
msgid "Edit supplier part"
msgstr ""
-#: templates/js/translated/company.js:1003
+#: templates/js/translated/company.js:1056
msgid "Delete supplier part"
msgstr ""
@@ -8547,61 +8580,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:367 templates/js/translated/forms.js:382
-#: templates/js/translated/forms.js:396 templates/js/translated/forms.js:410
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:369
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:384
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:398
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:670
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:771
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1269 templates/modals.html:19
+#: templates/js/translated/forms.js:1274 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1702
+#: templates/js/translated/forms.js:1707
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1917 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2170
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2648
+#: templates/js/translated/forms.js:2653
msgid "Select Columns"
msgstr ""
@@ -8792,409 +8825,422 @@ msgstr ""
msgid "Notifications will load here"
msgstr ""
-#: templates/js/translated/order.js:96
+#: templates/js/translated/order.js:97
msgid "No stock items have been allocated to this shipment"
msgstr ""
-#: templates/js/translated/order.js:101
+#: templates/js/translated/order.js:102
msgid "The following stock items will be shipped"
msgstr ""
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:142
msgid "Complete Shipment"
msgstr ""
-#: templates/js/translated/order.js:161
+#: templates/js/translated/order.js:162
msgid "Confirm Shipment"
msgstr ""
-#: templates/js/translated/order.js:217
+#: templates/js/translated/order.js:218
msgid "No pending shipments found"
msgstr ""
-#: templates/js/translated/order.js:221
+#: templates/js/translated/order.js:222
msgid "No stock items have been allocated to pending shipments"
msgstr ""
-#: templates/js/translated/order.js:253
+#: templates/js/translated/order.js:254
msgid "Skip"
msgstr ""
-#: templates/js/translated/order.js:283
+#: templates/js/translated/order.js:284
msgid "Complete Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:289
+#: templates/js/translated/order.js:301 templates/js/translated/order.js:413
msgid "Mark this order as complete?"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:307
msgid "All line items have been received"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:312
msgid "This order has line items which have not been marked as received."
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:313 templates/js/translated/order.js:427
msgid "Completing this order means that the order and line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:324
+#: templates/js/translated/order.js:336
msgid "Cancel Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:329
+#: templates/js/translated/order.js:341
msgid "Are you sure you wish to cancel this purchase order?"
msgstr ""
-#: templates/js/translated/order.js:335
+#: templates/js/translated/order.js:347
msgid "This purchase order can not be cancelled"
msgstr ""
-#: templates/js/translated/order.js:358
+#: templates/js/translated/order.js:370
msgid "Issue Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:363
+#: templates/js/translated/order.js:375
msgid "After placing this purchase order, line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:385
+#: templates/js/translated/order.js:426
+msgid "This order has line items which have not been completed."
+msgstr ""
+
+#: templates/js/translated/order.js:450
msgid "Cancel Sales Order"
msgstr ""
-#: templates/js/translated/order.js:390
+#: templates/js/translated/order.js:455
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:444
+#: templates/js/translated/order.js:509
msgid "Create New Shipment"
msgstr ""
-#: templates/js/translated/order.js:469
+#: templates/js/translated/order.js:534
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:494
+#: templates/js/translated/order.js:559
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:555
+#: templates/js/translated/order.js:620
msgid "Select purchase order to duplicate"
msgstr ""
-#: templates/js/translated/order.js:562
+#: templates/js/translated/order.js:627
msgid "Duplicate Line Items"
msgstr ""
-#: templates/js/translated/order.js:563
+#: templates/js/translated/order.js:628
msgid "Duplicate all line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:570
+#: templates/js/translated/order.js:635
msgid "Duplicate Extra Lines"
msgstr ""
-#: templates/js/translated/order.js:571
+#: templates/js/translated/order.js:636
msgid "Duplicate extra line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:588
+#: templates/js/translated/order.js:653
msgid "Edit Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:605
+#: templates/js/translated/order.js:670
msgid "Duplication Options"
msgstr ""
-#: templates/js/translated/order.js:863
+#: templates/js/translated/order.js:957
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:914
+#: templates/js/translated/order.js:1008
msgid "At least one purchaseable part must be selected"
msgstr ""
-#: templates/js/translated/order.js:939
+#: templates/js/translated/order.js:1033
msgid "Quantity to order"
msgstr ""
-#: templates/js/translated/order.js:948
+#: templates/js/translated/order.js:1042
msgid "New supplier part"
msgstr ""
-#: templates/js/translated/order.js:966
+#: templates/js/translated/order.js:1060
msgid "New purchase order"
msgstr ""
-#: templates/js/translated/order.js:999
+#: templates/js/translated/order.js:1093
msgid "Add to purchase order"
msgstr ""
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1233
msgid "No matching supplier parts"
msgstr ""
-#: templates/js/translated/order.js:1123
+#: templates/js/translated/order.js:1252
msgid "No matching purchase orders"
msgstr ""
-#: templates/js/translated/order.js:1300
+#: templates/js/translated/order.js:1429
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1430
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420
+#: templates/js/translated/order.js:1450 templates/js/translated/order.js:1563
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431
+#: templates/js/translated/order.js:1456 templates/js/translated/order.js:1574
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1339
+#: templates/js/translated/order.js:1471
+msgid "Received Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:1482
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144
+#: templates/js/translated/order.js:1546 templates/js/translated/stock.js:2140
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:1494
+#: templates/js/translated/order.js:1639
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:1495
+#: templates/js/translated/order.js:1640
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:1497
+#: templates/js/translated/order.js:1642
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:1516
+#: templates/js/translated/order.js:1661
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:1517
+#: templates/js/translated/order.js:1662
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943
+#: templates/js/translated/order.js:1940 templates/js/translated/part.js:941
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2803
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674
-#: templates/js/translated/order.js:2815
+#: templates/js/translated/order.js:2017 templates/js/translated/order.js:2868
+#: templates/js/translated/order.js:3009
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889
+#: templates/js/translated/order.js:2115 templates/js/translated/order.js:4083
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911
+#: templates/js/translated/order.js:2132 templates/js/translated/order.js:4105
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:4116
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:2026
+#: templates/js/translated/order.js:2188
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:2215 templates/js/translated/order.js:3817
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309
-#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156
-#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753
+#: templates/js/translated/order.js:2270 templates/js/translated/part.js:1043
+#: templates/js/translated/part.js:1095
+msgid "Total Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:2301 templates/js/translated/order.js:2503
+#: templates/js/translated/order.js:3842 templates/js/translated/order.js:4350
+#: templates/js/translated/part.js:2184 templates/js/translated/part.js:2782
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325
-#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172
+#: templates/js/translated/order.js:2316 templates/js/translated/order.js:2519
+#: templates/js/translated/order.js:3858 templates/js/translated/order.js:4366
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706
-#: templates/js/translated/part.js:1070
+#: templates/js/translated/order.js:2357 templates/js/translated/order.js:3900
+#: templates/js/translated/part.js:1079
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110
+#: templates/js/translated/order.js:2416 templates/js/translated/part.js:1130
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2420 templates/js/translated/order.js:4037
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844
+#: templates/js/translated/order.js:2421 templates/js/translated/order.js:4038
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848
+#: templates/js/translated/order.js:2422 templates/js/translated/order.js:4042
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221
+#: templates/js/translated/order.js:2568 templates/js/translated/order.js:4415
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222
+#: templates/js/translated/order.js:2569 templates/js/translated/order.js:4416
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223
+#: templates/js/translated/order.js:2570 templates/js/translated/order.js:4417
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253
+#: templates/js/translated/order.js:2600 templates/js/translated/order.js:4447
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274
+#: templates/js/translated/order.js:2621 templates/js/translated/order.js:4468
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285
+#: templates/js/translated/order.js:2632 templates/js/translated/order.js:4479
msgid "Delete Line"
msgstr ""
-#: templates/js/translated/order.js:2449
+#: templates/js/translated/order.js:2643
msgid "No matching line"
msgstr ""
-#: templates/js/translated/order.js:2560
+#: templates/js/translated/order.js:2754
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:2623
+#: templates/js/translated/order.js:2817
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:2721
+#: templates/js/translated/order.js:2915
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:2724
+#: templates/js/translated/order.js:2918
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:2729
+#: templates/js/translated/order.js:2923
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:2749
+#: templates/js/translated/order.js:2943
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:2766
+#: templates/js/translated/order.js:2960
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:2800
+#: templates/js/translated/order.js:2994
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:2810
+#: templates/js/translated/order.js:3004
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:2834
+#: templates/js/translated/order.js:3028
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:2840
+#: templates/js/translated/order.js:3034
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:2844
+#: templates/js/translated/order.js:3038
msgid "Invoice"
msgstr ""
-#: templates/js/translated/order.js:3013
+#: templates/js/translated/order.js:3207
msgid "Add Shipment"
msgstr ""
-#: templates/js/translated/order.js:3064
+#: templates/js/translated/order.js:3258
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/order.js:3065
+#: templates/js/translated/order.js:3259
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:3273
+#: templates/js/translated/order.js:3467
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:3352
+#: templates/js/translated/order.js:3546
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3369
+#: templates/js/translated/order.js:3563
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:3370
+#: templates/js/translated/order.js:3564
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504
+#: templates/js/translated/order.js:3609 templates/js/translated/order.js:3698
#: templates/js/translated/stock.js:1602
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513
+#: templates/js/translated/order.js:3617 templates/js/translated/order.js:3707
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3827
+#: templates/js/translated/order.js:4021
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3833
+#: templates/js/translated/order.js:4027
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038
+#: templates/js/translated/order.js:4034 templates/js/translated/order.js:4232
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3852
+#: templates/js/translated/order.js:4046
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3855
+#: templates/js/translated/order.js:4049
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3937
+#: templates/js/translated/order.js:4131
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:4046
+#: templates/js/translated/order.js:4240
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:4060
+#: templates/js/translated/order.js:4254
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4296
+#: templates/js/translated/order.js:4490
msgid "No matching lines"
msgstr ""
@@ -9374,173 +9420,177 @@ msgstr ""
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498
+#: templates/js/translated/part.js:584 templates/js/translated/part.js:1515
#: templates/js/translated/table_filters.js:468
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:596
+#: templates/js/translated/part.js:594
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:715
+#: templates/js/translated/part.js:628 templates/js/translated/part.js:713
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:634 templates/js/translated/part.js:719
+#: templates/js/translated/part.js:632 templates/js/translated/part.js:717
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:646
+#: templates/js/translated/part.js:644
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:650
+#: templates/js/translated/part.js:648
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:778
+#: templates/js/translated/part.js:776
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1180
+#: templates/js/translated/part.js:1200
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1204
+#: templates/js/translated/part.js:1224
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573
+#: templates/js/translated/part.js:1291 templates/js/translated/part.js:1602
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1310
-msgid "Not available"
-msgstr ""
-
-#: templates/js/translated/part.js:1461
+#: templates/js/translated/part.js:1482
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1496
+#: templates/js/translated/part.js:1513
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840
-#: templates/js/translated/stock.js:2347
+#: templates/js/translated/part.js:1537
+msgid "Allocated to build orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1541
+msgid "Allocated to sales orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1626 templates/js/translated/part.js:1869
+#: templates/js/translated/stock.js:2343
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1613
+#: templates/js/translated/part.js:1642
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1679
+#: templates/js/translated/part.js:1708
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1684
+#: templates/js/translated/part.js:1713
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:1689
+#: templates/js/translated/part.js:1718
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1702
+#: templates/js/translated/part.js:1731
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366
+#: templates/js/translated/part.js:1888 templates/js/translated/stock.js:2362
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1938
+#: templates/js/translated/part.js:1967
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:1954
+#: templates/js/translated/part.js:1983
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2012
+#: templates/js/translated/part.js:2041
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299
+#: templates/js/translated/part.js:2092 templates/js/translated/stock.js:1299
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300
+#: templates/js/translated/part.js:2093 templates/js/translated/stock.js:1300
#: templates/js/translated/stock.js:1560
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2070
+#: templates/js/translated/part.js:2099
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2092
+#: templates/js/translated/part.js:2121
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2106
+#: templates/js/translated/part.js:2135
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2131
+#: templates/js/translated/part.js:2160
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:2188
+#: templates/js/translated/part.js:2217
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2189
+#: templates/js/translated/part.js:2218
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355
+#: templates/js/translated/part.js:2383 templates/js/translated/part.js:2384
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2357
+#: templates/js/translated/part.js:2386
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2363
+#: templates/js/translated/part.js:2392
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2413
+#: templates/js/translated/part.js:2442
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2419
+#: templates/js/translated/part.js:2448
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2515
+#: templates/js/translated/part.js:2544
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2531
+#: templates/js/translated/part.js:2560
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2576
+#: templates/js/translated/part.js:2605
msgid "Minimum Stock Level"
msgstr ""
-#: templates/js/translated/part.js:2677
+#: templates/js/translated/part.js:2706
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:2696
+#: templates/js/translated/part.js:2725
msgid "Single Price Difference"
msgstr ""
@@ -9778,7 +9828,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:942 users/models.py:216
+#: templates/js/translated/stock.js:942 users/models.py:218
msgid "Add"
msgstr ""
@@ -9854,156 +9904,156 @@ msgstr ""
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1775
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1780
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1787
+#: templates/js/translated/stock.js:1783
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1790
+#: templates/js/translated/stock.js:1786
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1792
+#: templates/js/translated/stock.js:1788
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1794
+#: templates/js/translated/stock.js:1790
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1797
+#: templates/js/translated/stock.js:1793
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1797
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1803
+#: templates/js/translated/stock.js:1799
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1810
+#: templates/js/translated/stock.js:1806
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:1808
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1814
+#: templates/js/translated/stock.js:1810
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1818
+#: templates/js/translated/stock.js:1814
#: templates/js/translated/table_filters.js:196
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1869
+#: templates/js/translated/stock.js:1865
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1948
+#: templates/js/translated/stock.js:1944
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1986
+#: templates/js/translated/stock.js:1982
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2159
+#: templates/js/translated/stock.js:2155
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2173
+#: templates/js/translated/stock.js:2169
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2174
+#: templates/js/translated/stock.js:2170
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2404
+#: templates/js/translated/stock.js:2400
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2493
+#: templates/js/translated/stock.js:2489
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2509
+#: templates/js/translated/stock.js:2505
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2531
+#: templates/js/translated/stock.js:2527
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2550
+#: templates/js/translated/stock.js:2546
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2569
+#: templates/js/translated/stock.js:2565
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2587
+#: templates/js/translated/stock.js:2583
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2610
+#: templates/js/translated/stock.js:2606
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2618
+#: templates/js/translated/stock.js:2614
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2694
+#: templates/js/translated/stock.js:2690
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781
+#: templates/js/translated/stock.js:2741 templates/js/translated/stock.js:2777
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2790
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2815
+#: templates/js/translated/stock.js:2811
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2816
+#: templates/js/translated/stock.js:2812
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2818
+#: templates/js/translated/stock.js:2814
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2819
+#: templates/js/translated/stock.js:2815
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2820
+#: templates/js/translated/stock.js:2816
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2821
+#: templates/js/translated/stock.js:2817
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2834
+#: templates/js/translated/stock.js:2830
msgid "Select part to install"
msgstr ""
@@ -10525,35 +10575,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:203
+#: users/models.py:205
msgid "Permission set"
msgstr ""
-#: users/models.py:211
+#: users/models.py:213
msgid "Group"
msgstr ""
-#: users/models.py:214
+#: users/models.py:216
msgid "View"
msgstr ""
-#: users/models.py:214
+#: users/models.py:216
msgid "Permission to view items"
msgstr ""
-#: users/models.py:216
+#: users/models.py:218
msgid "Permission to add items"
msgstr ""
-#: users/models.py:218
+#: users/models.py:220
msgid "Change"
msgstr ""
-#: users/models.py:218
+#: users/models.py:220
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:222
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/ko/LC_MESSAGES/django.po b/InvenTree/locale/ko/LC_MESSAGES/django.po
index 68b056c5fb..08a8cce44e 100644
--- a/InvenTree/locale/ko/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ko/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-08-25 10:08+0000\n"
-"PO-Revision-Date: 2022-08-26 01:55\n"
+"POT-Creation-Date: 2022-09-09 02:44+0000\n"
+"PO-Revision-Date: 2022-09-09 03:57\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
"Language: ko_KR\n"
@@ -29,9 +29,9 @@ msgstr ""
msgid "Enter date"
msgstr ""
-#: InvenTree/fields.py:186 build/serializers.py:384
-#: build/templates/build/sidebar.html:21 company/models.py:523
-#: company/templates/company/sidebar.html:25 order/models.py:906
+#: InvenTree/fields.py:183 build/serializers.py:384
+#: build/templates/build/sidebar.html:21 company/models.py:524
+#: company/templates/company/sidebar.html:25 order/models.py:910
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17
#: part/templates/part/part_sidebar.html:59
@@ -40,11 +40,12 @@ msgstr ""
#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823
#: stock/serializers.py:922 stock/serializers.py:1054
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099
-#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210
-#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859
-#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208
-#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1107
+#: templates/js/translated/company.js:1022
+#: templates/js/translated/order.js:2404 templates/js/translated/order.js:2555
+#: templates/js/translated/order.js:3053 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:4402 templates/js/translated/stock.js:1374
+#: templates/js/translated/stock.js:1976
msgid "Notes"
msgstr ""
@@ -210,12 +211,12 @@ msgid "Select file to attach"
msgstr "첨부할 파일을 선택하세요"
#: InvenTree/models.py:402 company/models.py:124 company/models.py:276
-#: company/models.py:510 order/models.py:84 order/models.py:1245
+#: company/models.py:511 order/models.py:84 order/models.py:1249
#: part/models.py:802 part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
-#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848
-#: templates/js/translated/part.js:1534
+#: templates/js/translated/company.js:691
+#: templates/js/translated/company.js:1011
+#: templates/js/translated/order.js:3042 templates/js/translated/part.js:1563
msgid "Link"
msgstr "링크"
@@ -233,12 +234,12 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665
-#: common/models.py:1666 common/models.py:1889 common/models.py:1890
-#: common/models.py:2152 common/models.py:2153 part/models.py:2239
-#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257
+#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1669
+#: common/models.py:1670 common/models.py:1893 common/models.py:1894
+#: common/models.py:2156 common/models.py:2157 part/models.py:2247
+#: part/models.py:2267 plugin/models.py:260 plugin/models.py:261
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2641
+#: templates/js/translated/stock.js:2637
msgid "User"
msgstr "사용자"
@@ -275,28 +276,28 @@ msgstr "파일 이름 바꾸기 오류"
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875
+#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1879
#: company/models.py:358 label/models.py:101 part/models.py:746
-#: part/models.py:2417 plugin/models.py:94 report/models.py:152
+#: part/models.py:2425 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin.html:134
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:347
-#: templates/js/translated/company.js:545
-#: templates/js/translated/company.js:758
+#: templates/js/translated/company.js:580
+#: templates/js/translated/company.js:793
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:688 templates/js/translated/part.js:840
-#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392
+#: templates/js/translated/part.js:686 templates/js/translated/part.js:838
+#: templates/js/translated/part.js:1955 templates/js/translated/stock.js:2388
msgid "Name"
msgstr "이름"
#: InvenTree/models.py:544 build/models.py:174
#: build/templates/build/detail.html:24 company/models.py:282
-#: company/models.py:516 company/templates/company/company_base.html:71
+#: company/models.py:517 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:87 label/models.py:108
-#: order/models.py:82 part/models.py:769 part/models.py:2429
+#: company/templates/company/supplier_part.html:92 label/models.py:108
+#: order/models.py:82 part/models.py:769 part/models.py:2437
#: part/templates/part/category.html:80 part/templates/part/part_base.html:167
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
@@ -305,14 +306,14 @@ msgstr "이름"
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/InvenTree/settings/settings.html:358
#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846
-#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409
-#: templates/js/translated/company.js:667
-#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637
-#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167
-#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962
-#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743
-#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478
+#: templates/js/translated/build.js:2512 templates/js/translated/company.js:444
+#: templates/js/translated/company.js:702
+#: templates/js/translated/company.js:986 templates/js/translated/order.js:1988
+#: templates/js/translated/order.js:2220 templates/js/translated/order.js:2831
+#: templates/js/translated/part.js:745 templates/js/translated/part.js:1187
+#: templates/js/translated/part.js:1463 templates/js/translated/part.js:1991
+#: templates/js/translated/part.js:2060 templates/js/translated/stock.js:1743
+#: templates/js/translated/stock.js:2420 templates/js/translated/stock.js:2474
msgid "Description"
msgstr "설명"
@@ -325,7 +326,7 @@ msgid "parent"
msgstr ""
#: InvenTree/models.py:560 InvenTree/models.py:561
-#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:2426
msgid "Path"
msgstr ""
@@ -337,7 +338,7 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2745
+#: InvenTree/serializers.py:55 part/models.py:2753
msgid "Must be a valid number"
msgstr "유효한 숫자여야 합니다"
@@ -522,7 +523,7 @@ msgid "Placed"
msgstr ""
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr ""
@@ -542,8 +543,8 @@ msgstr ""
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:141 order/models.py:1128
-#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785
+#: InvenTree/status_codes.py:141 order/models.py:1132
+#: templates/js/translated/order.js:3630 templates/js/translated/order.js:3979
msgid "Shipped"
msgstr ""
@@ -627,7 +628,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080
msgid "Merged stock items"
msgstr ""
@@ -717,7 +718,7 @@ msgstr "시스템 정보"
msgid "About InvenTree"
msgstr ""
-#: build/api.py:217
+#: build/api.py:219
msgid "Build must be cancelled before it can be deleted"
msgstr ""
@@ -748,15 +749,15 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:166 order/models.py:240 order/models.py:623
-#: order/models.py:904 part/models.py:2663
+#: build/models.py:166 order/models.py:240 order/models.py:627
+#: order/models.py:908 part/models.py:2671
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853
-#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089
-#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629
-#: templates/js/translated/order.js:4137
+#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2251
+#: templates/js/translated/order.js:2484 templates/js/translated/order.js:3823
+#: templates/js/translated/order.js:4331
msgid "Reference"
msgstr ""
@@ -774,12 +775,12 @@ msgid "BuildOrder to which this build is allocated"
msgstr ""
#: build/models.py:191 build/templates/build/build_base.html:80
-#: build/templates/build/detail.html:29 company/models.py:670
-#: order/models.py:1001 order/models.py:1112 order/models.py:1113
-#: part/models.py:343 part/models.py:2185 part/models.py:2200
-#: part/models.py:2219 part/models.py:2237 part/models.py:2336
-#: part/models.py:2463 part/models.py:2553 part/models.py:2638
-#: part/models.py:2914 part/serializers.py:814
+#: build/templates/build/detail.html:29 company/models.py:679
+#: order/models.py:1005 order/models.py:1116 order/models.py:1117
+#: part/models.py:343 part/models.py:2193 part/models.py:2208
+#: part/models.py:2227 part/models.py:2245 part/models.py:2344
+#: part/models.py:2471 part/models.py:2561 part/models.py:2646
+#: part/models.py:2922 part/serializers.py:814
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -795,18 +796,18 @@ msgstr ""
#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800
#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682
#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517
-#: templates/js/translated/company.js:266
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:608
-#: templates/js/translated/company.js:868 templates/js/translated/order.js:105
-#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493
-#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613
-#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224
-#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586
+#: templates/js/translated/company.js:301
+#: templates/js/translated/company.js:531
+#: templates/js/translated/company.js:643
+#: templates/js/translated/company.js:904 templates/js/translated/order.js:106
+#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1638
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:3185
+#: templates/js/translated/order.js:3581 templates/js/translated/order.js:3807
+#: templates/js/translated/part.js:1172 templates/js/translated/part.js:1244
+#: templates/js/translated/part.js:1441 templates/js/translated/stock.js:586
#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504
-#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833
+#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2500
+#: templates/js/translated/stock.js:2695 templates/js/translated/stock.js:2829
msgid "Part"
msgstr ""
@@ -823,7 +824,7 @@ msgid "SalesOrder to which this build is allocated"
msgstr ""
#: build/models.py:213 build/serializers.py:800
-#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979
+#: templates/js/translated/build.js:2114 templates/js/translated/order.js:3173
msgid "Source Location"
msgstr ""
@@ -863,8 +864,8 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:251 build/serializers.py:225 order/serializers.py:447
-#: stock/models.py:662 templates/js/translated/order.js:1353
+#: build/models.py:251 build/serializers.py:225 order/serializers.py:464
+#: stock/models.py:662 templates/js/translated/order.js:1496
msgid "Batch Code"
msgstr ""
@@ -873,11 +874,11 @@ msgid "Batch code for this build output"
msgstr ""
#: build/models.py:258 order/models.py:86 part/models.py:938
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2844
msgid "Creation Date"
msgstr ""
-#: build/models.py:262 order/models.py:648
+#: build/models.py:262 order/models.py:652
msgid "Target completion date"
msgstr ""
@@ -904,10 +905,10 @@ msgstr ""
#: build/models.py:289 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:100
-#: order/templates/order/order_base.html:179
+#: order/templates/order/order_base.html:185
#: order/templates/order/sales_order_base.html:183 part/models.py:942
#: report/templates/report/inventree_build_order_base.html:158
-#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860
+#: templates/js/translated/build.js:2574 templates/js/translated/order.js:2022
msgid "Responsible"
msgstr ""
@@ -917,9 +918,9 @@ msgstr ""
#: build/models.py:295 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
-#: company/templates/company/supplier_part.html:153
+#: company/templates/company/supplier_part.html:165
#: part/templates/part/part_base.html:346 stock/models.py:656
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr "외부 링크"
@@ -957,11 +958,11 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1188 order/models.py:1379
+#: build/models.py:1188 order/models.py:1383
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1194 order/models.py:1382
+#: build/models.py:1194 order/models.py:1386
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -973,7 +974,7 @@ msgstr ""
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1326 stock/templates/stock/item_base.html:172
+#: build/models.py:1326 stock/templates/stock/item_base.html:175
#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496
#: templates/navbar.html:38
msgid "Build"
@@ -983,18 +984,18 @@ msgstr ""
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015
-#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754
+#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1035
+#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754
#: stock/serializers.py:880 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:197
#: templates/js/translated/build.js:774 templates/js/translated/build.js:779
#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679
-#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992
-#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299
-#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486
+#: templates/js/translated/order.js:107 templates/js/translated/order.js:3186
+#: templates/js/translated/order.js:3488 templates/js/translated/order.js:3493
+#: templates/js/translated/order.js:3588 templates/js/translated/order.js:3680
#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752
-#: templates/js/translated/stock.js:2577
+#: templates/js/translated/stock.js:2573
msgid "Stock Item"
msgstr ""
@@ -1004,11 +1005,11 @@ msgstr ""
#: build/models.py:1356 build/serializers.py:193
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1697
-#: company/templates/company/supplier_part.html:279 order/models.py:897
-#: order/models.py:1423 order/serializers.py:1155
+#: build/templates/build/detail.html:34 common/models.py:1701
+#: company/templates/company/supplier_part.html:291 order/models.py:901
+#: order/models.py:1427 order/serializers.py:1209
#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40
-#: part/models.py:2654 part/templates/part/detail.html:951
+#: part/models.py:2662 part/templates/part/detail.html:951
#: part/templates/part/detail.html:1037
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -1017,8 +1018,8 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:291 stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
+#: stock/serializers.py:291 stock/templates/stock/item_base.html:290
+#: stock/templates/stock/item_base.html:298
#: templates/email/build_order_completed.html:18
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691
#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458
@@ -1026,16 +1027,16 @@ msgstr ""
#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708
#: templates/js/translated/build.js:2129
#: templates/js/translated/model_renderers.js:120
-#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043
-#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313
-#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492
-#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143
-#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176
-#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686
-#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458
+#: templates/js/translated/order.js:123 templates/js/translated/order.js:1137
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:2490
+#: templates/js/translated/order.js:3187 templates/js/translated/order.js:3507
+#: templates/js/translated/order.js:3594 templates/js/translated/order.js:3686
+#: templates/js/translated/order.js:3829 templates/js/translated/order.js:4337
+#: templates/js/translated/part.js:1036 templates/js/translated/part.js:2205
+#: templates/js/translated/part.js:2674 templates/js/translated/part.js:2715
+#: templates/js/translated/part.js:2793 templates/js/translated/stock.js:458
#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782
-#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2707
msgid "Quantity"
msgstr "수량"
@@ -1077,7 +1078,7 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:208 build/serializers.py:665 order/models.py:318
-#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545
+#: order/serializers.py:304 order/serializers.py:459 part/serializers.py:545
#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251
#: stock/serializers.py:300
msgid "Quantity must be greater than zero"
@@ -1091,8 +1092,8 @@ msgstr ""
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159
-#: stock/serializers.py:309 templates/js/translated/order.js:1364
+#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213
+#: stock/serializers.py:309 templates/js/translated/order.js:1507
#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459
msgid "Serial Numbers"
msgstr "일련번호"
@@ -1117,18 +1118,18 @@ msgstr ""
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532
+#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552
#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532
#: stock/serializers.py:915 stock/serializers.py:1148
-#: stock/templates/stock/item_base.html:385
+#: stock/templates/stock/item_base.html:388
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786
-#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391
-#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411
-#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500
+#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1534
+#: templates/js/translated/order.js:3500 templates/js/translated/order.js:3605
+#: templates/js/translated/order.js:3613 templates/js/translated/order.js:3694
#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588
#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960
-#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2514
msgid "Location"
msgstr "위치"
@@ -1137,12 +1138,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:373 build/templates/build/build_base.html:145
-#: build/templates/build/detail.html:62 order/models.py:642
-#: order/serializers.py:465 stock/templates/stock/item_base.html:418
+#: build/templates/build/detail.html:62 order/models.py:646
+#: order/serializers.py:482 stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546
-#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830
-#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829
-#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727
+#: templates/js/translated/order.js:1643 templates/js/translated/order.js:1992
+#: templates/js/translated/order.js:2836 templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:2591 templates/js/translated/stock.js:2723
msgid "Status"
msgstr "상태"
@@ -1202,7 +1203,7 @@ msgstr ""
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:527
+#: build/serializers.py:527 order/serializers.py:208 order/serializers.py:1103
msgid "Accept Incomplete"
msgstr ""
@@ -1218,8 +1219,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772
-#: part/models.py:2906
+#: build/serializers.py:577 build/serializers.py:622 part/models.py:2780
+#: part/models.py:2914
msgid "BOM Item"
msgstr ""
@@ -1239,7 +1240,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:709 order/serializers.py:1073
+#: build/serializers.py:709 order/serializers.py:1093
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1256,7 +1257,7 @@ msgstr ""
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:750 order/serializers.py:1319
+#: build/serializers.py:750 order/serializers.py:1373
msgid "Allocation items must be provided"
msgstr ""
@@ -1371,13 +1372,13 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:154
-#: build/templates/build/detail.html:131 order/models.py:910
-#: order/templates/order/order_base.html:165
+#: build/templates/build/detail.html:131 order/models.py:914
+#: order/templates/order/order_base.html:171
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:125
-#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847
-#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658
-#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042
+#: templates/js/translated/build.js:2586 templates/js/translated/order.js:2009
+#: templates/js/translated/order.js:2351 templates/js/translated/order.js:2852
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1051
msgid "Target Date"
msgstr ""
@@ -1388,7 +1389,7 @@ msgstr ""
#: build/templates/build/build_base.html:159
#: build/templates/build/build_base.html:204
-#: order/templates/order/order_base.html:101
+#: order/templates/order/order_base.html:107
#: order/templates/order/sales_order_base.html:94
#: templates/js/translated/table_filters.js:320
#: templates/js/translated/table_filters.js:361
@@ -1404,15 +1405,15 @@ msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:179
-#: build/templates/build/detail.html:94 order/models.py:1105
-#: order/models.py:1199 order/models.py:1330
+#: build/templates/build/detail.html:94 order/models.py:1109
+#: order/models.py:1203 order/models.py:1334
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:365
+#: stock/templates/stock/item_base.html:368
#: templates/email/overdue_sales_order.html:15
-#: templates/js/translated/order.js:2604
+#: templates/js/translated/order.js:2798
msgid "Sales Order"
msgstr ""
@@ -1438,8 +1439,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1023
-#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199
+#: build/templates/build/detail.html:49 order/models.py:1027
+#: templates/js/translated/order.js:1644 templates/js/translated/order.js:2393
msgid "Destination"
msgstr ""
@@ -1452,18 +1453,18 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:165
+#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1215
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843
-#: templates/js/translated/stock.js:2734
+#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1839
+#: templates/js/translated/stock.js:2730
#: templates/js/translated/table_filters.js:159
#: templates/js/translated/table_filters.js:250
msgid "Batch"
msgstr ""
#: build/templates/build/detail.html:126
-#: order/templates/order/order_base.html:152
+#: order/templates/order/order_base.html:158
#: order/templates/order/sales_order_base.html:158
#: templates/js/translated/build.js:2554
msgid "Created"
@@ -1516,7 +1517,7 @@ msgstr ""
#: build/templates/build/detail.html:187
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:85
-#: part/templates/part/category.html:183 templates/js/translated/order.js:1083
+#: part/templates/part/category.html:183 templates/js/translated/order.js:1177
msgid "Order Parts"
msgstr ""
@@ -1851,7 +1852,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:951 part/models.py:2465 report/models.py:158
+#: common/models.py:951 part/models.py:2473 report/models.py:158
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:484
msgid "Template"
@@ -1861,7 +1862,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446
+#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1454
#: templates/js/translated/table_filters.js:176
#: templates/js/translated/table_filters.js:447
msgid "Assembly"
@@ -2275,349 +2276,349 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1342 common/models.py:1658
+#: common/models.py:1344 common/models.py:1662
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1364
+#: common/models.py:1366
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1365
+#: common/models.py:1367
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1371
+#: common/models.py:1373
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1372
+#: common/models.py:1374
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1378
+#: common/models.py:1380
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1379
+#: common/models.py:1381
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1385
+#: common/models.py:1387
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1386
+#: common/models.py:1388
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1392
+#: common/models.py:1394
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1393
+#: common/models.py:1395
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1399
+#: common/models.py:1401
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1400
+#: common/models.py:1402
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1406
+#: common/models.py:1408
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1407
+#: common/models.py:1409
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1413
+#: common/models.py:1415
msgid "Show low stock"
msgstr ""
-#: common/models.py:1414
+#: common/models.py:1416
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1420
+#: common/models.py:1422
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1421
+#: common/models.py:1423
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1427
+#: common/models.py:1429
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1430
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1434
+#: common/models.py:1436
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1435
+#: common/models.py:1437
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1441
+#: common/models.py:1443
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1442
+#: common/models.py:1444
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1448
+#: common/models.py:1450
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1449
+#: common/models.py:1451
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1455
+#: common/models.py:1457
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1456
+#: common/models.py:1458
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1462
+#: common/models.py:1464
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1463
+#: common/models.py:1465
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1469
+#: common/models.py:1471
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1470
+#: common/models.py:1472
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1476
+#: common/models.py:1478
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1477
+#: common/models.py:1479
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1483
+#: common/models.py:1485
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1484
+#: common/models.py:1486
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1490
+#: common/models.py:1492
msgid "Inline label display"
msgstr ""
-#: common/models.py:1491
+#: common/models.py:1493
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1499
msgid "Inline report display"
msgstr ""
-#: common/models.py:1498
+#: common/models.py:1500
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1506
msgid "Search Parts"
msgstr ""
-#: common/models.py:1505
+#: common/models.py:1507
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1513
msgid "Seach Supplier Parts"
msgstr ""
-#: common/models.py:1512
+#: common/models.py:1514
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1520
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:1519
+#: common/models.py:1521
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:1525
+#: common/models.py:1527
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1526
+#: common/models.py:1528
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1532
+#: common/models.py:1534
msgid "Search Categories"
msgstr ""
-#: common/models.py:1533
+#: common/models.py:1535
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1539
+#: common/models.py:1541
msgid "Search Stock"
msgstr ""
-#: common/models.py:1540
+#: common/models.py:1542
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1546
+#: common/models.py:1548
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1547
+#: common/models.py:1549
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1553
+#: common/models.py:1555
msgid "Search Locations"
msgstr ""
-#: common/models.py:1554
+#: common/models.py:1556
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1560
+#: common/models.py:1562
msgid "Search Companies"
msgstr ""
-#: common/models.py:1561
+#: common/models.py:1563
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1567
+#: common/models.py:1569
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1568
+#: common/models.py:1570
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1574
+#: common/models.py:1576
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1575
+#: common/models.py:1577
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1581
+#: common/models.py:1583
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1582
+#: common/models.py:1584
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1588
+#: common/models.py:1590
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1591
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1595
+#: common/models.py:1597
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1598
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1602
+#: common/models.py:1604
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1605
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1609
+#: common/models.py:1611
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1610
+#: common/models.py:1612
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1616
+#: common/models.py:1618
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1617
+#: common/models.py:1619
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1623
+#: common/models.py:1625
msgid "Date Format"
msgstr ""
-#: common/models.py:1624
+#: common/models.py:1626
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1638 part/templates/part/detail.html:41
+#: common/models.py:1640 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1641
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1698
+#: common/models.py:1702
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1705 company/serializers.py:366
-#: company/templates/company/supplier_part.html:284 order/models.py:938
-#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181
+#: common/models.py:1709 company/serializers.py:372
+#: company/templates/company/supplier_part.html:296 order/models.py:942
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:2210
msgid "Price"
msgstr ""
-#: common/models.py:1706
+#: common/models.py:1710
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1866 common/models.py:2044
+#: common/models.py:1870 common/models.py:2048
msgid "Endpoint"
msgstr ""
-#: common/models.py:1867
+#: common/models.py:1871
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1876
+#: common/models.py:1880
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1881 part/models.py:921 plugin/models.py:100
+#: common/models.py:1885 part/models.py:921 plugin/models.py:100
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:104
#: templates/js/translated/table_filters.js:316
@@ -2625,67 +2626,67 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1886
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1896
+#: common/models.py:1900
msgid "Token"
msgstr ""
-#: common/models.py:1897
+#: common/models.py:1901
msgid "Token for access"
msgstr ""
-#: common/models.py:1904
+#: common/models.py:1908
msgid "Secret"
msgstr ""
-#: common/models.py:1905
+#: common/models.py:1909
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2011
+#: common/models.py:2015
msgid "Message ID"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2016
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2020
+#: common/models.py:2024
msgid "Host"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2025
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2032
msgid "Header"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2033
msgid "Header of this message"
msgstr ""
-#: common/models.py:2035
+#: common/models.py:2039
msgid "Body"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2040
msgid "Body of this message"
msgstr ""
-#: common/models.py:2045
+#: common/models.py:2049
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2054
msgid "Worked on"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2055
msgid "Was the work on this message finished?"
msgstr ""
@@ -2747,7 +2748,7 @@ msgstr ""
#: company/models.py:105 company/templates/company/company_base.html:100
#: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:413
+#: templates/js/translated/company.js:448
msgid "Website"
msgstr "웹사이트"
@@ -2824,7 +2825,7 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:148 company/serializers.py:372
+#: company/models.py:148 company/serializers.py:378
#: company/templates/company/company_base.html:106 part/serializers.py:153
#: part/serializers.py:184 stock/serializers.py:178
msgid "Currency"
@@ -2834,24 +2835,24 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:248 company/models.py:481 stock/models.py:598
+#: company/models.py:248 company/models.py:482 stock/models.py:598
#: stock/serializers.py:85 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:542
msgid "Base Part"
msgstr ""
-#: company/models.py:252 company/models.py:485
+#: company/models.py:252 company/models.py:486
msgid "Select part"
msgstr ""
#: company/models.py:263 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:124
-#: stock/templates/stock/item_base.html:207
-#: templates/js/translated/company.js:397
-#: templates/js/translated/company.js:498
-#: templates/js/translated/company.js:633
-#: templates/js/translated/company.js:919 templates/js/translated/part.js:236
+#: company/templates/company/supplier_part.html:129
+#: stock/templates/stock/item_base.html:210
+#: templates/js/translated/company.js:432
+#: templates/js/translated/company.js:533
+#: templates/js/translated/company.js:668
+#: templates/js/translated/company.js:956 templates/js/translated/part.js:236
#: templates/js/translated/table_filters.js:419
msgid "Manufacturer"
msgstr ""
@@ -2861,12 +2862,12 @@ msgid "Select manufacturer"
msgstr ""
#: company/models.py:270 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:132
-#: templates/js/translated/company.js:269
-#: templates/js/translated/company.js:497
-#: templates/js/translated/company.js:649
-#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077
-#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027
+#: company/templates/company/supplier_part.html:137
+#: templates/js/translated/company.js:304
+#: templates/js/translated/company.js:532
+#: templates/js/translated/company.js:684
+#: templates/js/translated/company.js:975 templates/js/translated/order.js:2239
+#: templates/js/translated/part.js:247 templates/js/translated/part.js:1025
msgid "MPN"
msgstr ""
@@ -2882,10 +2883,10 @@ msgstr ""
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:328 company/models.py:352 company/models.py:504
+#: company/models.py:328 company/models.py:352 company/models.py:505
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:220
msgid "Manufacturer Part"
msgstr ""
@@ -2895,8 +2896,8 @@ msgstr ""
#: company/models.py:365
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2095 templates/js/translated/company.js:546
-#: templates/js/translated/company.js:764 templates/js/translated/part.js:849
+#: stock/models.py:2095 templates/js/translated/company.js:581
+#: templates/js/translated/company.js:799 templates/js/translated/part.js:847
#: templates/js/translated/stock.js:1360
msgid "Value"
msgstr ""
@@ -2905,10 +2906,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:372 part/models.py:888 part/models.py:2425
+#: company/models.py:372 part/models.py:888 part/models.py:2433
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:352
-#: templates/js/translated/company.js:770 templates/js/translated/part.js:855
+#: templates/js/translated/company.js:805 templates/js/translated/part.js:853
msgid "Units"
msgstr ""
@@ -2916,106 +2917,119 @@ msgstr ""
msgid "Parameter units"
msgstr ""
-#: company/models.py:449
+#: company/models.py:450
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:491 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:108 order/models.py:258
-#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:224
+#: company/models.py:492 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:113 order/models.py:258
+#: order/templates/order/order_base.html:121 part/bom.py:237 part/bom.py:265
+#: stock/templates/stock/item_base.html:227
#: templates/email/overdue_purchase_order.html:16
-#: templates/js/translated/company.js:268
-#: templates/js/translated/company.js:401
-#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813
-#: templates/js/translated/part.js:217 templates/js/translated/part.js:995
+#: templates/js/translated/company.js:303
+#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:929 templates/js/translated/order.js:1975
+#: templates/js/translated/part.js:217 templates/js/translated/part.js:993
#: templates/js/translated/table_filters.js:423
msgid "Supplier"
msgstr ""
-#: company/models.py:492 templates/js/translated/part.js:218
+#: company/models.py:493 templates/js/translated/part.js:218
msgid "Select supplier"
msgstr ""
-#: company/models.py:497 company/templates/company/supplier_part.html:118
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267
-#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228
-#: templates/js/translated/part.js:1013
+#: company/models.py:498 company/templates/company/supplier_part.html:123
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:302
+#: templates/js/translated/order.js:2226 templates/js/translated/part.js:228
+#: templates/js/translated/part.js:1011
msgid "SKU"
msgstr ""
-#: company/models.py:498 templates/js/translated/part.js:229
+#: company/models.py:499 templates/js/translated/part.js:229
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:505
+#: company/models.py:506
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:511
+#: company/models.py:512
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:517
+#: company/models.py:518
msgid "Supplier part description"
msgstr ""
-#: company/models.py:522 company/templates/company/supplier_part.html:146
-#: part/models.py:2666 part/templates/part/upload_bom.html:59
+#: company/models.py:523 company/templates/company/supplier_part.html:158
+#: part/models.py:2674 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399
msgid "Note"
msgstr ""
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "base cost"
msgstr ""
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:528 company/templates/company/supplier_part.html:139
-#: stock/models.py:624 stock/templates/stock/item_base.html:240
-#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976
+#: company/models.py:529 company/templates/company/supplier_part.html:144
+#: stock/models.py:624 stock/templates/stock/item_base.html:243
+#: templates/js/translated/company.js:991 templates/js/translated/stock.js:1972
msgid "Packaging"
msgstr ""
-#: company/models.py:528
+#: company/models.py:529
msgid "Part packaging"
msgstr ""
-#: company/models.py:530 part/models.py:1783
+#: company/models.py:532 company/serializers.py:242
+#: company/templates/company/supplier_part.html:151
+#: templates/js/translated/company.js:996 templates/js/translated/order.js:820
+#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:2270 templates/js/translated/order.js:2287
+#: templates/js/translated/part.js:1043 templates/js/translated/part.js:1095
+msgid "Pack Quantity"
+msgstr ""
+
+#: company/models.py:533
+msgid "Unit quantity supplied in a single pack"
+msgstr ""
+
+#: company/models.py:539 part/models.py:1783
msgid "multiple"
msgstr ""
-#: company/models.py:530
+#: company/models.py:539
msgid "Order multiple"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part.html:94
+#: company/models.py:547 company/templates/company/supplier_part.html:99
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823
-#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979
-#: templates/js/translated/part.js:600 templates/js/translated/part.js:603
+#: templates/js/translated/bom.js:915 templates/js/translated/build.js:1823
+#: templates/js/translated/build.js:2686 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:601
#: templates/js/translated/table_filters.js:186
msgid "Available"
msgstr ""
-#: company/models.py:539
+#: company/models.py:548
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:543
+#: company/models.py:552
msgid "Availability Updated"
msgstr ""
-#: company/models.py:544
+#: company/models.py:553
msgid "Date of last update of availability data"
msgstr ""
-#: company/models.py:672
+#: company/models.py:681
msgid "last updated"
msgstr ""
@@ -3029,12 +3043,12 @@ msgstr ""
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386
+#: templates/InvenTree/search.html:179 templates/js/translated/company.js:421
msgid "Company"
msgstr "회사"
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:624
+#: templates/js/translated/order.js:689
msgid "Create Purchase Order"
msgstr ""
@@ -3047,7 +3061,7 @@ msgid "Edit company information"
msgstr "회사 정보 수정"
#: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:329
+#: templates/js/translated/company.js:364
msgid "Edit Company"
msgstr "회사 수정"
@@ -3070,13 +3084,13 @@ msgstr "새 이미지 업로드"
msgid "Download image from URL"
msgstr "URL에서 이미지 다운로드"
-#: company/templates/company/company_base.html:86 order/models.py:637
+#: company/templates/company/company_base.html:86 order/models.py:641
#: order/templates/order/sales_order_base.html:116 stock/models.py:643
#: stock/models.py:644 stock/serializers.py:809
-#: stock/templates/stock/item_base.html:396
+#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
-#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619
-#: templates/js/translated/stock.js:2559
+#: templates/js/translated/company.js:428 templates/js/translated/order.js:2813
+#: templates/js/translated/stock.js:2555
#: templates/js/translated/table_filters.js:427
msgid "Customer"
msgstr "고객"
@@ -3211,23 +3225,23 @@ msgid "Manufacturers"
msgstr ""
#: company/templates/company/manufacturer_part.html:35
-#: company/templates/company/supplier_part.html:186
+#: company/templates/company/supplier_part.html:198
#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80
msgid "Order part"
msgstr ""
#: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:681
+#: templates/js/translated/company.js:716
msgid "Edit manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:682
+#: templates/js/translated/company.js:717
msgid "Delete manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:65
-#: company/templates/company/supplier_part.html:77
+#: company/templates/company/supplier_part.html:82
msgid "Internal Part"
msgstr ""
@@ -3250,8 +3264,8 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:371 part/templates/part/detail.html:401
-#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34
-#: users/models.py:220
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:34
+#: users/models.py:222
msgid "Delete"
msgstr "삭제"
@@ -3296,9 +3310,9 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:607
-#: stock/templates/stock/item_base.html:233
-#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041
-#: templates/js/translated/stock.js:1933
+#: stock/templates/stock/item_base.html:236
+#: templates/js/translated/company.js:945 templates/js/translated/order.js:1135
+#: templates/js/translated/stock.js:1929
msgid "Supplier Part"
msgstr ""
@@ -3308,7 +3322,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:40
#: company/templates/company/supplier_part.html:41
-#: company/templates/company/supplier_part.html:187
+#: company/templates/company/supplier_part.html:199
#: part/templates/part/detail.html:88
msgid "Order Part"
msgstr ""
@@ -3320,81 +3334,87 @@ msgstr ""
#: company/templates/company/supplier_part.html:48
#: company/templates/company/supplier_part.html:49
-#: templates/js/translated/company.js:212
+#: templates/js/translated/company.js:247
msgid "Edit Supplier Part"
msgstr ""
#: company/templates/company/supplier_part.html:53
+#: company/templates/company/supplier_part.html:54
+#: templates/js/translated/company.js:222
+msgid "Duplicate Supplier Part"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:58
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:54
+#: company/templates/company/supplier_part.html:59
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:112
+#: company/templates/company/supplier_part.html:117
msgid "No supplier information available"
msgstr ""
-#: company/templates/company/supplier_part.html:165
+#: company/templates/company/supplier_part.html:177
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr ""
-#: company/templates/company/supplier_part.html:168
+#: company/templates/company/supplier_part.html:180
#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181
msgid "Create new stock item"
msgstr ""
-#: company/templates/company/supplier_part.html:169
+#: company/templates/company/supplier_part.html:181
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182
#: templates/js/translated/stock.js:435
msgid "New Stock Item"
msgstr ""
-#: company/templates/company/supplier_part.html:182
+#: company/templates/company/supplier_part.html:194
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr ""
-#: company/templates/company/supplier_part.html:207
+#: company/templates/company/supplier_part.html:219
#: part/templates/part/prices.html:10
msgid "Pricing Information"
msgstr ""
-#: company/templates/company/supplier_part.html:212
-#: company/templates/company/supplier_part.html:326
-#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253
+#: company/templates/company/supplier_part.html:224
+#: company/templates/company/supplier_part.html:338
+#: part/templates/part/prices.html:276 templates/js/translated/part.js:2282
msgid "Add Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:250
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:252
-#: templates/js/translated/part.js:2263
+#: company/templates/company/supplier_part.html:264
+#: templates/js/translated/part.js:2292
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:266
-#: templates/js/translated/part.js:2277
+#: company/templates/company/supplier_part.html:278
+#: templates/js/translated/part.js:2306
msgid "Edit Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:291
+#: company/templates/company/supplier_part.html:303
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part.html:292
+#: company/templates/company/supplier_part.html:304
msgid "Delete price break"
msgstr ""
-#: company/templates/company/supplier_part.html:301
+#: company/templates/company/supplier_part.html:313
msgid "Last updated"
msgstr ""
-#: company/templates/company/supplier_part.html:382
+#: company/templates/company/supplier_part.html:394
msgid "Update Part Availability"
msgstr ""
@@ -3404,8 +3424,8 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313
-#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959
+#: templates/js/translated/part.js:749 templates/js/translated/part.js:1334
+#: templates/js/translated/part.js:1495 templates/js/translated/stock.js:959
#: templates/js/translated/stock.js:1754 templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -3432,7 +3452,7 @@ msgstr ""
#: stock/templates/stock/location.html:178
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2436 users/models.py:40
+#: templates/js/translated/stock.js:2432 users/models.py:40
msgid "Stock Items"
msgstr ""
@@ -3534,7 +3554,7 @@ msgstr ""
msgid "Order description"
msgstr ""
-#: order/models.py:84 order/models.py:1246
+#: order/models.py:84 order/models.py:1250
msgid "Link to external page"
msgstr ""
@@ -3550,11 +3570,11 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:241 order/models.py:624
+#: order/models.py:241 order/models.py:628
msgid "Order reference"
msgstr ""
-#: order/models.py:249 order/models.py:642
+#: order/models.py:249 order/models.py:646
msgid "Purchase order status"
msgstr ""
@@ -3562,8 +3582,8 @@ msgstr ""
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:262 order/templates/order/order_base.html:127
-#: templates/js/translated/order.js:1822
+#: order/models.py:262 order/templates/order/order_base.html:133
+#: templates/js/translated/order.js:1984
msgid "Supplier Reference"
msgstr ""
@@ -3603,245 +3623,245 @@ msgstr ""
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:638
+#: order/models.py:642
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer Reference "
msgstr ""
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:649
+#: order/models.py:653
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:652 order/models.py:1204
-#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828
+#: order/models.py:656 order/models.py:1208
+#: templates/js/translated/order.js:2860 templates/js/translated/order.js:3022
msgid "Shipment Date"
msgstr ""
-#: order/models.py:659
+#: order/models.py:663
msgid "shipped by"
msgstr ""
-#: order/models.py:714
+#: order/models.py:718
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:718
+#: order/models.py:722
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:721
+#: order/models.py:725 templates/js/translated/order.js:419
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:724
+#: order/models.py:728
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:898
+#: order/models.py:902
msgid "Item quantity"
msgstr ""
-#: order/models.py:904
+#: order/models.py:908
msgid "Line item reference"
msgstr ""
-#: order/models.py:906
+#: order/models.py:910
msgid "Line item notes"
msgstr ""
-#: order/models.py:911
+#: order/models.py:915
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:929
+#: order/models.py:933
msgid "Context"
msgstr ""
-#: order/models.py:930
+#: order/models.py:934
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:939
+#: order/models.py:943
msgid "Unit price"
msgstr ""
-#: order/models.py:969
+#: order/models.py:973
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:977
+#: order/models.py:981
msgid "deleted"
msgstr ""
-#: order/models.py:983 order/models.py:1063 order/models.py:1104
-#: order/models.py:1198 order/models.py:1330
-#: templates/js/translated/order.js:3284
+#: order/models.py:987 order/models.py:1067 order/models.py:1108
+#: order/models.py:1202 order/models.py:1334
+#: templates/js/translated/order.js:3478
msgid "Order"
msgstr ""
-#: order/models.py:984 order/models.py:1063
+#: order/models.py:988 order/models.py:1067
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:179
+#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
-#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042
-#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972
-#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540
+#: templates/js/translated/order.js:619 templates/js/translated/order.js:1136
+#: templates/js/translated/order.js:1959 templates/js/translated/part.js:970
+#: templates/js/translated/stock.js:1909 templates/js/translated/stock.js:2536
msgid "Purchase Order"
msgstr ""
-#: order/models.py:1002
+#: order/models.py:1006
msgid "Supplier part"
msgstr ""
-#: order/models.py:1009 order/templates/order/order_base.html:172
-#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105
+#: order/models.py:1013 order/templates/order/order_base.html:178
+#: templates/js/translated/order.js:1641 templates/js/translated/order.js:2373
+#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1125
#: templates/js/translated/table_filters.js:338
msgid "Received"
msgstr ""
-#: order/models.py:1010
+#: order/models.py:1014
msgid "Number of items received"
msgstr ""
-#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734
-#: stock/serializers.py:169 stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1964
+#: order/models.py:1021 part/templates/part/prices.html:181 stock/models.py:734
+#: stock/serializers.py:169 stock/templates/stock/item_base.html:189
+#: templates/js/translated/stock.js:1960
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1018
+#: order/models.py:1022
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1026
+#: order/models.py:1030
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1092
+#: order/models.py:1096
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1097
+#: order/models.py:1101
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1123 part/templates/part/part_pricing.html:115
+#: order/models.py:1127 part/templates/part/part_pricing.html:115
#: part/templates/part/prices.html:121 part/templates/part/prices.html:290
msgid "Sale Price"
msgstr ""
-#: order/models.py:1124
+#: order/models.py:1128
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1129
+#: order/models.py:1133
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1205
+#: order/models.py:1209
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1212
+#: order/models.py:1216
msgid "Checked By"
msgstr ""
-#: order/models.py:1213
+#: order/models.py:1217
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1220 order/models.py:1405 order/serializers.py:1170
-#: order/serializers.py:1294 templates/js/translated/model_renderers.js:314
+#: order/models.py:1224 order/models.py:1409 order/serializers.py:1224
+#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314
msgid "Shipment"
msgstr ""
-#: order/models.py:1221
+#: order/models.py:1225
msgid "Shipment number"
msgstr ""
-#: order/models.py:1225
+#: order/models.py:1229
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1231
+#: order/models.py:1235
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1232
+#: order/models.py:1236
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1239
+#: order/models.py:1243
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1240
+#: order/models.py:1244
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1258
+#: order/models.py:1262
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1261
+#: order/models.py:1265
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1364 order/models.py:1366
+#: order/models.py:1368 order/models.py:1370
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1370
+#: order/models.py:1374
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1372
+#: order/models.py:1376
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1375
+#: order/models.py:1379
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1385 order/serializers.py:1066
+#: order/models.py:1389 order/serializers.py:1086
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1388
+#: order/models.py:1392
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1389
+#: order/models.py:1393
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1397
+#: order/models.py:1401
msgid "Line"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1410
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1419 templates/js/translated/notification.js:55
+#: order/models.py:1423 templates/js/translated/notification.js:55
msgid "Item"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1424
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1423
+#: order/models.py:1427
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3853,111 +3873,119 @@ msgstr ""
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:294
+#: order/serializers.py:209 order/serializers.py:1104
+msgid "Allow order to be closed with incomplete line items"
+msgstr ""
+
+#: order/serializers.py:220 order/serializers.py:1115
+msgid "Order has incomplete line items"
+msgstr ""
+
+#: order/serializers.py:311
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:318
+#: order/serializers.py:335
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:354
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:342
+#: order/serializers.py:359
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:348
+#: order/serializers.py:365
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:349
+#: order/serializers.py:366
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:413 order/serializers.py:1138
+#: order/serializers.py:430 order/serializers.py:1192
msgid "Line Item"
msgstr ""
-#: order/serializers.py:419
+#: order/serializers.py:436
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:429 order/serializers.py:533
+#: order/serializers.py:446 order/serializers.py:553
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:448 templates/js/translated/order.js:1354
+#: order/serializers.py:465 templates/js/translated/order.js:1497
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:456 templates/js/translated/order.js:1365
+#: order/serializers.py:473 templates/js/translated/order.js:1508
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:469
+#: order/serializers.py:486
msgid "Barcode Hash"
msgstr "바코드 해시"
-#: order/serializers.py:470
+#: order/serializers.py:487
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:484
+#: order/serializers.py:501
msgid "Barcode is already in use"
msgstr "이미 사용 중인 바코드입니다"
-#: order/serializers.py:507
+#: order/serializers.py:527
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:549
+#: order/serializers.py:569
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:566
+#: order/serializers.py:586
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:577
+#: order/serializers.py:597
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:883
+#: order/serializers.py:903
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:964
+#: order/serializers.py:984
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1027 order/serializers.py:1147
+#: order/serializers.py:1047 order/serializers.py:1201
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1049
+#: order/serializers.py:1069
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1160
+#: order/serializers.py:1214
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1182 order/serializers.py:1302
+#: order/serializers.py:1236 order/serializers.py:1356
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1185 order/serializers.py:1305
+#: order/serializers.py:1239 order/serializers.py:1359
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1235
+#: order/serializers.py:1289
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1245
+#: order/serializers.py:1299
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3993,83 +4021,83 @@ msgstr ""
msgid "Order actions"
msgstr ""
-#: order/templates/order/order_base.html:45
+#: order/templates/order/order_base.html:46
#: order/templates/order/sales_order_base.html:58
msgid "Edit order"
msgstr ""
-#: order/templates/order/order_base.html:47
+#: order/templates/order/order_base.html:50
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr ""
-#: order/templates/order/order_base.html:50
+#: order/templates/order/order_base.html:55
msgid "Duplicate order"
msgstr ""
-#: order/templates/order/order_base.html:55
+#: order/templates/order/order_base.html:61
msgid "Place order"
msgstr ""
-#: order/templates/order/order_base.html:59
+#: order/templates/order/order_base.html:65
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:61
+#: order/templates/order/order_base.html:67
#: order/templates/order/purchase_order_detail.html:30
msgid "Receive Items"
msgstr ""
-#: order/templates/order/order_base.html:63
+#: order/templates/order/order_base.html:69
msgid "Mark order as complete"
msgstr ""
-#: order/templates/order/order_base.html:65
+#: order/templates/order/order_base.html:71
#: order/templates/order/sales_order_base.html:68
msgid "Complete Order"
msgstr ""
-#: order/templates/order/order_base.html:87
+#: order/templates/order/order_base.html:93
#: order/templates/order/sales_order_base.html:80
msgid "Order Reference"
msgstr ""
-#: order/templates/order/order_base.html:92
+#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:85
msgid "Order Description"
msgstr ""
-#: order/templates/order/order_base.html:97
+#: order/templates/order/order_base.html:103
#: order/templates/order/sales_order_base.html:90
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:120
+#: order/templates/order/order_base.html:126
msgid "No suppplier information available"
msgstr ""
-#: order/templates/order/order_base.html:133
+#: order/templates/order/order_base.html:139
#: order/templates/order/sales_order_base.html:129
msgid "Completed Line Items"
msgstr ""
-#: order/templates/order/order_base.html:139
+#: order/templates/order/order_base.html:145
#: order/templates/order/sales_order_base.html:135
#: order/templates/order/sales_order_base.html:145
msgid "Incomplete"
msgstr ""
-#: order/templates/order/order_base.html:158
+#: order/templates/order/order_base.html:164
#: report/templates/report/inventree_build_order_base.html:121
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:186
+#: order/templates/order/order_base.html:192
#: order/templates/order/sales_order_base.html:190
msgid "Total cost"
msgstr ""
-#: order/templates/order/order_base.html:190
+#: order/templates/order/order_base.html:196
#: order/templates/order/sales_order_base.html:194
msgid "Total cost could not be calculated"
msgstr ""
@@ -4102,8 +4130,8 @@ msgstr ""
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463
#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015
-#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443
-#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625
+#: templates/js/translated/order.js:1084 templates/js/translated/order.js:1586
+#: templates/js/translated/order.js:3097 templates/js/translated/stock.js:625
#: templates/js/translated/stock.js:793
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
@@ -4139,7 +4167,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:26
#: order/templates/order/sales_order_detail.html:22
#: order/templates/order/sales_order_detail.html:255
-#: templates/js/translated/order.js:663
+#: templates/js/translated/order.js:728
msgid "Add Line Item"
msgstr ""
@@ -4167,7 +4195,7 @@ msgstr ""
msgid "Order Notes"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:228
+#: order/templates/order/purchase_order_detail.html:232
msgid "Add Order Line"
msgstr ""
@@ -4185,12 +4213,12 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:231
+#: templates/js/translated/order.js:232
msgid "Complete Shipments"
msgstr ""
#: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:258
+#: templates/js/translated/order.js:397
msgid "Complete Sales Order"
msgstr ""
@@ -4199,7 +4227,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2632
+#: templates/js/translated/order.js:2826
msgid "Customer Reference"
msgstr ""
@@ -4223,7 +4251,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:72
-#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1116
#: templates/js/translated/build.js:1923
msgid "Actions"
msgstr ""
@@ -4308,14 +4336,14 @@ msgid "Total Stock"
msgstr ""
#: part/bom.py:129 part/templates/part/part_base.html:189
-#: templates/js/translated/order.js:3724
+#: templates/js/translated/order.js:3918
msgid "Available Stock"
msgstr ""
#: part/bom.py:130 part/templates/part/part_base.html:207
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853
-#: templates/js/translated/part.js:590 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503
+#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1853
+#: templates/js/translated/part.js:588 templates/js/translated/part.js:608
+#: templates/js/translated/part.js:1337 templates/js/translated/part.js:1520
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr ""
@@ -4344,7 +4372,7 @@ msgstr ""
msgid "Icon (optional)"
msgstr ""
-#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16
+#: part/models.py:122 part/models.py:2516 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -4361,7 +4389,7 @@ msgstr ""
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146
+#: templates/js/translated/part.js:2004 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr ""
@@ -4391,7 +4419,7 @@ msgstr ""
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:745 part/models.py:2562
+#: part/models.py:745 part/models.py:2570
msgid "Part name"
msgstr ""
@@ -4424,11 +4452,11 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:783 part/models.py:2257 part/models.py:2507
+#: part/models.py:783 part/models.py:2265 part/models.py:2515
#: part/templates/part/part_base.html:257
#: templates/InvenTree/settings/settings.html:232
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688
+#: templates/js/translated/part.js:1477 templates/js/translated/part.js:1717
msgid "Category"
msgstr ""
@@ -4437,7 +4465,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:789 part/templates/part/part_base.html:266
-#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:1430
#: templates/js/translated/stock.js:1726
msgid "IPN"
msgstr ""
@@ -4451,7 +4479,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:797 part/templates/part/part_base.html:273
-#: report/models.py:171 templates/js/translated/part.js:743
+#: report/models.py:171 templates/js/translated/part.js:741
msgid "Revision"
msgstr ""
@@ -4543,245 +4571,245 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2304
+#: part/models.py:2312
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2321
+#: part/models.py:2329
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2341 templates/js/translated/part.js:2026
+#: part/models.py:2349 templates/js/translated/part.js:2055
#: templates/js/translated/stock.js:1340
msgid "Test Name"
msgstr ""
-#: part/models.py:2342
+#: part/models.py:2350
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2347
+#: part/models.py:2355
msgid "Test Description"
msgstr ""
-#: part/models.py:2348
+#: part/models.py:2356
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2353 templates/js/translated/part.js:2035
+#: part/models.py:2361 templates/js/translated/part.js:2064
#: templates/js/translated/table_filters.js:302
msgid "Required"
msgstr ""
-#: part/models.py:2354
+#: part/models.py:2362
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2359 templates/js/translated/part.js:2043
+#: part/models.py:2367 templates/js/translated/part.js:2072
msgid "Requires Value"
msgstr ""
-#: part/models.py:2360
+#: part/models.py:2368
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2365 templates/js/translated/part.js:2050
+#: part/models.py:2373 templates/js/translated/part.js:2079
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2366
+#: part/models.py:2374
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2374
+#: part/models.py:2382
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2410
+#: part/models.py:2418
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2418
+#: part/models.py:2426
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2433
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2430
+#: part/models.py:2438
msgid "Parameter description"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2471
msgid "Parent Part"
msgstr ""
-#: part/models.py:2465 part/models.py:2513 part/models.py:2514
+#: part/models.py:2473 part/models.py:2521 part/models.py:2522
#: templates/InvenTree/settings/settings.html:227
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Data"
msgstr "데이터"
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2518 templates/InvenTree/settings/settings.html:236
+#: part/models.py:2526 templates/InvenTree/settings/settings.html:236
msgid "Default Value"
msgstr ""
-#: part/models.py:2519
+#: part/models.py:2527
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2554
+#: part/models.py:2562
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2557 templates/js/translated/model_renderers.js:212
+#: part/models.py:2565 templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr ""
-#: part/models.py:2558
+#: part/models.py:2566
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2561
+#: part/models.py:2569
msgid "Part Name"
msgstr ""
-#: part/models.py:2565
+#: part/models.py:2573
msgid "Part IPN"
msgstr ""
-#: part/models.py:2566
+#: part/models.py:2574
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2569
+#: part/models.py:2577
msgid "Level"
msgstr ""
-#: part/models.py:2570
+#: part/models.py:2578
msgid "BOM level"
msgstr ""
-#: part/models.py:2639
+#: part/models.py:2647
msgid "Select parent part"
msgstr ""
-#: part/models.py:2647
+#: part/models.py:2655
msgid "Sub part"
msgstr ""
-#: part/models.py:2648
+#: part/models.py:2656
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2654
+#: part/models.py:2662
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2656 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997
+#: part/models.py:2664 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:876 templates/js/translated/bom.js:1005
#: templates/js/translated/table_filters.js:100
msgid "Optional"
msgstr ""
-#: part/models.py:2656
+#: part/models.py:2664
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2659 part/templates/part/upload_bom.html:55
+#: part/models.py:2667 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2660
+#: part/models.py:2668
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2671
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2666
+#: part/models.py:2674
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "Checksum"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2672 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1014
+#: part/models.py:2680 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:1022
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:96
msgid "Inherited"
msgstr ""
-#: part/models.py:2673
+#: part/models.py:2681
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2678 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1006
+#: part/models.py:2686 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:1014
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2679
+#: part/models.py:2687
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2757 stock/models.py:468
+#: part/models.py:2765 stock/models.py:468
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2766 part/models.py:2768
+#: part/models.py:2774 part/models.py:2776
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2873
+#: part/models.py:2881
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2902
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2915
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2923
msgid "Substitute part"
msgstr ""
-#: part/models.py:2930
+#: part/models.py:2938
msgid "Part 1"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Part 2"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2960
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:2956
+#: part/models.py:2964
msgid "Duplicate relationship already exists"
msgstr ""
@@ -5309,10 +5337,10 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:624
-#: templates/js/translated/company.js:884
+#: templates/js/translated/company.js:659
+#: templates/js/translated/company.js:920
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:654 templates/js/translated/part.js:731
+#: templates/js/translated/part.js:652 templates/js/translated/part.js:729
msgid "Inactive"
msgstr ""
@@ -5327,28 +5355,28 @@ msgid "This part is a variant of %(link)s"
msgstr ""
#: part/templates/part/part_base.html:194
-#: templates/js/translated/company.js:974
+#: templates/js/translated/company.js:1027
#: templates/js/translated/table_filters.js:201
msgid "In Stock"
msgstr ""
#: part/templates/part/part_base.html:215
-#: stock/templates/stock/item_base.html:379
+#: stock/templates/stock/item_base.html:382
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:224
-#: stock/templates/stock/item_base.html:372
+#: stock/templates/stock/item_base.html:375
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1043
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320
-#: templates/js/translated/part.js:1510
+#: part/templates/part/part_base.html:238 templates/js/translated/part.js:591
+#: templates/js/translated/part.js:611 templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1527
msgid "Building"
msgstr ""
@@ -5361,7 +5389,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:328
+#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr "일련번호 검색"
@@ -5400,7 +5428,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:989
+#: templates/js/translated/bom.js:997
msgid "No supplier pricing available"
msgstr ""
@@ -5439,7 +5467,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:53
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468
+#: templates/js/translated/order.js:2001 templates/js/translated/stock.js:2464
msgid "Date"
msgstr ""
@@ -5495,7 +5523,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983
+#: part/templates/part/prices.html:160 templates/js/translated/bom.js:991
msgid "Supplier Cost"
msgstr ""
@@ -5533,8 +5561,8 @@ msgstr ""
msgid "No sale pice history available for this part."
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616
-#: templates/js/translated/part.js:1308
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:614
+#: templates/js/translated/part.js:1329 templates/js/translated/part.js:1331
msgid "No Stock"
msgstr ""
@@ -5735,19 +5763,19 @@ msgstr ""
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:186
+#: plugin/models.py:188
msgid "Plugin"
msgstr ""
-#: plugin/models.py:249
+#: plugin/models.py:253
msgid "Method"
msgstr ""
-#: plugin/plugin.py:251
+#: plugin/plugin.py:252
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:263
+#: plugin/plugin.py:264
msgid "No date found"
msgstr ""
@@ -5925,12 +5953,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:648 stock/templates/stock/item_base.html:317
+#: stock/models.py:648 stock/templates/stock/item_base.html:320
#: templates/js/translated/build.js:456 templates/js/translated/build.js:608
#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706
#: templates/js/translated/model_renderers.js:118
-#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403
-#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490
+#: templates/js/translated/order.js:121 templates/js/translated/order.js:3597
+#: templates/js/translated/order.js:3684 templates/js/translated/stock.js:490
msgid "Serial Number"
msgstr "일련번호"
@@ -5963,7 +5991,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780
-#: templates/js/translated/stock.js:2717
+#: templates/js/translated/stock.js:2713
msgid "Serial"
msgstr ""
@@ -5980,7 +6008,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
#: stock/models.py:89 stock/models.py:739
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:250
msgid "Owner"
msgstr ""
@@ -6046,7 +6074,7 @@ msgstr ""
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:631 stock/templates/stock/item_base.html:356
+#: stock/models.py:631 stock/templates/stock/item_base.html:359
msgid "Installed In"
msgstr ""
@@ -6086,8 +6114,8 @@ msgstr ""
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:706 stock/templates/stock/item_base.html:424
-#: templates/js/translated/stock.js:1883
+#: stock/models.py:706 stock/templates/stock/item_base.html:427
+#: templates/js/translated/stock.js:1879
msgid "Expiry Date"
msgstr ""
@@ -6379,7 +6407,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2857
msgid "Install Stock Item"
msgstr ""
@@ -6479,134 +6507,135 @@ msgstr ""
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:158
+#: stock/templates/stock/item_base.html:161
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:193
+#: stock/templates/stock/item_base.html:196
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:214
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:254
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/location.html:132
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:268
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:266
+#: stock/templates/stock/item_base.html:269
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:279
+#: stock/templates/stock/item_base.html:282
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:290
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:298
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:301
+#: stock/templates/stock/item_base.html:304
msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
msgstr ""
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:345
+#: stock/templates/stock/item_base.html:348
msgid "Available Quantity"
msgstr ""
-#: stock/templates/stock/item_base.html:389
+#: stock/templates/stock/item_base.html:392
#: templates/js/translated/build.js:1729
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:404
+#: stock/templates/stock/item_base.html:407
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#: templates/js/translated/table_filters.js:269
msgid "Expired"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:275
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:437
-#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899
+#: stock/templates/stock/item_base.html:440
+#: templates/js/translated/company.js:1038
+#: templates/js/translated/stock.js:1895
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:442
+#: stock/templates/stock/item_base.html:445
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:516
+#: stock/templates/stock/item_base.html:519
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:589
+#: stock/templates/stock/item_base.html:592
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:592
+#: stock/templates/stock/item_base.html:595
msgid "Warning"
msgstr "경고"
-#: stock/templates/stock/item_base.html:593
+#: stock/templates/stock/item_base.html:596
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:601
+#: stock/templates/stock/item_base.html:604
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:629
+#: stock/templates/stock/item_base.html:632
msgid "Return to Stock"
msgstr ""
@@ -6739,11 +6768,11 @@ msgstr ""
msgid "Refer to the error log in the admin interface for further details"
msgstr ""
-#: templates/503.html:11 templates/503.html:36
+#: templates/503.html:11 templates/503.html:34
msgid "Site is in Maintenance"
msgstr ""
-#: templates/503.html:42
+#: templates/503.html:40
msgid "The site is currently in maintenance and should be up again soon!"
msgstr ""
@@ -7509,7 +7538,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:644
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "확인"
@@ -7728,7 +7757,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1481
+#: templates/js/translated/bom.js:1489
msgid "Required Quantity"
msgstr ""
@@ -7742,7 +7771,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2522
+#: templates/js/translated/part.js:2551
msgid "Minimum Quantity"
msgstr ""
@@ -7947,7 +7976,7 @@ msgstr ""
#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620
#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601
#: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003
-#: templates/js/translated/order.js:1085 templates/modals.html:15
+#: templates/js/translated/order.js:1179 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -7957,12 +7986,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145
+#: templates/js/translated/order.js:960 templates/js/translated/tables.js:145
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:867
+#: templates/js/translated/order.js:961
msgid "Select file format"
msgstr ""
@@ -8058,73 +8087,73 @@ msgstr ""
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857
-#: templates/js/translated/order.js:3738
+#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1857
+#: templates/js/translated/order.js:3932
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861
+#: templates/js/translated/bom.js:940 templates/js/translated/build.js:1861
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516
+#: templates/js/translated/bom.js:942 templates/js/translated/build.js:1863
+#: templates/js/translated/part.js:761 templates/js/translated/part.js:1533
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865
+#: templates/js/translated/bom.js:944 templates/js/translated/build.js:1865
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:954
+#: templates/js/translated/bom.js:962
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:969
+#: templates/js/translated/bom.js:977
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:976
+#: templates/js/translated/bom.js:984
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145
+#: templates/js/translated/bom.js:1033 templates/js/translated/bom.js:1153
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1052
+#: templates/js/translated/bom.js:1060
msgid "Including On Order"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1124
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1118
+#: templates/js/translated/bom.js:1126
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1120
+#: templates/js/translated/bom.js:1128
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284
+#: templates/js/translated/bom.js:1130 templates/js/translated/bom.js:1292
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1124
+#: templates/js/translated/bom.js:1132
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650
+#: templates/js/translated/bom.js:1228 templates/js/translated/build.js:1650
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789
+#: templates/js/translated/bom.js:1472 templates/js/translated/build.js:1789
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1486
+#: templates/js/translated/bom.js:1498
msgid "Inherited from parent BOM"
msgstr ""
@@ -8267,12 +8296,12 @@ msgid "No required tests for this build"
msgstr ""
#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697
-#: templates/js/translated/order.js:3438
+#: templates/js/translated/order.js:3632
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698
-#: templates/js/translated/order.js:3439
+#: templates/js/translated/order.js:3633
msgid "Delete stock allocation"
msgstr ""
@@ -8292,20 +8321,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745
+#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3939
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743
+#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3937
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127
-#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757
+#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3951
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837
+#: templates/js/translated/build.js:1930 templates/js/translated/order.js:4031
msgid "Build stock"
msgstr ""
@@ -8313,21 +8342,21 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830
+#: templates/js/translated/build.js:1937 templates/js/translated/order.js:4024
msgid "Allocate stock"
msgstr ""
#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965
+#: templates/js/translated/order.js:1007 templates/js/translated/order.js:3159
#: templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966
+#: templates/js/translated/build.js:1977 templates/js/translated/order.js:3160
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914
+#: templates/js/translated/build.js:2026 templates/js/translated/order.js:3108
msgid "Specify stock allocation quantity"
msgstr ""
@@ -8339,7 +8368,7 @@ msgstr ""
msgid "All selected parts have been fully allocated"
msgstr ""
-#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980
+#: templates/js/translated/build.js:2115 templates/js/translated/order.js:3174
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
@@ -8347,11 +8376,11 @@ msgstr ""
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077
+#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3271
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154
+#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3348
msgid "No matching stock items"
msgstr ""
@@ -8383,9 +8412,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401
-#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1422
+#: templates/js/translated/part.js:1948 templates/js/translated/stock.js:1686
+#: templates/js/translated/stock.js:2382
msgid "Select"
msgstr "선택"
@@ -8397,7 +8426,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647
+#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2643
msgid "No user information"
msgstr ""
@@ -8405,111 +8434,115 @@ msgstr ""
msgid "No parts allocated for"
msgstr ""
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:179
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:181
msgid "Add Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
msgid "Edit Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:167 templates/js/translated/order.js:511
+#: templates/js/translated/company.js:169 templates/js/translated/order.js:576
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:195 templates/js/translated/order.js:734
+#: templates/js/translated/company.js:197 templates/js/translated/order.js:828
msgid "Add Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:262
+#: templates/js/translated/company.js:297
msgid "All selected supplier parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:278
+#: templates/js/translated/company.js:313
msgid "Delete Supplier Parts"
msgstr ""
-#: templates/js/translated/company.js:350
+#: templates/js/translated/company.js:385
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:427
+#: templates/js/translated/company.js:462
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:471
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:451
+#: templates/js/translated/company.js:486
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:492
+#: templates/js/translated/company.js:527
msgid "All selected manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:507
+#: templates/js/translated/company.js:542
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:541
+#: templates/js/translated/company.js:576
msgid "All selected parameters will be deleted"
msgstr ""
-#: templates/js/translated/company.js:555
+#: templates/js/translated/company.js:590
msgid "Delete Parameters"
msgstr ""
-#: templates/js/translated/company.js:596
+#: templates/js/translated/company.js:631
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:616
-#: templates/js/translated/company.js:876 templates/js/translated/part.js:638
-#: templates/js/translated/part.js:723
+#: templates/js/translated/company.js:651
+#: templates/js/translated/company.js:912 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:721
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:620
-#: templates/js/translated/company.js:880 templates/js/translated/part.js:642
-#: templates/js/translated/part.js:727
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:916 templates/js/translated/part.js:640
+#: templates/js/translated/part.js:725
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:748 templates/js/translated/part.js:830
+#: templates/js/translated/company.js:783 templates/js/translated/part.js:828
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:785 templates/js/translated/part.js:872
+#: templates/js/translated/company.js:820 templates/js/translated/part.js:870
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:786 templates/js/translated/part.js:873
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:871
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:805 templates/js/translated/part.js:890
+#: templates/js/translated/company.js:840 templates/js/translated/part.js:888
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:816 templates/js/translated/part.js:902
+#: templates/js/translated/company.js:851 templates/js/translated/part.js:900
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:856
+#: templates/js/translated/company.js:891
msgid "No supplier parts found"
msgstr ""
-#: templates/js/translated/company.js:1002
+#: templates/js/translated/company.js:1032
+msgid "Availability"
+msgstr ""
+
+#: templates/js/translated/company.js:1055
msgid "Edit supplier part"
msgstr ""
-#: templates/js/translated/company.js:1003
+#: templates/js/translated/company.js:1056
msgid "Delete supplier part"
msgstr ""
@@ -8547,61 +8580,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:367 templates/js/translated/forms.js:382
-#: templates/js/translated/forms.js:396 templates/js/translated/forms.js:410
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:369
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:384
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:398
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:670
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:771
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1269 templates/modals.html:19
+#: templates/js/translated/forms.js:1274 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1702
+#: templates/js/translated/forms.js:1707
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1917 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2170
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2648
+#: templates/js/translated/forms.js:2653
msgid "Select Columns"
msgstr ""
@@ -8792,409 +8825,422 @@ msgstr ""
msgid "Notifications will load here"
msgstr ""
-#: templates/js/translated/order.js:96
+#: templates/js/translated/order.js:97
msgid "No stock items have been allocated to this shipment"
msgstr ""
-#: templates/js/translated/order.js:101
+#: templates/js/translated/order.js:102
msgid "The following stock items will be shipped"
msgstr ""
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:142
msgid "Complete Shipment"
msgstr ""
-#: templates/js/translated/order.js:161
+#: templates/js/translated/order.js:162
msgid "Confirm Shipment"
msgstr ""
-#: templates/js/translated/order.js:217
+#: templates/js/translated/order.js:218
msgid "No pending shipments found"
msgstr ""
-#: templates/js/translated/order.js:221
+#: templates/js/translated/order.js:222
msgid "No stock items have been allocated to pending shipments"
msgstr ""
-#: templates/js/translated/order.js:253
+#: templates/js/translated/order.js:254
msgid "Skip"
msgstr ""
-#: templates/js/translated/order.js:283
+#: templates/js/translated/order.js:284
msgid "Complete Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:289
+#: templates/js/translated/order.js:301 templates/js/translated/order.js:413
msgid "Mark this order as complete?"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:307
msgid "All line items have been received"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:312
msgid "This order has line items which have not been marked as received."
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:313 templates/js/translated/order.js:427
msgid "Completing this order means that the order and line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:324
+#: templates/js/translated/order.js:336
msgid "Cancel Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:329
+#: templates/js/translated/order.js:341
msgid "Are you sure you wish to cancel this purchase order?"
msgstr ""
-#: templates/js/translated/order.js:335
+#: templates/js/translated/order.js:347
msgid "This purchase order can not be cancelled"
msgstr ""
-#: templates/js/translated/order.js:358
+#: templates/js/translated/order.js:370
msgid "Issue Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:363
+#: templates/js/translated/order.js:375
msgid "After placing this purchase order, line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:385
+#: templates/js/translated/order.js:426
+msgid "This order has line items which have not been completed."
+msgstr ""
+
+#: templates/js/translated/order.js:450
msgid "Cancel Sales Order"
msgstr ""
-#: templates/js/translated/order.js:390
+#: templates/js/translated/order.js:455
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:444
+#: templates/js/translated/order.js:509
msgid "Create New Shipment"
msgstr ""
-#: templates/js/translated/order.js:469
+#: templates/js/translated/order.js:534
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:494
+#: templates/js/translated/order.js:559
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:555
+#: templates/js/translated/order.js:620
msgid "Select purchase order to duplicate"
msgstr ""
-#: templates/js/translated/order.js:562
+#: templates/js/translated/order.js:627
msgid "Duplicate Line Items"
msgstr ""
-#: templates/js/translated/order.js:563
+#: templates/js/translated/order.js:628
msgid "Duplicate all line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:570
+#: templates/js/translated/order.js:635
msgid "Duplicate Extra Lines"
msgstr ""
-#: templates/js/translated/order.js:571
+#: templates/js/translated/order.js:636
msgid "Duplicate extra line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:588
+#: templates/js/translated/order.js:653
msgid "Edit Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:605
+#: templates/js/translated/order.js:670
msgid "Duplication Options"
msgstr ""
-#: templates/js/translated/order.js:863
+#: templates/js/translated/order.js:957
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:914
+#: templates/js/translated/order.js:1008
msgid "At least one purchaseable part must be selected"
msgstr ""
-#: templates/js/translated/order.js:939
+#: templates/js/translated/order.js:1033
msgid "Quantity to order"
msgstr ""
-#: templates/js/translated/order.js:948
+#: templates/js/translated/order.js:1042
msgid "New supplier part"
msgstr ""
-#: templates/js/translated/order.js:966
+#: templates/js/translated/order.js:1060
msgid "New purchase order"
msgstr ""
-#: templates/js/translated/order.js:999
+#: templates/js/translated/order.js:1093
msgid "Add to purchase order"
msgstr ""
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1233
msgid "No matching supplier parts"
msgstr ""
-#: templates/js/translated/order.js:1123
+#: templates/js/translated/order.js:1252
msgid "No matching purchase orders"
msgstr ""
-#: templates/js/translated/order.js:1300
+#: templates/js/translated/order.js:1429
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1430
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420
+#: templates/js/translated/order.js:1450 templates/js/translated/order.js:1563
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431
+#: templates/js/translated/order.js:1456 templates/js/translated/order.js:1574
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1339
+#: templates/js/translated/order.js:1471
+msgid "Received Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:1482
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144
+#: templates/js/translated/order.js:1546 templates/js/translated/stock.js:2140
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:1494
+#: templates/js/translated/order.js:1639
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:1495
+#: templates/js/translated/order.js:1640
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:1497
+#: templates/js/translated/order.js:1642
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:1516
+#: templates/js/translated/order.js:1661
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:1517
+#: templates/js/translated/order.js:1662
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943
+#: templates/js/translated/order.js:1940 templates/js/translated/part.js:941
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2803
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674
-#: templates/js/translated/order.js:2815
+#: templates/js/translated/order.js:2017 templates/js/translated/order.js:2868
+#: templates/js/translated/order.js:3009
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889
+#: templates/js/translated/order.js:2115 templates/js/translated/order.js:4083
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911
+#: templates/js/translated/order.js:2132 templates/js/translated/order.js:4105
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:4116
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:2026
+#: templates/js/translated/order.js:2188
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:2215 templates/js/translated/order.js:3817
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309
-#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156
-#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753
+#: templates/js/translated/order.js:2270 templates/js/translated/part.js:1043
+#: templates/js/translated/part.js:1095
+msgid "Total Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:2301 templates/js/translated/order.js:2503
+#: templates/js/translated/order.js:3842 templates/js/translated/order.js:4350
+#: templates/js/translated/part.js:2184 templates/js/translated/part.js:2782
msgid "Unit Price"
msgstr "단가"
-#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325
-#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172
+#: templates/js/translated/order.js:2316 templates/js/translated/order.js:2519
+#: templates/js/translated/order.js:3858 templates/js/translated/order.js:4366
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706
-#: templates/js/translated/part.js:1070
+#: templates/js/translated/order.js:2357 templates/js/translated/order.js:3900
+#: templates/js/translated/part.js:1079
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110
+#: templates/js/translated/order.js:2416 templates/js/translated/part.js:1130
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2420 templates/js/translated/order.js:4037
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844
+#: templates/js/translated/order.js:2421 templates/js/translated/order.js:4038
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848
+#: templates/js/translated/order.js:2422 templates/js/translated/order.js:4042
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221
+#: templates/js/translated/order.js:2568 templates/js/translated/order.js:4415
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222
+#: templates/js/translated/order.js:2569 templates/js/translated/order.js:4416
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223
+#: templates/js/translated/order.js:2570 templates/js/translated/order.js:4417
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253
+#: templates/js/translated/order.js:2600 templates/js/translated/order.js:4447
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274
+#: templates/js/translated/order.js:2621 templates/js/translated/order.js:4468
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285
+#: templates/js/translated/order.js:2632 templates/js/translated/order.js:4479
msgid "Delete Line"
msgstr ""
-#: templates/js/translated/order.js:2449
+#: templates/js/translated/order.js:2643
msgid "No matching line"
msgstr ""
-#: templates/js/translated/order.js:2560
+#: templates/js/translated/order.js:2754
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:2623
+#: templates/js/translated/order.js:2817
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:2721
+#: templates/js/translated/order.js:2915
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:2724
+#: templates/js/translated/order.js:2918
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:2729
+#: templates/js/translated/order.js:2923
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:2749
+#: templates/js/translated/order.js:2943
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:2766
+#: templates/js/translated/order.js:2960
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:2800
+#: templates/js/translated/order.js:2994
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:2810
+#: templates/js/translated/order.js:3004
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:2834
+#: templates/js/translated/order.js:3028
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:2840
+#: templates/js/translated/order.js:3034
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:2844
+#: templates/js/translated/order.js:3038
msgid "Invoice"
msgstr ""
-#: templates/js/translated/order.js:3013
+#: templates/js/translated/order.js:3207
msgid "Add Shipment"
msgstr ""
-#: templates/js/translated/order.js:3064
+#: templates/js/translated/order.js:3258
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/order.js:3065
+#: templates/js/translated/order.js:3259
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:3273
+#: templates/js/translated/order.js:3467
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:3352
+#: templates/js/translated/order.js:3546
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3369
+#: templates/js/translated/order.js:3563
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:3370
+#: templates/js/translated/order.js:3564
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504
+#: templates/js/translated/order.js:3609 templates/js/translated/order.js:3698
#: templates/js/translated/stock.js:1602
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513
+#: templates/js/translated/order.js:3617 templates/js/translated/order.js:3707
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3827
+#: templates/js/translated/order.js:4021
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3833
+#: templates/js/translated/order.js:4027
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038
+#: templates/js/translated/order.js:4034 templates/js/translated/order.js:4232
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3852
+#: templates/js/translated/order.js:4046
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3855
+#: templates/js/translated/order.js:4049
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3937
+#: templates/js/translated/order.js:4131
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:4046
+#: templates/js/translated/order.js:4240
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:4060
+#: templates/js/translated/order.js:4254
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4296
+#: templates/js/translated/order.js:4490
msgid "No matching lines"
msgstr ""
@@ -9374,173 +9420,177 @@ msgstr ""
msgid "Copy Bill of Materials"
msgstr "부품 명세서 복사"
-#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498
+#: templates/js/translated/part.js:584 templates/js/translated/part.js:1515
#: templates/js/translated/table_filters.js:468
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:596
+#: templates/js/translated/part.js:594
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:715
+#: templates/js/translated/part.js:628 templates/js/translated/part.js:713
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:634 templates/js/translated/part.js:719
+#: templates/js/translated/part.js:632 templates/js/translated/part.js:717
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:646
+#: templates/js/translated/part.js:644
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:650
+#: templates/js/translated/part.js:648
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:778
+#: templates/js/translated/part.js:776
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1180
+#: templates/js/translated/part.js:1200
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1204
+#: templates/js/translated/part.js:1224
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573
+#: templates/js/translated/part.js:1291 templates/js/translated/part.js:1602
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1310
-msgid "Not available"
-msgstr ""
-
-#: templates/js/translated/part.js:1461
+#: templates/js/translated/part.js:1482
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1496
+#: templates/js/translated/part.js:1513
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840
-#: templates/js/translated/stock.js:2347
+#: templates/js/translated/part.js:1537
+msgid "Allocated to build orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1541
+msgid "Allocated to sales orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1626 templates/js/translated/part.js:1869
+#: templates/js/translated/stock.js:2343
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1613
+#: templates/js/translated/part.js:1642
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1679
+#: templates/js/translated/part.js:1708
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1684
+#: templates/js/translated/part.js:1713
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:1689
+#: templates/js/translated/part.js:1718
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1702
+#: templates/js/translated/part.js:1731
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366
+#: templates/js/translated/part.js:1888 templates/js/translated/stock.js:2362
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1938
+#: templates/js/translated/part.js:1967
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:1954
+#: templates/js/translated/part.js:1983
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2012
+#: templates/js/translated/part.js:2041
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299
+#: templates/js/translated/part.js:2092 templates/js/translated/stock.js:1299
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300
+#: templates/js/translated/part.js:2093 templates/js/translated/stock.js:1300
#: templates/js/translated/stock.js:1560
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2070
+#: templates/js/translated/part.js:2099
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2092
+#: templates/js/translated/part.js:2121
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2106
+#: templates/js/translated/part.js:2135
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2131
+#: templates/js/translated/part.js:2160
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:2188
+#: templates/js/translated/part.js:2217
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2189
+#: templates/js/translated/part.js:2218
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355
+#: templates/js/translated/part.js:2383 templates/js/translated/part.js:2384
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2357
+#: templates/js/translated/part.js:2386
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2363
+#: templates/js/translated/part.js:2392
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2413
+#: templates/js/translated/part.js:2442
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2419
+#: templates/js/translated/part.js:2448
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2515
+#: templates/js/translated/part.js:2544
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2531
+#: templates/js/translated/part.js:2560
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2576
+#: templates/js/translated/part.js:2605
msgid "Minimum Stock Level"
msgstr ""
-#: templates/js/translated/part.js:2677
+#: templates/js/translated/part.js:2706
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:2696
+#: templates/js/translated/part.js:2725
msgid "Single Price Difference"
msgstr ""
@@ -9778,7 +9828,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:942 users/models.py:216
+#: templates/js/translated/stock.js:942 users/models.py:218
msgid "Add"
msgstr ""
@@ -9854,156 +9904,156 @@ msgstr ""
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1775
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1780
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1787
+#: templates/js/translated/stock.js:1783
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1790
+#: templates/js/translated/stock.js:1786
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1792
+#: templates/js/translated/stock.js:1788
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1794
+#: templates/js/translated/stock.js:1790
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1797
+#: templates/js/translated/stock.js:1793
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1797
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1803
+#: templates/js/translated/stock.js:1799
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1810
+#: templates/js/translated/stock.js:1806
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:1808
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1814
+#: templates/js/translated/stock.js:1810
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1818
+#: templates/js/translated/stock.js:1814
#: templates/js/translated/table_filters.js:196
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1869
+#: templates/js/translated/stock.js:1865
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1948
+#: templates/js/translated/stock.js:1944
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1986
+#: templates/js/translated/stock.js:1982
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2159
+#: templates/js/translated/stock.js:2155
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2173
+#: templates/js/translated/stock.js:2169
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2174
+#: templates/js/translated/stock.js:2170
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2404
+#: templates/js/translated/stock.js:2400
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2493
+#: templates/js/translated/stock.js:2489
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2509
+#: templates/js/translated/stock.js:2505
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2531
+#: templates/js/translated/stock.js:2527
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2550
+#: templates/js/translated/stock.js:2546
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2569
+#: templates/js/translated/stock.js:2565
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2587
+#: templates/js/translated/stock.js:2583
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2610
+#: templates/js/translated/stock.js:2606
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2618
+#: templates/js/translated/stock.js:2614
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2694
+#: templates/js/translated/stock.js:2690
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781
+#: templates/js/translated/stock.js:2741 templates/js/translated/stock.js:2777
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2790
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2815
+#: templates/js/translated/stock.js:2811
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2816
+#: templates/js/translated/stock.js:2812
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2818
+#: templates/js/translated/stock.js:2814
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2819
+#: templates/js/translated/stock.js:2815
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2820
+#: templates/js/translated/stock.js:2816
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2821
+#: templates/js/translated/stock.js:2817
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2834
+#: templates/js/translated/stock.js:2830
msgid "Select part to install"
msgstr ""
@@ -10525,35 +10575,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:203
+#: users/models.py:205
msgid "Permission set"
msgstr ""
-#: users/models.py:211
+#: users/models.py:213
msgid "Group"
msgstr ""
-#: users/models.py:214
+#: users/models.py:216
msgid "View"
msgstr ""
-#: users/models.py:214
+#: users/models.py:216
msgid "Permission to view items"
msgstr ""
-#: users/models.py:216
+#: users/models.py:218
msgid "Permission to add items"
msgstr ""
-#: users/models.py:218
+#: users/models.py:220
msgid "Change"
msgstr ""
-#: users/models.py:218
+#: users/models.py:220
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:222
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/nl/LC_MESSAGES/django.po b/InvenTree/locale/nl/LC_MESSAGES/django.po
index 24ddd8239f..ab48313778 100644
--- a/InvenTree/locale/nl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/nl/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-08-25 10:08+0000\n"
-"PO-Revision-Date: 2022-08-26 01:55\n"
+"POT-Creation-Date: 2022-09-09 02:44+0000\n"
+"PO-Revision-Date: 2022-09-09 03:57\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
"Language: nl_NL\n"
@@ -29,9 +29,9 @@ msgstr "Error details kunnen worden gevonden in het admin scherm"
msgid "Enter date"
msgstr "Voer datum in"
-#: InvenTree/fields.py:186 build/serializers.py:384
-#: build/templates/build/sidebar.html:21 company/models.py:523
-#: company/templates/company/sidebar.html:25 order/models.py:906
+#: InvenTree/fields.py:183 build/serializers.py:384
+#: build/templates/build/sidebar.html:21 company/models.py:524
+#: company/templates/company/sidebar.html:25 order/models.py:910
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17
#: part/templates/part/part_sidebar.html:59
@@ -40,11 +40,12 @@ msgstr "Voer datum in"
#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823
#: stock/serializers.py:922 stock/serializers.py:1054
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099
-#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210
-#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859
-#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208
-#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1107
+#: templates/js/translated/company.js:1022
+#: templates/js/translated/order.js:2404 templates/js/translated/order.js:2555
+#: templates/js/translated/order.js:3053 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:4402 templates/js/translated/stock.js:1374
+#: templates/js/translated/stock.js:1976
msgid "Notes"
msgstr "Opmerkingen"
@@ -210,12 +211,12 @@ msgid "Select file to attach"
msgstr "Bestand als bijlage selecteren"
#: InvenTree/models.py:402 company/models.py:124 company/models.py:276
-#: company/models.py:510 order/models.py:84 order/models.py:1245
+#: company/models.py:511 order/models.py:84 order/models.py:1249
#: part/models.py:802 part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
-#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848
-#: templates/js/translated/part.js:1534
+#: templates/js/translated/company.js:691
+#: templates/js/translated/company.js:1011
+#: templates/js/translated/order.js:3042 templates/js/translated/part.js:1563
msgid "Link"
msgstr "Link"
@@ -233,12 +234,12 @@ msgstr "Opmerking"
msgid "File comment"
msgstr "Bestand opmerking"
-#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665
-#: common/models.py:1666 common/models.py:1889 common/models.py:1890
-#: common/models.py:2152 common/models.py:2153 part/models.py:2239
-#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257
+#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1669
+#: common/models.py:1670 common/models.py:1893 common/models.py:1894
+#: common/models.py:2156 common/models.py:2157 part/models.py:2247
+#: part/models.py:2267 plugin/models.py:260 plugin/models.py:261
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2641
+#: templates/js/translated/stock.js:2637
msgid "User"
msgstr "Gebruiker"
@@ -275,28 +276,28 @@ msgstr "Fout bij hernoemen bestand"
msgid "Invalid choice"
msgstr "Ongeldige keuze"
-#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875
+#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1879
#: company/models.py:358 label/models.py:101 part/models.py:746
-#: part/models.py:2417 plugin/models.py:94 report/models.py:152
+#: part/models.py:2425 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin.html:134
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:347
-#: templates/js/translated/company.js:545
-#: templates/js/translated/company.js:758
+#: templates/js/translated/company.js:580
+#: templates/js/translated/company.js:793
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:688 templates/js/translated/part.js:840
-#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392
+#: templates/js/translated/part.js:686 templates/js/translated/part.js:838
+#: templates/js/translated/part.js:1955 templates/js/translated/stock.js:2388
msgid "Name"
msgstr "Naam"
#: InvenTree/models.py:544 build/models.py:174
#: build/templates/build/detail.html:24 company/models.py:282
-#: company/models.py:516 company/templates/company/company_base.html:71
+#: company/models.py:517 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:87 label/models.py:108
-#: order/models.py:82 part/models.py:769 part/models.py:2429
+#: company/templates/company/supplier_part.html:92 label/models.py:108
+#: order/models.py:82 part/models.py:769 part/models.py:2437
#: part/templates/part/category.html:80 part/templates/part/part_base.html:167
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
@@ -305,14 +306,14 @@ msgstr "Naam"
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/InvenTree/settings/settings.html:358
#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846
-#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409
-#: templates/js/translated/company.js:667
-#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637
-#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167
-#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962
-#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743
-#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478
+#: templates/js/translated/build.js:2512 templates/js/translated/company.js:444
+#: templates/js/translated/company.js:702
+#: templates/js/translated/company.js:986 templates/js/translated/order.js:1988
+#: templates/js/translated/order.js:2220 templates/js/translated/order.js:2831
+#: templates/js/translated/part.js:745 templates/js/translated/part.js:1187
+#: templates/js/translated/part.js:1463 templates/js/translated/part.js:1991
+#: templates/js/translated/part.js:2060 templates/js/translated/stock.js:1743
+#: templates/js/translated/stock.js:2420 templates/js/translated/stock.js:2474
msgid "Description"
msgstr "Omschrijving"
@@ -325,7 +326,7 @@ msgid "parent"
msgstr "bovenliggende"
#: InvenTree/models.py:560 InvenTree/models.py:561
-#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:2426
msgid "Path"
msgstr "Pad"
@@ -337,7 +338,7 @@ msgstr "Serverfout"
msgid "An error has been logged by the server."
msgstr "Er is een fout gelogd door de server."
-#: InvenTree/serializers.py:55 part/models.py:2745
+#: InvenTree/serializers.py:55 part/models.py:2753
msgid "Must be a valid number"
msgstr "Moet een geldig nummer zijn"
@@ -522,7 +523,7 @@ msgid "Placed"
msgstr "Geplaatst"
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr "Voltooid"
@@ -542,8 +543,8 @@ msgstr "Kwijt"
msgid "Returned"
msgstr "Retour"
-#: InvenTree/status_codes.py:141 order/models.py:1128
-#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785
+#: InvenTree/status_codes.py:141 order/models.py:1132
+#: templates/js/translated/order.js:3630 templates/js/translated/order.js:3979
msgid "Shipped"
msgstr "Verzonden"
@@ -627,7 +628,7 @@ msgstr "Splits van bovenliggend item"
msgid "Split child item"
msgstr "Splits onderliggende item"
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080
msgid "Merged stock items"
msgstr "Samengevoegde voorraadartikelen"
@@ -717,7 +718,7 @@ msgstr "Systeeminformatie"
msgid "About InvenTree"
msgstr "Over InvenTree"
-#: build/api.py:217
+#: build/api.py:219
msgid "Build must be cancelled before it can be deleted"
msgstr "Productie moet geannuleerd worden voordat het kan worden verwijderd"
@@ -748,15 +749,15 @@ msgstr "Productieorders"
msgid "Build Order Reference"
msgstr "Productieorderreferentie"
-#: build/models.py:166 order/models.py:240 order/models.py:623
-#: order/models.py:904 part/models.py:2663
+#: build/models.py:166 order/models.py:240 order/models.py:627
+#: order/models.py:908 part/models.py:2671
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853
-#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089
-#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629
-#: templates/js/translated/order.js:4137
+#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2251
+#: templates/js/translated/order.js:2484 templates/js/translated/order.js:3823
+#: templates/js/translated/order.js:4331
msgid "Reference"
msgstr "Referentie"
@@ -774,12 +775,12 @@ msgid "BuildOrder to which this build is allocated"
msgstr "Productieorder waar deze productie aan is toegewezen"
#: build/models.py:191 build/templates/build/build_base.html:80
-#: build/templates/build/detail.html:29 company/models.py:670
-#: order/models.py:1001 order/models.py:1112 order/models.py:1113
-#: part/models.py:343 part/models.py:2185 part/models.py:2200
-#: part/models.py:2219 part/models.py:2237 part/models.py:2336
-#: part/models.py:2463 part/models.py:2553 part/models.py:2638
-#: part/models.py:2914 part/serializers.py:814
+#: build/templates/build/detail.html:29 company/models.py:679
+#: order/models.py:1005 order/models.py:1116 order/models.py:1117
+#: part/models.py:343 part/models.py:2193 part/models.py:2208
+#: part/models.py:2227 part/models.py:2245 part/models.py:2344
+#: part/models.py:2471 part/models.py:2561 part/models.py:2646
+#: part/models.py:2922 part/serializers.py:814
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -795,18 +796,18 @@ msgstr "Productieorder waar deze productie aan is toegewezen"
#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800
#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682
#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517
-#: templates/js/translated/company.js:266
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:608
-#: templates/js/translated/company.js:868 templates/js/translated/order.js:105
-#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493
-#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613
-#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224
-#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586
+#: templates/js/translated/company.js:301
+#: templates/js/translated/company.js:531
+#: templates/js/translated/company.js:643
+#: templates/js/translated/company.js:904 templates/js/translated/order.js:106
+#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1638
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:3185
+#: templates/js/translated/order.js:3581 templates/js/translated/order.js:3807
+#: templates/js/translated/part.js:1172 templates/js/translated/part.js:1244
+#: templates/js/translated/part.js:1441 templates/js/translated/stock.js:586
#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504
-#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833
+#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2500
+#: templates/js/translated/stock.js:2695 templates/js/translated/stock.js:2829
msgid "Part"
msgstr "Onderdeel"
@@ -823,7 +824,7 @@ msgid "SalesOrder to which this build is allocated"
msgstr "Verkooporder waar deze productie aan is toegewezen"
#: build/models.py:213 build/serializers.py:800
-#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979
+#: templates/js/translated/build.js:2114 templates/js/translated/order.js:3173
msgid "Source Location"
msgstr "Bronlocatie"
@@ -863,8 +864,8 @@ msgstr "Productiestatus"
msgid "Build status code"
msgstr "Productiestatuscode"
-#: build/models.py:251 build/serializers.py:225 order/serializers.py:447
-#: stock/models.py:662 templates/js/translated/order.js:1353
+#: build/models.py:251 build/serializers.py:225 order/serializers.py:464
+#: stock/models.py:662 templates/js/translated/order.js:1496
msgid "Batch Code"
msgstr "Batchcode"
@@ -873,11 +874,11 @@ msgid "Batch code for this build output"
msgstr "Batchcode voor deze productieuitvoer"
#: build/models.py:258 order/models.py:86 part/models.py:938
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2844
msgid "Creation Date"
msgstr "Aanmaakdatum"
-#: build/models.py:262 order/models.py:648
+#: build/models.py:262 order/models.py:652
msgid "Target completion date"
msgstr "Verwachte opleveringsdatum"
@@ -904,10 +905,10 @@ msgstr "Gebruiker die de productieorder heeft gegeven"
#: build/models.py:289 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:100
-#: order/templates/order/order_base.html:179
+#: order/templates/order/order_base.html:185
#: order/templates/order/sales_order_base.html:183 part/models.py:942
#: report/templates/report/inventree_build_order_base.html:158
-#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860
+#: templates/js/translated/build.js:2574 templates/js/translated/order.js:2022
msgid "Responsible"
msgstr "Verantwoordelijke"
@@ -917,9 +918,9 @@ msgstr "Gebruiker verantwoordelijk voor deze productieorder"
#: build/models.py:295 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
-#: company/templates/company/supplier_part.html:153
+#: company/templates/company/supplier_part.html:165
#: part/templates/part/part_base.html:346 stock/models.py:656
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr "Externe Link"
@@ -957,11 +958,11 @@ msgstr "Productieartikel moet een productieuitvoer specificeren, omdat het hoofd
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Toegewezen hoeveelheid ({q}) mag de beschikbare voorraad ({a}) niet overschrijden"
-#: build/models.py:1188 order/models.py:1379
+#: build/models.py:1188 order/models.py:1383
msgid "Stock item is over-allocated"
msgstr "Voorraad item is te veel toegewezen"
-#: build/models.py:1194 order/models.py:1382
+#: build/models.py:1194 order/models.py:1386
msgid "Allocation quantity must be greater than zero"
msgstr "Toewijzing hoeveelheid moet groter zijn dan nul"
@@ -973,7 +974,7 @@ msgstr "Hoeveelheid moet 1 zijn voor geserialiseerde voorraad"
msgid "Selected stock item not found in BOM"
msgstr "Geselecteerd voorraadartikel niet gevonden in stuklijst"
-#: build/models.py:1326 stock/templates/stock/item_base.html:172
+#: build/models.py:1326 stock/templates/stock/item_base.html:175
#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496
#: templates/navbar.html:38
msgid "Build"
@@ -983,18 +984,18 @@ msgstr "Product"
msgid "Build to allocate parts"
msgstr "Product om onderdelen toe te wijzen"
-#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015
-#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754
+#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1035
+#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754
#: stock/serializers.py:880 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:197
#: templates/js/translated/build.js:774 templates/js/translated/build.js:779
#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679
-#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992
-#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299
-#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486
+#: templates/js/translated/order.js:107 templates/js/translated/order.js:3186
+#: templates/js/translated/order.js:3488 templates/js/translated/order.js:3493
+#: templates/js/translated/order.js:3588 templates/js/translated/order.js:3680
#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752
-#: templates/js/translated/stock.js:2577
+#: templates/js/translated/stock.js:2573
msgid "Stock Item"
msgstr "Voorraadartikel"
@@ -1004,11 +1005,11 @@ msgstr "Bron voorraadartikel"
#: build/models.py:1356 build/serializers.py:193
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1697
-#: company/templates/company/supplier_part.html:279 order/models.py:897
-#: order/models.py:1423 order/serializers.py:1155
+#: build/templates/build/detail.html:34 common/models.py:1701
+#: company/templates/company/supplier_part.html:291 order/models.py:901
+#: order/models.py:1427 order/serializers.py:1209
#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40
-#: part/models.py:2654 part/templates/part/detail.html:951
+#: part/models.py:2662 part/templates/part/detail.html:951
#: part/templates/part/detail.html:1037
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -1017,8 +1018,8 @@ msgstr "Bron voorraadartikel"
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:291 stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
+#: stock/serializers.py:291 stock/templates/stock/item_base.html:290
+#: stock/templates/stock/item_base.html:298
#: templates/email/build_order_completed.html:18
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691
#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458
@@ -1026,16 +1027,16 @@ msgstr "Bron voorraadartikel"
#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708
#: templates/js/translated/build.js:2129
#: templates/js/translated/model_renderers.js:120
-#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043
-#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313
-#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492
-#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143
-#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176
-#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686
-#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458
+#: templates/js/translated/order.js:123 templates/js/translated/order.js:1137
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:2490
+#: templates/js/translated/order.js:3187 templates/js/translated/order.js:3507
+#: templates/js/translated/order.js:3594 templates/js/translated/order.js:3686
+#: templates/js/translated/order.js:3829 templates/js/translated/order.js:4337
+#: templates/js/translated/part.js:1036 templates/js/translated/part.js:2205
+#: templates/js/translated/part.js:2674 templates/js/translated/part.js:2715
+#: templates/js/translated/part.js:2793 templates/js/translated/stock.js:458
#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782
-#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2707
msgid "Quantity"
msgstr "Hoeveelheid"
@@ -1077,7 +1078,7 @@ msgid "Enter quantity for build output"
msgstr "Voer hoeveelheid in voor productie uitvoer"
#: build/serializers.py:208 build/serializers.py:665 order/models.py:318
-#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545
+#: order/serializers.py:304 order/serializers.py:459 part/serializers.py:545
#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251
#: stock/serializers.py:300
msgid "Quantity must be greater than zero"
@@ -1091,8 +1092,8 @@ msgstr "Hoeveelheid als geheel getal vereist voor traceerbare onderdelen"
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr "Geheel getal vereist omdat de stuklijst traceerbare onderdelen bevat"
-#: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159
-#: stock/serializers.py:309 templates/js/translated/order.js:1364
+#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213
+#: stock/serializers.py:309 templates/js/translated/order.js:1507
#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459
msgid "Serial Numbers"
msgstr "Serienummers"
@@ -1117,18 +1118,18 @@ msgstr "De volgende serienummers bestaan al"
msgid "A list of build outputs must be provided"
msgstr "Een lijst van productieuitvoeren moet worden verstrekt"
-#: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532
+#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552
#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532
#: stock/serializers.py:915 stock/serializers.py:1148
-#: stock/templates/stock/item_base.html:385
+#: stock/templates/stock/item_base.html:388
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786
-#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391
-#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411
-#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500
+#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1534
+#: templates/js/translated/order.js:3500 templates/js/translated/order.js:3605
+#: templates/js/translated/order.js:3613 templates/js/translated/order.js:3694
#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588
#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960
-#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2514
msgid "Location"
msgstr "Locatie"
@@ -1137,12 +1138,12 @@ msgid "Location for completed build outputs"
msgstr "Locatie van voltooide productieuitvoeren"
#: build/serializers.py:373 build/templates/build/build_base.html:145
-#: build/templates/build/detail.html:62 order/models.py:642
-#: order/serializers.py:465 stock/templates/stock/item_base.html:418
+#: build/templates/build/detail.html:62 order/models.py:646
+#: order/serializers.py:482 stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546
-#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830
-#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829
-#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727
+#: templates/js/translated/order.js:1643 templates/js/translated/order.js:1992
+#: templates/js/translated/order.js:2836 templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:2591 templates/js/translated/stock.js:2723
msgid "Status"
msgstr "Status"
@@ -1202,7 +1203,7 @@ msgstr "Accepteer dat voorraadartikelen niet volledig zijn toegewezen aan deze p
msgid "Required stock has not been fully allocated"
msgstr "Vereiste voorraad is niet volledig toegewezen"
-#: build/serializers.py:527
+#: build/serializers.py:527 order/serializers.py:208 order/serializers.py:1103
msgid "Accept Incomplete"
msgstr "Accepteer Onvolledig"
@@ -1218,8 +1219,8 @@ msgstr "Vereiste productiehoeveelheid is voltooid"
msgid "Build order has incomplete outputs"
msgstr "Productieorder heeft onvolledige uitvoeren"
-#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772
-#: part/models.py:2906
+#: build/serializers.py:577 build/serializers.py:622 part/models.py:2780
+#: part/models.py:2914
msgid "BOM Item"
msgstr "Stuklijstartikel"
@@ -1239,7 +1240,7 @@ msgstr "bom_item.part moet naar hetzelfde onderdeel wijzen als de productieorder
msgid "Item must be in stock"
msgstr "Artikel moet op voorraad zijn"
-#: build/serializers.py:709 order/serializers.py:1073
+#: build/serializers.py:709 order/serializers.py:1093
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Beschikbare hoeveelheid ({q}) overschreden"
@@ -1256,7 +1257,7 @@ msgstr "Productieuitvoer kan niet worden gespecificeerd voor de toewijzing van n
msgid "This stock item has already been allocated to this build output"
msgstr "Dit voorraadartikel is al toegewezen aan deze productieoutput"
-#: build/serializers.py:750 order/serializers.py:1319
+#: build/serializers.py:750 order/serializers.py:1373
msgid "Allocation items must be provided"
msgstr "Allocaties voor artikelen moeten worden opgegeven"
@@ -1371,13 +1372,13 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr "Voorraad is niet volledig toegewezen aan deze productieorder"
#: build/templates/build/build_base.html:154
-#: build/templates/build/detail.html:131 order/models.py:910
-#: order/templates/order/order_base.html:165
+#: build/templates/build/detail.html:131 order/models.py:914
+#: order/templates/order/order_base.html:171
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:125
-#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847
-#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658
-#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042
+#: templates/js/translated/build.js:2586 templates/js/translated/order.js:2009
+#: templates/js/translated/order.js:2351 templates/js/translated/order.js:2852
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1051
msgid "Target Date"
msgstr "Streefdatum"
@@ -1388,7 +1389,7 @@ msgstr "Deze productie was verwacht op %(target)s"
#: build/templates/build/build_base.html:159
#: build/templates/build/build_base.html:204
-#: order/templates/order/order_base.html:101
+#: order/templates/order/order_base.html:107
#: order/templates/order/sales_order_base.html:94
#: templates/js/translated/table_filters.js:320
#: templates/js/translated/table_filters.js:361
@@ -1404,15 +1405,15 @@ msgid "Completed"
msgstr "Voltooid"
#: build/templates/build/build_base.html:179
-#: build/templates/build/detail.html:94 order/models.py:1105
-#: order/models.py:1199 order/models.py:1330
+#: build/templates/build/detail.html:94 order/models.py:1109
+#: order/models.py:1203 order/models.py:1334
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:365
+#: stock/templates/stock/item_base.html:368
#: templates/email/overdue_sales_order.html:15
-#: templates/js/translated/order.js:2604
+#: templates/js/translated/order.js:2798
msgid "Sales Order"
msgstr "Verkooporder"
@@ -1438,8 +1439,8 @@ msgstr "Voorraadbron"
msgid "Stock can be taken from any available location."
msgstr "Voorraad kan worden genomen van elke beschikbare locatie."
-#: build/templates/build/detail.html:49 order/models.py:1023
-#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199
+#: build/templates/build/detail.html:49 order/models.py:1027
+#: templates/js/translated/order.js:1644 templates/js/translated/order.js:2393
msgid "Destination"
msgstr "Bestemming"
@@ -1452,18 +1453,18 @@ msgid "Allocated Parts"
msgstr "Toegewezen Onderdelen"
#: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:165
+#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1215
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843
-#: templates/js/translated/stock.js:2734
+#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1839
+#: templates/js/translated/stock.js:2730
#: templates/js/translated/table_filters.js:159
#: templates/js/translated/table_filters.js:250
msgid "Batch"
msgstr "Batch"
#: build/templates/build/detail.html:126
-#: order/templates/order/order_base.html:152
+#: order/templates/order/order_base.html:158
#: order/templates/order/sales_order_base.html:158
#: templates/js/translated/build.js:2554
msgid "Created"
@@ -1516,7 +1517,7 @@ msgstr "Vereiste onderdelen bestellen"
#: build/templates/build/detail.html:187
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:85
-#: part/templates/part/category.html:183 templates/js/translated/order.js:1083
+#: part/templates/part/category.html:183 templates/js/translated/order.js:1177
msgid "Order Parts"
msgstr "Onderdelen bestellen"
@@ -1851,7 +1852,7 @@ msgstr "Kopiëer Categorieparameter Sjablonen"
msgid "Copy category parameter templates when creating a part"
msgstr "Kopieer categorieparameter sjablonen bij het aanmaken van een onderdeel"
-#: common/models.py:951 part/models.py:2465 report/models.py:158
+#: common/models.py:951 part/models.py:2473 report/models.py:158
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:484
msgid "Template"
@@ -1861,7 +1862,7 @@ msgstr "Sjabloon"
msgid "Parts are templates by default"
msgstr "Onderdelen zijn standaard sjablonen"
-#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446
+#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1454
#: templates/js/translated/table_filters.js:176
#: templates/js/translated/table_filters.js:447
msgid "Assembly"
@@ -2275,349 +2276,349 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1342 common/models.py:1658
+#: common/models.py:1344 common/models.py:1662
msgid "Settings key (must be unique - case insensitive"
msgstr "Instellingssleutel (moet uniek zijn - hoofdletter ongevoelig"
-#: common/models.py:1364
+#: common/models.py:1366
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1365
+#: common/models.py:1367
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1371
+#: common/models.py:1373
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1372
+#: common/models.py:1374
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1378
+#: common/models.py:1380
msgid "Show latest parts"
msgstr "Toon laatste onderdelen"
-#: common/models.py:1379
+#: common/models.py:1381
msgid "Show latest parts on the homepage"
msgstr "Toon laatste onderdelen op de startpagina"
-#: common/models.py:1385
+#: common/models.py:1387
msgid "Recent Part Count"
msgstr "Recente Voorraadtelling"
-#: common/models.py:1386
+#: common/models.py:1388
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1392
+#: common/models.py:1394
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1393
+#: common/models.py:1395
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1399
+#: common/models.py:1401
msgid "Show recent stock changes"
msgstr "Toon recente voorraadwijzigingen"
-#: common/models.py:1400
+#: common/models.py:1402
msgid "Show recently changed stock items on the homepage"
msgstr "Toon recent aangepaste voorraadartikelen op de startpagina"
-#: common/models.py:1406
+#: common/models.py:1408
msgid "Recent Stock Count"
msgstr "Recente Voorraadtelling"
-#: common/models.py:1407
+#: common/models.py:1409
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1413
+#: common/models.py:1415
msgid "Show low stock"
msgstr "Toon lage voorraad"
-#: common/models.py:1414
+#: common/models.py:1416
msgid "Show low stock items on the homepage"
msgstr "Toon lage voorraad van artikelen op de startpagina"
-#: common/models.py:1420
+#: common/models.py:1422
msgid "Show depleted stock"
msgstr "Toon lege voorraad"
-#: common/models.py:1421
+#: common/models.py:1423
msgid "Show depleted stock items on the homepage"
msgstr "Toon lege voorraad van artikelen op de startpagina"
-#: common/models.py:1427
+#: common/models.py:1429
msgid "Show needed stock"
msgstr "Toon benodigde voorraad"
-#: common/models.py:1428
+#: common/models.py:1430
msgid "Show stock items needed for builds on the homepage"
msgstr "Toon benodigde voorraad van artikelen voor productie op de startpagina"
-#: common/models.py:1434
+#: common/models.py:1436
msgid "Show expired stock"
msgstr "Toon verlopen voorraad"
-#: common/models.py:1435
+#: common/models.py:1437
msgid "Show expired stock items on the homepage"
msgstr "Toon verlopen voorraad van artikelen op de startpagina"
-#: common/models.py:1441
+#: common/models.py:1443
msgid "Show stale stock"
msgstr "Toon verouderde voorraad"
-#: common/models.py:1442
+#: common/models.py:1444
msgid "Show stale stock items on the homepage"
msgstr "Toon verouderde voorraad van artikelen op de startpagina"
-#: common/models.py:1448
+#: common/models.py:1450
msgid "Show pending builds"
msgstr "Toon openstaande producties"
-#: common/models.py:1449
+#: common/models.py:1451
msgid "Show pending builds on the homepage"
msgstr "Toon openstaande producties op de startpagina"
-#: common/models.py:1455
+#: common/models.py:1457
msgid "Show overdue builds"
msgstr "Toon achterstallige productie"
-#: common/models.py:1456
+#: common/models.py:1458
msgid "Show overdue builds on the homepage"
msgstr "Toon achterstallige producties op de startpagina"
-#: common/models.py:1462
+#: common/models.py:1464
msgid "Show outstanding POs"
msgstr "Toon uitstaande PO's"
-#: common/models.py:1463
+#: common/models.py:1465
msgid "Show outstanding POs on the homepage"
msgstr "Toon uitstaande PO's op de startpagina"
-#: common/models.py:1469
+#: common/models.py:1471
msgid "Show overdue POs"
msgstr "Toon achterstallige PO's"
-#: common/models.py:1470
+#: common/models.py:1472
msgid "Show overdue POs on the homepage"
msgstr "Toon achterstallige PO's op de startpagina"
-#: common/models.py:1476
+#: common/models.py:1478
msgid "Show outstanding SOs"
msgstr "Toon uitstaande SO's"
-#: common/models.py:1477
+#: common/models.py:1479
msgid "Show outstanding SOs on the homepage"
msgstr "Toon uitstaande SO's op de startpagina"
-#: common/models.py:1483
+#: common/models.py:1485
msgid "Show overdue SOs"
msgstr "Toon achterstallige SO's"
-#: common/models.py:1484
+#: common/models.py:1486
msgid "Show overdue SOs on the homepage"
msgstr "Toon achterstallige SO's op de startpagina"
-#: common/models.py:1490
+#: common/models.py:1492
msgid "Inline label display"
msgstr ""
-#: common/models.py:1491
+#: common/models.py:1493
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1499
msgid "Inline report display"
msgstr ""
-#: common/models.py:1498
+#: common/models.py:1500
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1506
msgid "Search Parts"
msgstr "Zoek Onderdelen"
-#: common/models.py:1505
+#: common/models.py:1507
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1513
msgid "Seach Supplier Parts"
msgstr ""
-#: common/models.py:1512
+#: common/models.py:1514
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1520
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:1519
+#: common/models.py:1521
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:1525
+#: common/models.py:1527
msgid "Hide Inactive Parts"
msgstr "Inactieve Onderdelen Verbergen"
-#: common/models.py:1526
+#: common/models.py:1528
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1532
+#: common/models.py:1534
msgid "Search Categories"
msgstr ""
-#: common/models.py:1533
+#: common/models.py:1535
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1539
+#: common/models.py:1541
msgid "Search Stock"
msgstr "Zoek in Voorraad"
-#: common/models.py:1540
+#: common/models.py:1542
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1546
+#: common/models.py:1548
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1547
+#: common/models.py:1549
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1553
+#: common/models.py:1555
msgid "Search Locations"
msgstr ""
-#: common/models.py:1554
+#: common/models.py:1556
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1560
+#: common/models.py:1562
msgid "Search Companies"
msgstr ""
-#: common/models.py:1561
+#: common/models.py:1563
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1567
+#: common/models.py:1569
msgid "Search Purchase Orders"
msgstr "Inkooporders Zoeken"
-#: common/models.py:1568
+#: common/models.py:1570
msgid "Display purchase orders in search preview window"
msgstr "Toon inkooporders in het zoekvenster"
-#: common/models.py:1574
+#: common/models.py:1576
msgid "Exclude Inactive Purchase Orders"
msgstr "Inactieve Inkooporders Weglaten"
-#: common/models.py:1575
+#: common/models.py:1577
msgid "Exclude inactive purchase orders from search preview window"
msgstr "Inactieve inkooporders weglaten in het zoekvenster"
-#: common/models.py:1581
+#: common/models.py:1583
msgid "Search Sales Orders"
msgstr "Verkooporders zoeken"
-#: common/models.py:1582
+#: common/models.py:1584
msgid "Display sales orders in search preview window"
msgstr "Toon verkooporders in het zoekvenster"
-#: common/models.py:1588
+#: common/models.py:1590
msgid "Exclude Inactive Sales Orders"
msgstr "Inactieve Verkooporders Weglaten"
-#: common/models.py:1589
+#: common/models.py:1591
msgid "Exclude inactive sales orders from search preview window"
msgstr "Inactieve verkooporders weglaten in het zoekvenster"
-#: common/models.py:1595
+#: common/models.py:1597
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1598
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1602
+#: common/models.py:1604
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1605
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1609
+#: common/models.py:1611
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1610
+#: common/models.py:1612
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1616
+#: common/models.py:1618
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1617
+#: common/models.py:1619
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1623
+#: common/models.py:1625
msgid "Date Format"
msgstr ""
-#: common/models.py:1624
+#: common/models.py:1626
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1638 part/templates/part/detail.html:41
+#: common/models.py:1640 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1641
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1698
+#: common/models.py:1702
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1705 company/serializers.py:366
-#: company/templates/company/supplier_part.html:284 order/models.py:938
-#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181
+#: common/models.py:1709 company/serializers.py:372
+#: company/templates/company/supplier_part.html:296 order/models.py:942
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:2210
msgid "Price"
msgstr "Prijs"
-#: common/models.py:1706
+#: common/models.py:1710
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1866 common/models.py:2044
+#: common/models.py:1870 common/models.py:2048
msgid "Endpoint"
msgstr ""
-#: common/models.py:1867
+#: common/models.py:1871
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1876
+#: common/models.py:1880
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1881 part/models.py:921 plugin/models.py:100
+#: common/models.py:1885 part/models.py:921 plugin/models.py:100
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:104
#: templates/js/translated/table_filters.js:316
@@ -2625,67 +2626,67 @@ msgstr ""
msgid "Active"
msgstr "Actief"
-#: common/models.py:1882
+#: common/models.py:1886
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1896
+#: common/models.py:1900
msgid "Token"
msgstr "Token"
-#: common/models.py:1897
+#: common/models.py:1901
msgid "Token for access"
msgstr "Token voor toegang"
-#: common/models.py:1904
+#: common/models.py:1908
msgid "Secret"
msgstr "Geheim"
-#: common/models.py:1905
+#: common/models.py:1909
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2011
+#: common/models.py:2015
msgid "Message ID"
msgstr "Bericht ID"
-#: common/models.py:2012
+#: common/models.py:2016
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2020
+#: common/models.py:2024
msgid "Host"
msgstr "Host"
-#: common/models.py:2021
+#: common/models.py:2025
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2032
msgid "Header"
msgstr "Koptekst"
-#: common/models.py:2029
+#: common/models.py:2033
msgid "Header of this message"
msgstr "Koptekst van dit bericht"
-#: common/models.py:2035
+#: common/models.py:2039
msgid "Body"
msgstr "Berichtinhoud"
-#: common/models.py:2036
+#: common/models.py:2040
msgid "Body of this message"
msgstr "Inhoud van dit bericht"
-#: common/models.py:2045
+#: common/models.py:2049
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2054
msgid "Worked on"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2055
msgid "Was the work on this message finished?"
msgstr ""
@@ -2747,7 +2748,7 @@ msgstr ""
#: company/models.py:105 company/templates/company/company_base.html:100
#: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:413
+#: templates/js/translated/company.js:448
msgid "Website"
msgstr "Website"
@@ -2824,7 +2825,7 @@ msgstr "is fabrikant"
msgid "Does this company manufacture parts?"
msgstr "Fabriceert dit bedrijf onderdelen?"
-#: company/models.py:148 company/serializers.py:372
+#: company/models.py:148 company/serializers.py:378
#: company/templates/company/company_base.html:106 part/serializers.py:153
#: part/serializers.py:184 stock/serializers.py:178
msgid "Currency"
@@ -2834,24 +2835,24 @@ msgstr "Valuta"
msgid "Default currency used for this company"
msgstr "Standaardvaluta die gebruikt wordt voor dit bedrijf"
-#: company/models.py:248 company/models.py:481 stock/models.py:598
+#: company/models.py:248 company/models.py:482 stock/models.py:598
#: stock/serializers.py:85 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:542
msgid "Base Part"
msgstr "Basis onderdeel"
-#: company/models.py:252 company/models.py:485
+#: company/models.py:252 company/models.py:486
msgid "Select part"
msgstr "Onderdeel selecteren"
#: company/models.py:263 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:124
-#: stock/templates/stock/item_base.html:207
-#: templates/js/translated/company.js:397
-#: templates/js/translated/company.js:498
-#: templates/js/translated/company.js:633
-#: templates/js/translated/company.js:919 templates/js/translated/part.js:236
+#: company/templates/company/supplier_part.html:129
+#: stock/templates/stock/item_base.html:210
+#: templates/js/translated/company.js:432
+#: templates/js/translated/company.js:533
+#: templates/js/translated/company.js:668
+#: templates/js/translated/company.js:956 templates/js/translated/part.js:236
#: templates/js/translated/table_filters.js:419
msgid "Manufacturer"
msgstr "Fabrikant"
@@ -2861,12 +2862,12 @@ msgid "Select manufacturer"
msgstr "Fabrikant selecteren"
#: company/models.py:270 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:132
-#: templates/js/translated/company.js:269
-#: templates/js/translated/company.js:497
-#: templates/js/translated/company.js:649
-#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077
-#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027
+#: company/templates/company/supplier_part.html:137
+#: templates/js/translated/company.js:304
+#: templates/js/translated/company.js:532
+#: templates/js/translated/company.js:684
+#: templates/js/translated/company.js:975 templates/js/translated/order.js:2239
+#: templates/js/translated/part.js:247 templates/js/translated/part.js:1025
msgid "MPN"
msgstr "MPN"
@@ -2882,10 +2883,10 @@ msgstr "URL voor externe link van het fabrikant onderdeel"
msgid "Manufacturer part description"
msgstr "Omschrijving onderdeel fabrikant"
-#: company/models.py:328 company/models.py:352 company/models.py:504
+#: company/models.py:328 company/models.py:352 company/models.py:505
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:220
msgid "Manufacturer Part"
msgstr "Fabrikant onderdeel"
@@ -2895,8 +2896,8 @@ msgstr "Parameternaam"
#: company/models.py:365
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2095 templates/js/translated/company.js:546
-#: templates/js/translated/company.js:764 templates/js/translated/part.js:849
+#: stock/models.py:2095 templates/js/translated/company.js:581
+#: templates/js/translated/company.js:799 templates/js/translated/part.js:847
#: templates/js/translated/stock.js:1360
msgid "Value"
msgstr "Waarde"
@@ -2905,10 +2906,10 @@ msgstr "Waarde"
msgid "Parameter value"
msgstr "Parameterwaarde"
-#: company/models.py:372 part/models.py:888 part/models.py:2425
+#: company/models.py:372 part/models.py:888 part/models.py:2433
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:352
-#: templates/js/translated/company.js:770 templates/js/translated/part.js:855
+#: templates/js/translated/company.js:805 templates/js/translated/part.js:853
msgid "Units"
msgstr "Eenheden"
@@ -2916,106 +2917,119 @@ msgstr "Eenheden"
msgid "Parameter units"
msgstr "Parameter eenheden"
-#: company/models.py:449
+#: company/models.py:450
msgid "Linked manufacturer part must reference the same base part"
msgstr "Gekoppeld fabrikant onderdeel moet verwijzen naar hetzelfde basis onderdeel"
-#: company/models.py:491 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:108 order/models.py:258
-#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:224
+#: company/models.py:492 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:113 order/models.py:258
+#: order/templates/order/order_base.html:121 part/bom.py:237 part/bom.py:265
+#: stock/templates/stock/item_base.html:227
#: templates/email/overdue_purchase_order.html:16
-#: templates/js/translated/company.js:268
-#: templates/js/translated/company.js:401
-#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813
-#: templates/js/translated/part.js:217 templates/js/translated/part.js:995
+#: templates/js/translated/company.js:303
+#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:929 templates/js/translated/order.js:1975
+#: templates/js/translated/part.js:217 templates/js/translated/part.js:993
#: templates/js/translated/table_filters.js:423
msgid "Supplier"
msgstr "Leverancier"
-#: company/models.py:492 templates/js/translated/part.js:218
+#: company/models.py:493 templates/js/translated/part.js:218
msgid "Select supplier"
msgstr "Leverancier selecteren"
-#: company/models.py:497 company/templates/company/supplier_part.html:118
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267
-#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228
-#: templates/js/translated/part.js:1013
+#: company/models.py:498 company/templates/company/supplier_part.html:123
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:302
+#: templates/js/translated/order.js:2226 templates/js/translated/part.js:228
+#: templates/js/translated/part.js:1011
msgid "SKU"
msgstr "SKU"
-#: company/models.py:498 templates/js/translated/part.js:229
+#: company/models.py:499 templates/js/translated/part.js:229
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:505
+#: company/models.py:506
msgid "Select manufacturer part"
msgstr "Selecteer fabrikant onderdeel"
-#: company/models.py:511
+#: company/models.py:512
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:517
+#: company/models.py:518
msgid "Supplier part description"
msgstr ""
-#: company/models.py:522 company/templates/company/supplier_part.html:146
-#: part/models.py:2666 part/templates/part/upload_bom.html:59
+#: company/models.py:523 company/templates/company/supplier_part.html:158
+#: part/models.py:2674 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399
msgid "Note"
msgstr "Opmerking"
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "base cost"
msgstr "basisprijs"
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Minimale kosten (bijv. voorraadkosten)"
-#: company/models.py:528 company/templates/company/supplier_part.html:139
-#: stock/models.py:624 stock/templates/stock/item_base.html:240
-#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976
+#: company/models.py:529 company/templates/company/supplier_part.html:144
+#: stock/models.py:624 stock/templates/stock/item_base.html:243
+#: templates/js/translated/company.js:991 templates/js/translated/stock.js:1972
msgid "Packaging"
msgstr ""
-#: company/models.py:528
+#: company/models.py:529
msgid "Part packaging"
msgstr ""
-#: company/models.py:530 part/models.py:1783
+#: company/models.py:532 company/serializers.py:242
+#: company/templates/company/supplier_part.html:151
+#: templates/js/translated/company.js:996 templates/js/translated/order.js:820
+#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:2270 templates/js/translated/order.js:2287
+#: templates/js/translated/part.js:1043 templates/js/translated/part.js:1095
+msgid "Pack Quantity"
+msgstr ""
+
+#: company/models.py:533
+msgid "Unit quantity supplied in a single pack"
+msgstr ""
+
+#: company/models.py:539 part/models.py:1783
msgid "multiple"
msgstr "meerdere"
-#: company/models.py:530
+#: company/models.py:539
msgid "Order multiple"
msgstr "Order meerdere"
-#: company/models.py:538 company/templates/company/supplier_part.html:94
+#: company/models.py:547 company/templates/company/supplier_part.html:99
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823
-#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979
-#: templates/js/translated/part.js:600 templates/js/translated/part.js:603
+#: templates/js/translated/bom.js:915 templates/js/translated/build.js:1823
+#: templates/js/translated/build.js:2686 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:601
#: templates/js/translated/table_filters.js:186
msgid "Available"
msgstr "Beschikbaar"
-#: company/models.py:539
+#: company/models.py:548
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:543
+#: company/models.py:552
msgid "Availability Updated"
msgstr ""
-#: company/models.py:544
+#: company/models.py:553
msgid "Date of last update of availability data"
msgstr ""
-#: company/models.py:672
+#: company/models.py:681
msgid "last updated"
msgstr "laatst bijgewerkt"
@@ -3029,12 +3043,12 @@ msgstr "Valutacode"
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386
+#: templates/InvenTree/search.html:179 templates/js/translated/company.js:421
msgid "Company"
msgstr "Bedrijf"
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:624
+#: templates/js/translated/order.js:689
msgid "Create Purchase Order"
msgstr "Inkooporder aanmaken"
@@ -3047,7 +3061,7 @@ msgid "Edit company information"
msgstr "Bedrijfsinformatie bewerken"
#: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:329
+#: templates/js/translated/company.js:364
msgid "Edit Company"
msgstr "Bedrijf bewerken"
@@ -3070,13 +3084,13 @@ msgstr "Nieuwe afbeelding uploaden"
msgid "Download image from URL"
msgstr "Afbeelding downloaden van URL"
-#: company/templates/company/company_base.html:86 order/models.py:637
+#: company/templates/company/company_base.html:86 order/models.py:641
#: order/templates/order/sales_order_base.html:116 stock/models.py:643
#: stock/models.py:644 stock/serializers.py:809
-#: stock/templates/stock/item_base.html:396
+#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
-#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619
-#: templates/js/translated/stock.js:2559
+#: templates/js/translated/company.js:428 templates/js/translated/order.js:2813
+#: templates/js/translated/stock.js:2555
#: templates/js/translated/table_filters.js:427
msgid "Customer"
msgstr "Klant"
@@ -3211,23 +3225,23 @@ msgid "Manufacturers"
msgstr "Fabrikanten"
#: company/templates/company/manufacturer_part.html:35
-#: company/templates/company/supplier_part.html:186
+#: company/templates/company/supplier_part.html:198
#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80
msgid "Order part"
msgstr "Order onderdeel"
#: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:681
+#: templates/js/translated/company.js:716
msgid "Edit manufacturer part"
msgstr "Fabrikant onderdeel bewerken"
#: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:682
+#: templates/js/translated/company.js:717
msgid "Delete manufacturer part"
msgstr "Fabrikant onderdeel verwijderen"
#: company/templates/company/manufacturer_part.html:65
-#: company/templates/company/supplier_part.html:77
+#: company/templates/company/supplier_part.html:82
msgid "Internal Part"
msgstr "Intern onderdeel"
@@ -3250,8 +3264,8 @@ msgstr "Verwijder leveranciersonderdelen"
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:371 part/templates/part/detail.html:401
-#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34
-#: users/models.py:220
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:34
+#: users/models.py:222
msgid "Delete"
msgstr "Verwijderen"
@@ -3296,9 +3310,9 @@ msgstr "Toegewezen Voorraadartikelen"
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:607
-#: stock/templates/stock/item_base.html:233
-#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041
-#: templates/js/translated/stock.js:1933
+#: stock/templates/stock/item_base.html:236
+#: templates/js/translated/company.js:945 templates/js/translated/order.js:1135
+#: templates/js/translated/stock.js:1929
msgid "Supplier Part"
msgstr "Leveranciersonderdeel"
@@ -3308,7 +3322,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:40
#: company/templates/company/supplier_part.html:41
-#: company/templates/company/supplier_part.html:187
+#: company/templates/company/supplier_part.html:199
#: part/templates/part/detail.html:88
msgid "Order Part"
msgstr "Order Onderdeel"
@@ -3320,81 +3334,87 @@ msgstr ""
#: company/templates/company/supplier_part.html:48
#: company/templates/company/supplier_part.html:49
-#: templates/js/translated/company.js:212
+#: templates/js/translated/company.js:247
msgid "Edit Supplier Part"
msgstr ""
#: company/templates/company/supplier_part.html:53
+#: company/templates/company/supplier_part.html:54
+#: templates/js/translated/company.js:222
+msgid "Duplicate Supplier Part"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:58
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:54
+#: company/templates/company/supplier_part.html:59
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:112
+#: company/templates/company/supplier_part.html:117
msgid "No supplier information available"
msgstr "Geen leveranciersinformatie beschikbaar"
-#: company/templates/company/supplier_part.html:165
+#: company/templates/company/supplier_part.html:177
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr ""
-#: company/templates/company/supplier_part.html:168
+#: company/templates/company/supplier_part.html:180
#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181
msgid "Create new stock item"
msgstr "Nieuw voorraadartikel aanmaken"
-#: company/templates/company/supplier_part.html:169
+#: company/templates/company/supplier_part.html:181
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182
#: templates/js/translated/stock.js:435
msgid "New Stock Item"
msgstr "Nieuw Voorraadartikel"
-#: company/templates/company/supplier_part.html:182
+#: company/templates/company/supplier_part.html:194
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr "Leverancier Onderdelenorders"
-#: company/templates/company/supplier_part.html:207
+#: company/templates/company/supplier_part.html:219
#: part/templates/part/prices.html:10
msgid "Pricing Information"
msgstr "Prijsinformatie"
-#: company/templates/company/supplier_part.html:212
-#: company/templates/company/supplier_part.html:326
-#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253
+#: company/templates/company/supplier_part.html:224
+#: company/templates/company/supplier_part.html:338
+#: part/templates/part/prices.html:276 templates/js/translated/part.js:2282
msgid "Add Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:250
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:252
-#: templates/js/translated/part.js:2263
+#: company/templates/company/supplier_part.html:264
+#: templates/js/translated/part.js:2292
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:266
-#: templates/js/translated/part.js:2277
+#: company/templates/company/supplier_part.html:278
+#: templates/js/translated/part.js:2306
msgid "Edit Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:291
+#: company/templates/company/supplier_part.html:303
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part.html:292
+#: company/templates/company/supplier_part.html:304
msgid "Delete price break"
msgstr ""
-#: company/templates/company/supplier_part.html:301
+#: company/templates/company/supplier_part.html:313
msgid "Last updated"
msgstr "Laatst bijgewerkt"
-#: company/templates/company/supplier_part.html:382
+#: company/templates/company/supplier_part.html:394
msgid "Update Part Availability"
msgstr ""
@@ -3404,8 +3424,8 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313
-#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959
+#: templates/js/translated/part.js:749 templates/js/translated/part.js:1334
+#: templates/js/translated/part.js:1495 templates/js/translated/stock.js:959
#: templates/js/translated/stock.js:1754 templates/navbar.html:31
msgid "Stock"
msgstr "Voorraad"
@@ -3432,7 +3452,7 @@ msgstr "Prijzen"
#: stock/templates/stock/location.html:178
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2436 users/models.py:40
+#: templates/js/translated/stock.js:2432 users/models.py:40
msgid "Stock Items"
msgstr "Voorraadartikelen"
@@ -3534,7 +3554,7 @@ msgstr ""
msgid "Order description"
msgstr "Order beschrijving"
-#: order/models.py:84 order/models.py:1246
+#: order/models.py:84 order/models.py:1250
msgid "Link to external page"
msgstr "Link naar externe pagina"
@@ -3550,11 +3570,11 @@ msgstr "Gebruiker of groep verantwoordelijk voor deze order"
msgid "Order notes"
msgstr "Ordernotities"
-#: order/models.py:241 order/models.py:624
+#: order/models.py:241 order/models.py:628
msgid "Order reference"
msgstr "Orderreferentie"
-#: order/models.py:249 order/models.py:642
+#: order/models.py:249 order/models.py:646
msgid "Purchase order status"
msgstr "Inkooporder status"
@@ -3562,8 +3582,8 @@ msgstr "Inkooporder status"
msgid "Company from which the items are being ordered"
msgstr "Bedrijf waar de artikelen van worden besteld"
-#: order/models.py:262 order/templates/order/order_base.html:127
-#: templates/js/translated/order.js:1822
+#: order/models.py:262 order/templates/order/order_base.html:133
+#: templates/js/translated/order.js:1984
msgid "Supplier Reference"
msgstr "Leveranciersreferentie"
@@ -3603,245 +3623,245 @@ msgstr "Onderdeelleverancier moet overeenkomen met de Inkooporderleverancier"
msgid "Quantity must be a positive number"
msgstr "Hoeveelheid moet een positief getal zijn"
-#: order/models.py:638
+#: order/models.py:642
msgid "Company to which the items are being sold"
msgstr "Bedrijf waaraan de artikelen worden verkocht"
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer Reference "
msgstr "Klantreferentie "
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer order reference code"
msgstr "Klant order referentiecode"
-#: order/models.py:649
+#: order/models.py:653
msgid "Target date for order completion. Order will be overdue after this date."
msgstr "Streefdatum voor voltooien order. De order is na deze datum achterstallig."
-#: order/models.py:652 order/models.py:1204
-#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828
+#: order/models.py:656 order/models.py:1208
+#: templates/js/translated/order.js:2860 templates/js/translated/order.js:3022
msgid "Shipment Date"
msgstr "Verzenddatum"
-#: order/models.py:659
+#: order/models.py:663
msgid "shipped by"
msgstr "verzonden door"
-#: order/models.py:714
+#: order/models.py:718
msgid "Order cannot be completed as no parts have been assigned"
msgstr "Order kan niet worden voltooid omdat er geen onderdelen aangewezen zijn"
-#: order/models.py:718
+#: order/models.py:722
msgid "Only a pending order can be marked as complete"
msgstr "Alleen orders in afwachting kunnen als voltooid worden gemarkeerd"
-#: order/models.py:721
+#: order/models.py:725 templates/js/translated/order.js:419
msgid "Order cannot be completed as there are incomplete shipments"
msgstr "Bestelling kan niet worden voltooid omdat er onvolledige verzendingen aanwezig zijn"
-#: order/models.py:724
+#: order/models.py:728
msgid "Order cannot be completed as there are incomplete line items"
msgstr "Order kan niet worden voltooid omdat er onvolledige artikelen aanwezig zijn"
-#: order/models.py:898
+#: order/models.py:902
msgid "Item quantity"
msgstr "Hoeveelheid artikelen"
-#: order/models.py:904
+#: order/models.py:908
msgid "Line item reference"
msgstr "Artikelregel referentie"
-#: order/models.py:906
+#: order/models.py:910
msgid "Line item notes"
msgstr "Artikel notities"
-#: order/models.py:911
+#: order/models.py:915
msgid "Target shipping date for this line item"
msgstr "Verwachte verzenddatum van het artikel"
-#: order/models.py:929
+#: order/models.py:933
msgid "Context"
msgstr "Context"
-#: order/models.py:930
+#: order/models.py:934
msgid "Additional context for this line"
msgstr "Additionele context voor deze regel"
-#: order/models.py:939
+#: order/models.py:943
msgid "Unit price"
msgstr "Stukprijs"
-#: order/models.py:969
+#: order/models.py:973
msgid "Supplier part must match supplier"
msgstr "Leveranciersonderdeel moet overeenkomen met leverancier"
-#: order/models.py:977
+#: order/models.py:981
msgid "deleted"
msgstr "verwijderd"
-#: order/models.py:983 order/models.py:1063 order/models.py:1104
-#: order/models.py:1198 order/models.py:1330
-#: templates/js/translated/order.js:3284
+#: order/models.py:987 order/models.py:1067 order/models.py:1108
+#: order/models.py:1202 order/models.py:1334
+#: templates/js/translated/order.js:3478
msgid "Order"
msgstr "Order"
-#: order/models.py:984 order/models.py:1063
+#: order/models.py:988 order/models.py:1067
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:179
+#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
-#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042
-#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972
-#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540
+#: templates/js/translated/order.js:619 templates/js/translated/order.js:1136
+#: templates/js/translated/order.js:1959 templates/js/translated/part.js:970
+#: templates/js/translated/stock.js:1909 templates/js/translated/stock.js:2536
msgid "Purchase Order"
msgstr "Inkooporder"
-#: order/models.py:1002
+#: order/models.py:1006
msgid "Supplier part"
msgstr "Leveranciersonderdeel"
-#: order/models.py:1009 order/templates/order/order_base.html:172
-#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105
+#: order/models.py:1013 order/templates/order/order_base.html:178
+#: templates/js/translated/order.js:1641 templates/js/translated/order.js:2373
+#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1125
#: templates/js/translated/table_filters.js:338
msgid "Received"
msgstr "Ontvangen"
-#: order/models.py:1010
+#: order/models.py:1014
msgid "Number of items received"
msgstr "Aantal ontvangen artikelen"
-#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734
-#: stock/serializers.py:169 stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1964
+#: order/models.py:1021 part/templates/part/prices.html:181 stock/models.py:734
+#: stock/serializers.py:169 stock/templates/stock/item_base.html:189
+#: templates/js/translated/stock.js:1960
msgid "Purchase Price"
msgstr "Inkoopprijs"
-#: order/models.py:1018
+#: order/models.py:1022
msgid "Unit purchase price"
msgstr "Aankoopprijs per stuk"
-#: order/models.py:1026
+#: order/models.py:1030
msgid "Where does the Purchaser want this item to be stored?"
msgstr "Waar wil de inkoper dat dit artikel opgeslagen wordt?"
-#: order/models.py:1092
+#: order/models.py:1096
msgid "Virtual part cannot be assigned to a sales order"
msgstr "Virtueel onderdeel kan niet worden toegewezen aan een verkooporder"
-#: order/models.py:1097
+#: order/models.py:1101
msgid "Only salable parts can be assigned to a sales order"
msgstr "Alleen verkoopbare onderdelen kunnen aan een verkooporder worden toegewezen"
-#: order/models.py:1123 part/templates/part/part_pricing.html:115
+#: order/models.py:1127 part/templates/part/part_pricing.html:115
#: part/templates/part/prices.html:121 part/templates/part/prices.html:290
msgid "Sale Price"
msgstr "Verkoopprijs"
-#: order/models.py:1124
+#: order/models.py:1128
msgid "Unit sale price"
msgstr "Prijs per stuk"
-#: order/models.py:1129
+#: order/models.py:1133
msgid "Shipped quantity"
msgstr "Verzonden hoeveelheid"
-#: order/models.py:1205
+#: order/models.py:1209
msgid "Date of shipment"
msgstr "Datum van verzending"
-#: order/models.py:1212
+#: order/models.py:1216
msgid "Checked By"
msgstr "Gecontroleerd door"
-#: order/models.py:1213
+#: order/models.py:1217
msgid "User who checked this shipment"
msgstr "Gebruiker die deze zending gecontroleerd heeft"
-#: order/models.py:1220 order/models.py:1405 order/serializers.py:1170
-#: order/serializers.py:1294 templates/js/translated/model_renderers.js:314
+#: order/models.py:1224 order/models.py:1409 order/serializers.py:1224
+#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314
msgid "Shipment"
msgstr "Zending"
-#: order/models.py:1221
+#: order/models.py:1225
msgid "Shipment number"
msgstr "Zendingsnummer"
-#: order/models.py:1225
+#: order/models.py:1229
msgid "Shipment notes"
msgstr "Zendingnotities"
-#: order/models.py:1231
+#: order/models.py:1235
msgid "Tracking Number"
msgstr "Volgnummer"
-#: order/models.py:1232
+#: order/models.py:1236
msgid "Shipment tracking information"
msgstr "Zending volginformatie"
-#: order/models.py:1239
+#: order/models.py:1243
msgid "Invoice Number"
msgstr "Factuurnummer"
-#: order/models.py:1240
+#: order/models.py:1244
msgid "Reference number for associated invoice"
msgstr "Referentienummer voor bijbehorende factuur"
-#: order/models.py:1258
+#: order/models.py:1262
msgid "Shipment has already been sent"
msgstr "Verzending is al verzonden"
-#: order/models.py:1261
+#: order/models.py:1265
msgid "Shipment has no allocated stock items"
msgstr "Zending heeft geen toegewezen voorraadartikelen"
-#: order/models.py:1364 order/models.py:1366
+#: order/models.py:1368 order/models.py:1370
msgid "Stock item has not been assigned"
msgstr "Voorraadartikel is niet toegewezen"
-#: order/models.py:1370
+#: order/models.py:1374
msgid "Cannot allocate stock item to a line with a different part"
msgstr "Kan het voorraadartikel niet toewijzen aan een regel met een ander onderdeel"
-#: order/models.py:1372
+#: order/models.py:1376
msgid "Cannot allocate stock to a line without a part"
msgstr "Kan voorraad niet toewijzen aan een regel zonder onderdeel"
-#: order/models.py:1375
+#: order/models.py:1379
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Toewijzingshoeveelheid kan niet hoger zijn dan de voorraadhoeveelheid"
-#: order/models.py:1385 order/serializers.py:1066
+#: order/models.py:1389 order/serializers.py:1086
msgid "Quantity must be 1 for serialized stock item"
msgstr "Hoeveelheid moet 1 zijn voor geserialiseerd voorraadartikel"
-#: order/models.py:1388
+#: order/models.py:1392
msgid "Sales order does not match shipment"
msgstr "Verkooporder komt niet overeen met zending"
-#: order/models.py:1389
+#: order/models.py:1393
msgid "Shipment does not match sales order"
msgstr "Verzending komt niet overeen met verkooporder"
-#: order/models.py:1397
+#: order/models.py:1401
msgid "Line"
msgstr "Regel"
-#: order/models.py:1406
+#: order/models.py:1410
msgid "Sales order shipment reference"
msgstr "Verzendreferentie verkooporder"
-#: order/models.py:1419 templates/js/translated/notification.js:55
+#: order/models.py:1423 templates/js/translated/notification.js:55
msgid "Item"
msgstr "Artikel"
-#: order/models.py:1420
+#: order/models.py:1424
msgid "Select stock item to allocate"
msgstr "Selecteer voorraadartikel om toe te wijzen"
-#: order/models.py:1423
+#: order/models.py:1427
msgid "Enter stock allocation quantity"
msgstr "Voer voorraadtoewijzingshoeveelheid in"
@@ -3853,111 +3873,119 @@ msgstr "Prijs valuta"
msgid "Order cannot be cancelled"
msgstr "Order kan niet worden geannuleerd"
-#: order/serializers.py:294
+#: order/serializers.py:209 order/serializers.py:1104
+msgid "Allow order to be closed with incomplete line items"
+msgstr ""
+
+#: order/serializers.py:220 order/serializers.py:1115
+msgid "Order has incomplete line items"
+msgstr ""
+
+#: order/serializers.py:311
msgid "Order is not open"
msgstr "Order is niet open"
-#: order/serializers.py:318
+#: order/serializers.py:335
msgid "Purchase price currency"
msgstr "Valuta Inkoopprijs"
-#: order/serializers.py:337
+#: order/serializers.py:354
msgid "Supplier part must be specified"
msgstr "Leveranciersonderdeel moet worden gespecificeerd"
-#: order/serializers.py:342
+#: order/serializers.py:359
msgid "Purchase order must be specified"
msgstr "Inkooporder moet worden gespecificeerd"
-#: order/serializers.py:348
+#: order/serializers.py:365
msgid "Supplier must match purchase order"
msgstr "De leverancier moet overeenkomen met de inkooporder"
-#: order/serializers.py:349
+#: order/serializers.py:366
msgid "Purchase order must match supplier"
msgstr "Inkooporder moet overeenkomen met de leverancier"
-#: order/serializers.py:413 order/serializers.py:1138
+#: order/serializers.py:430 order/serializers.py:1192
msgid "Line Item"
msgstr "Artikel"
-#: order/serializers.py:419
+#: order/serializers.py:436
msgid "Line item does not match purchase order"
msgstr "Artikelregel komt niet overeen met inkooporder"
-#: order/serializers.py:429 order/serializers.py:533
+#: order/serializers.py:446 order/serializers.py:553
msgid "Select destination location for received items"
msgstr "Selecteer bestemmingslocatie voor ontvangen artikelen"
-#: order/serializers.py:448 templates/js/translated/order.js:1354
+#: order/serializers.py:465 templates/js/translated/order.js:1497
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:456 templates/js/translated/order.js:1365
+#: order/serializers.py:473 templates/js/translated/order.js:1508
msgid "Enter serial numbers for incoming stock items"
msgstr "Voer serienummers in voor inkomende voorraadartikelen"
-#: order/serializers.py:469
+#: order/serializers.py:486
msgid "Barcode Hash"
msgstr "Hash van Streepjescode"
-#: order/serializers.py:470
+#: order/serializers.py:487
msgid "Unique identifier field"
msgstr "Uniek identificatieveld"
-#: order/serializers.py:484
+#: order/serializers.py:501
msgid "Barcode is already in use"
msgstr "Streepjescode is al in gebruik"
-#: order/serializers.py:507
+#: order/serializers.py:527
msgid "An integer quantity must be provided for trackable parts"
msgstr "Hoeveelheid als geheel getal vereist voor traceerbare onderdelen"
-#: order/serializers.py:549
+#: order/serializers.py:569
msgid "Line items must be provided"
msgstr "Artikelen moeten worden opgegeven"
-#: order/serializers.py:566
+#: order/serializers.py:586
msgid "Destination location must be specified"
msgstr "Bestemmingslocatie moet worden opgegeven"
-#: order/serializers.py:577
+#: order/serializers.py:597
msgid "Supplied barcode values must be unique"
msgstr "Geleverde streepjescodewaarden moeten uniek zijn"
-#: order/serializers.py:883
+#: order/serializers.py:903
msgid "Sale price currency"
msgstr "Valuta verkoopprijs"
-#: order/serializers.py:964
+#: order/serializers.py:984
msgid "No shipment details provided"
msgstr "Geen verzenddetails opgegeven"
-#: order/serializers.py:1027 order/serializers.py:1147
+#: order/serializers.py:1047 order/serializers.py:1201
msgid "Line item is not associated with this order"
msgstr "Artikelregel is niet gekoppeld aan deze bestelling"
-#: order/serializers.py:1049
+#: order/serializers.py:1069
msgid "Quantity must be positive"
msgstr "Hoeveelheid moet positief zijn"
-#: order/serializers.py:1160
+#: order/serializers.py:1214
msgid "Enter serial numbers to allocate"
msgstr "Voer serienummers in om toe te wijzen"
-#: order/serializers.py:1182 order/serializers.py:1302
+#: order/serializers.py:1236 order/serializers.py:1356
msgid "Shipment has already been shipped"
msgstr "Verzending is al verzonden"
-#: order/serializers.py:1185 order/serializers.py:1305
+#: order/serializers.py:1239 order/serializers.py:1359
msgid "Shipment is not associated with this order"
msgstr "Zending is niet gekoppeld aan deze bestelling"
-#: order/serializers.py:1235
+#: order/serializers.py:1289
msgid "No match found for the following serial numbers"
msgstr "Geen overeenkomst gevonden voor de volgende serienummers"
-#: order/serializers.py:1245
+#: order/serializers.py:1299
msgid "The following serial numbers are already allocated"
msgstr "De volgende serienummers zijn al toegewezen"
@@ -3993,83 +4021,83 @@ msgstr "Exporteer order naar bestand"
msgid "Order actions"
msgstr "Order acties"
-#: order/templates/order/order_base.html:45
+#: order/templates/order/order_base.html:46
#: order/templates/order/sales_order_base.html:58
msgid "Edit order"
msgstr "Order bewerken"
-#: order/templates/order/order_base.html:47
+#: order/templates/order/order_base.html:50
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr "Order annuleren"
-#: order/templates/order/order_base.html:50
+#: order/templates/order/order_base.html:55
msgid "Duplicate order"
msgstr ""
-#: order/templates/order/order_base.html:55
+#: order/templates/order/order_base.html:61
msgid "Place order"
msgstr "Order plaatsen"
-#: order/templates/order/order_base.html:59
+#: order/templates/order/order_base.html:65
msgid "Receive items"
msgstr "Ontvang artikelen"
-#: order/templates/order/order_base.html:61
+#: order/templates/order/order_base.html:67
#: order/templates/order/purchase_order_detail.html:30
msgid "Receive Items"
msgstr "Ontvang Artikelen"
-#: order/templates/order/order_base.html:63
+#: order/templates/order/order_base.html:69
msgid "Mark order as complete"
msgstr "Order markeren als voltooid"
-#: order/templates/order/order_base.html:65
+#: order/templates/order/order_base.html:71
#: order/templates/order/sales_order_base.html:68
msgid "Complete Order"
msgstr "Order Voltooien"
-#: order/templates/order/order_base.html:87
+#: order/templates/order/order_base.html:93
#: order/templates/order/sales_order_base.html:80
msgid "Order Reference"
msgstr "Order Referentie"
-#: order/templates/order/order_base.html:92
+#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:85
msgid "Order Description"
msgstr "Order Beschrijving"
-#: order/templates/order/order_base.html:97
+#: order/templates/order/order_base.html:103
#: order/templates/order/sales_order_base.html:90
msgid "Order Status"
msgstr "Order Status"
-#: order/templates/order/order_base.html:120
+#: order/templates/order/order_base.html:126
msgid "No suppplier information available"
msgstr "Geen leveranciersinformatie beschikbaar"
-#: order/templates/order/order_base.html:133
+#: order/templates/order/order_base.html:139
#: order/templates/order/sales_order_base.html:129
msgid "Completed Line Items"
msgstr "Afgeronde artikelen"
-#: order/templates/order/order_base.html:139
+#: order/templates/order/order_base.html:145
#: order/templates/order/sales_order_base.html:135
#: order/templates/order/sales_order_base.html:145
msgid "Incomplete"
msgstr "Incompleet"
-#: order/templates/order/order_base.html:158
+#: order/templates/order/order_base.html:164
#: report/templates/report/inventree_build_order_base.html:121
msgid "Issued"
msgstr "Uitgegeven"
-#: order/templates/order/order_base.html:186
+#: order/templates/order/order_base.html:192
#: order/templates/order/sales_order_base.html:190
msgid "Total cost"
msgstr "Totale kosten"
-#: order/templates/order/order_base.html:190
+#: order/templates/order/order_base.html:196
#: order/templates/order/sales_order_base.html:194
msgid "Total cost could not be calculated"
msgstr "Totale kosten konden niet worden berekend"
@@ -4102,8 +4130,8 @@ msgstr "Selecteer Leveranciersonderdeel"
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463
#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015
-#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443
-#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625
+#: templates/js/translated/order.js:1084 templates/js/translated/order.js:1586
+#: templates/js/translated/order.js:3097 templates/js/translated/stock.js:625
#: templates/js/translated/stock.js:793
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
@@ -4139,7 +4167,7 @@ msgstr "Inkooporder Artikelen"
#: order/templates/order/purchase_order_detail.html:26
#: order/templates/order/sales_order_detail.html:22
#: order/templates/order/sales_order_detail.html:255
-#: templates/js/translated/order.js:663
+#: templates/js/translated/order.js:728
msgid "Add Line Item"
msgstr "Artikel toevoegen"
@@ -4167,7 +4195,7 @@ msgstr "Ontvangen Artikelen"
msgid "Order Notes"
msgstr "Ordernotities"
-#: order/templates/order/purchase_order_detail.html:228
+#: order/templates/order/purchase_order_detail.html:232
msgid "Add Order Line"
msgstr "Voeg Orderregel toe"
@@ -4185,12 +4213,12 @@ msgid "Print packing list"
msgstr "Pakbon afdrukken"
#: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:231
+#: templates/js/translated/order.js:232
msgid "Complete Shipments"
msgstr "Verzendingen Voltooien"
#: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:258
+#: templates/js/translated/order.js:397
msgid "Complete Sales Order"
msgstr "Voltooi Verkooporder"
@@ -4199,7 +4227,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr "Deze Verkooporder is niet volledig toegewezen"
#: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2632
+#: templates/js/translated/order.js:2826
msgid "Customer Reference"
msgstr "Klantreferentie"
@@ -4223,7 +4251,7 @@ msgid "Pending Shipments"
msgstr "Verzendingen in behandeling"
#: order/templates/order/sales_order_detail.html:72
-#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1116
#: templates/js/translated/build.js:1923
msgid "Actions"
msgstr "Acties"
@@ -4308,14 +4336,14 @@ msgid "Total Stock"
msgstr "Totale Voorraad"
#: part/bom.py:129 part/templates/part/part_base.html:189
-#: templates/js/translated/order.js:3724
+#: templates/js/translated/order.js:3918
msgid "Available Stock"
msgstr "Beschikbare Voorraad"
#: part/bom.py:130 part/templates/part/part_base.html:207
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853
-#: templates/js/translated/part.js:590 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503
+#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1853
+#: templates/js/translated/part.js:588 templates/js/translated/part.js:608
+#: templates/js/translated/part.js:1337 templates/js/translated/part.js:1520
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr "In bestelling"
@@ -4344,7 +4372,7 @@ msgstr ""
msgid "Icon (optional)"
msgstr ""
-#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16
+#: part/models.py:122 part/models.py:2516 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -4361,7 +4389,7 @@ msgstr ""
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146
+#: templates/js/translated/part.js:2004 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr ""
@@ -4391,7 +4419,7 @@ msgstr ""
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:745 part/models.py:2562
+#: part/models.py:745 part/models.py:2570
msgid "Part name"
msgstr ""
@@ -4424,11 +4452,11 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:783 part/models.py:2257 part/models.py:2507
+#: part/models.py:783 part/models.py:2265 part/models.py:2515
#: part/templates/part/part_base.html:257
#: templates/InvenTree/settings/settings.html:232
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688
+#: templates/js/translated/part.js:1477 templates/js/translated/part.js:1717
msgid "Category"
msgstr ""
@@ -4437,7 +4465,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:789 part/templates/part/part_base.html:266
-#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:1430
#: templates/js/translated/stock.js:1726
msgid "IPN"
msgstr ""
@@ -4451,7 +4479,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:797 part/templates/part/part_base.html:273
-#: report/models.py:171 templates/js/translated/part.js:743
+#: report/models.py:171 templates/js/translated/part.js:741
msgid "Revision"
msgstr ""
@@ -4543,245 +4571,245 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2304
+#: part/models.py:2312
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2321
+#: part/models.py:2329
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2341 templates/js/translated/part.js:2026
+#: part/models.py:2349 templates/js/translated/part.js:2055
#: templates/js/translated/stock.js:1340
msgid "Test Name"
msgstr ""
-#: part/models.py:2342
+#: part/models.py:2350
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2347
+#: part/models.py:2355
msgid "Test Description"
msgstr ""
-#: part/models.py:2348
+#: part/models.py:2356
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2353 templates/js/translated/part.js:2035
+#: part/models.py:2361 templates/js/translated/part.js:2064
#: templates/js/translated/table_filters.js:302
msgid "Required"
msgstr ""
-#: part/models.py:2354
+#: part/models.py:2362
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2359 templates/js/translated/part.js:2043
+#: part/models.py:2367 templates/js/translated/part.js:2072
msgid "Requires Value"
msgstr ""
-#: part/models.py:2360
+#: part/models.py:2368
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2365 templates/js/translated/part.js:2050
+#: part/models.py:2373 templates/js/translated/part.js:2079
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2366
+#: part/models.py:2374
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2374
+#: part/models.py:2382
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2410
+#: part/models.py:2418
msgid "Parameter template name must be unique"
msgstr "De template van de parameter moet uniek zijn"
-#: part/models.py:2418
+#: part/models.py:2426
msgid "Parameter Name"
msgstr "Parameternaam"
-#: part/models.py:2425
+#: part/models.py:2433
msgid "Parameter Units"
msgstr "Parameter Eenheden"
-#: part/models.py:2430
+#: part/models.py:2438
msgid "Parameter description"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2471
msgid "Parent Part"
msgstr ""
-#: part/models.py:2465 part/models.py:2513 part/models.py:2514
+#: part/models.py:2473 part/models.py:2521 part/models.py:2522
#: templates/InvenTree/settings/settings.html:227
msgid "Parameter Template"
msgstr "Parameter Template"
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Data"
msgstr ""
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Parameter Value"
msgstr "Parameterwaarde"
-#: part/models.py:2518 templates/InvenTree/settings/settings.html:236
+#: part/models.py:2526 templates/InvenTree/settings/settings.html:236
msgid "Default Value"
msgstr ""
-#: part/models.py:2519
+#: part/models.py:2527
msgid "Default Parameter Value"
msgstr "Standaard Parameter Waarde"
-#: part/models.py:2554
+#: part/models.py:2562
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2557 templates/js/translated/model_renderers.js:212
+#: part/models.py:2565 templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr ""
-#: part/models.py:2558
+#: part/models.py:2566
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2561
+#: part/models.py:2569
msgid "Part Name"
msgstr ""
-#: part/models.py:2565
+#: part/models.py:2573
msgid "Part IPN"
msgstr ""
-#: part/models.py:2566
+#: part/models.py:2574
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2569
+#: part/models.py:2577
msgid "Level"
msgstr ""
-#: part/models.py:2570
+#: part/models.py:2578
msgid "BOM level"
msgstr ""
-#: part/models.py:2639
+#: part/models.py:2647
msgid "Select parent part"
msgstr ""
-#: part/models.py:2647
+#: part/models.py:2655
msgid "Sub part"
msgstr ""
-#: part/models.py:2648
+#: part/models.py:2656
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2654
+#: part/models.py:2662
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2656 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997
+#: part/models.py:2664 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:876 templates/js/translated/bom.js:1005
#: templates/js/translated/table_filters.js:100
msgid "Optional"
msgstr ""
-#: part/models.py:2656
+#: part/models.py:2664
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2659 part/templates/part/upload_bom.html:55
+#: part/models.py:2667 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2660
+#: part/models.py:2668
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2671
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2666
+#: part/models.py:2674
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "Checksum"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2672 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1014
+#: part/models.py:2680 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:1022
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:96
msgid "Inherited"
msgstr ""
-#: part/models.py:2673
+#: part/models.py:2681
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2678 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1006
+#: part/models.py:2686 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:1014
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2679
+#: part/models.py:2687
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2757 stock/models.py:468
+#: part/models.py:2765 stock/models.py:468
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2766 part/models.py:2768
+#: part/models.py:2774 part/models.py:2776
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2873
+#: part/models.py:2881
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2902
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2915
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2923
msgid "Substitute part"
msgstr ""
-#: part/models.py:2930
+#: part/models.py:2938
msgid "Part 1"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Part 2"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2960
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:2956
+#: part/models.py:2964
msgid "Duplicate relationship already exists"
msgstr ""
@@ -5309,10 +5337,10 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:624
-#: templates/js/translated/company.js:884
+#: templates/js/translated/company.js:659
+#: templates/js/translated/company.js:920
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:654 templates/js/translated/part.js:731
+#: templates/js/translated/part.js:652 templates/js/translated/part.js:729
msgid "Inactive"
msgstr ""
@@ -5327,28 +5355,28 @@ msgid "This part is a variant of %(link)s"
msgstr ""
#: part/templates/part/part_base.html:194
-#: templates/js/translated/company.js:974
+#: templates/js/translated/company.js:1027
#: templates/js/translated/table_filters.js:201
msgid "In Stock"
msgstr ""
#: part/templates/part/part_base.html:215
-#: stock/templates/stock/item_base.html:379
+#: stock/templates/stock/item_base.html:382
msgid "Allocated to Build Orders"
msgstr "Toegewezen aan Productieorder"
#: part/templates/part/part_base.html:224
-#: stock/templates/stock/item_base.html:372
+#: stock/templates/stock/item_base.html:375
msgid "Allocated to Sales Orders"
msgstr "Toegewezen aan verkooporders"
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1043
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320
-#: templates/js/translated/part.js:1510
+#: part/templates/part/part_base.html:238 templates/js/translated/part.js:591
+#: templates/js/translated/part.js:611 templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1527
msgid "Building"
msgstr ""
@@ -5361,7 +5389,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:328
+#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
@@ -5400,7 +5428,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:989
+#: templates/js/translated/bom.js:997
msgid "No supplier pricing available"
msgstr ""
@@ -5439,7 +5467,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:53
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468
+#: templates/js/translated/order.js:2001 templates/js/translated/stock.js:2464
msgid "Date"
msgstr "Datum"
@@ -5495,7 +5523,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983
+#: part/templates/part/prices.html:160 templates/js/translated/bom.js:991
msgid "Supplier Cost"
msgstr ""
@@ -5533,8 +5561,8 @@ msgstr ""
msgid "No sale pice history available for this part."
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616
-#: templates/js/translated/part.js:1308
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:614
+#: templates/js/translated/part.js:1329 templates/js/translated/part.js:1331
msgid "No Stock"
msgstr ""
@@ -5735,19 +5763,19 @@ msgstr ""
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:186
+#: plugin/models.py:188
msgid "Plugin"
msgstr ""
-#: plugin/models.py:249
+#: plugin/models.py:253
msgid "Method"
msgstr ""
-#: plugin/plugin.py:251
+#: plugin/plugin.py:252
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:263
+#: plugin/plugin.py:264
msgid "No date found"
msgstr ""
@@ -5925,12 +5953,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:648 stock/templates/stock/item_base.html:317
+#: stock/models.py:648 stock/templates/stock/item_base.html:320
#: templates/js/translated/build.js:456 templates/js/translated/build.js:608
#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706
#: templates/js/translated/model_renderers.js:118
-#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403
-#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490
+#: templates/js/translated/order.js:121 templates/js/translated/order.js:3597
+#: templates/js/translated/order.js:3684 templates/js/translated/stock.js:490
msgid "Serial Number"
msgstr "Serienummer"
@@ -5963,7 +5991,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780
-#: templates/js/translated/stock.js:2717
+#: templates/js/translated/stock.js:2713
msgid "Serial"
msgstr ""
@@ -5980,7 +6008,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
#: stock/models.py:89 stock/models.py:739
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:250
msgid "Owner"
msgstr ""
@@ -6046,7 +6074,7 @@ msgstr ""
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:631 stock/templates/stock/item_base.html:356
+#: stock/models.py:631 stock/templates/stock/item_base.html:359
msgid "Installed In"
msgstr ""
@@ -6086,8 +6114,8 @@ msgstr "Inkooporder voor dit voorraadartikel"
msgid "Destination Sales Order"
msgstr "Bestemming Verkooporder"
-#: stock/models.py:706 stock/templates/stock/item_base.html:424
-#: templates/js/translated/stock.js:1883
+#: stock/models.py:706 stock/templates/stock/item_base.html:427
+#: templates/js/translated/stock.js:1879
msgid "Expiry Date"
msgstr ""
@@ -6379,7 +6407,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2857
msgid "Install Stock Item"
msgstr ""
@@ -6479,134 +6507,135 @@ msgstr ""
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:158
+#: stock/templates/stock/item_base.html:161
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:193
+#: stock/templates/stock/item_base.html:196
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:214
msgid "No manufacturer set"
msgstr "Geen fabrikant geselecteerd"
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:254
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/location.html:132
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:268
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:266
+#: stock/templates/stock/item_base.html:269
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:279
+#: stock/templates/stock/item_base.html:282
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:290
msgid "This stock item is allocated to Sales Order"
msgstr "Dit voorraadartikel is toegewezen aan Verkooporder"
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:298
msgid "This stock item is allocated to Build Order"
msgstr "Dit voorraadartikel is toegewezen aan Productieorder"
-#: stock/templates/stock/item_base.html:301
+#: stock/templates/stock/item_base.html:304
msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
msgstr ""
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "previous page"
msgstr "vorige pagina"
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "next page"
msgstr "volgende pagina"
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:345
+#: stock/templates/stock/item_base.html:348
msgid "Available Quantity"
msgstr ""
-#: stock/templates/stock/item_base.html:389
+#: stock/templates/stock/item_base.html:392
#: templates/js/translated/build.js:1729
msgid "No location set"
msgstr "Geen locatie ingesteld"
-#: stock/templates/stock/item_base.html:404
+#: stock/templates/stock/item_base.html:407
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#: templates/js/translated/table_filters.js:269
msgid "Expired"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:275
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:437
-#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899
+#: stock/templates/stock/item_base.html:440
+#: templates/js/translated/company.js:1038
+#: templates/js/translated/stock.js:1895
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:442
+#: stock/templates/stock/item_base.html:445
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:516
+#: stock/templates/stock/item_base.html:519
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:589
+#: stock/templates/stock/item_base.html:592
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:592
+#: stock/templates/stock/item_base.html:595
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:593
+#: stock/templates/stock/item_base.html:596
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:601
+#: stock/templates/stock/item_base.html:604
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:629
+#: stock/templates/stock/item_base.html:632
msgid "Return to Stock"
msgstr ""
@@ -6739,11 +6768,11 @@ msgstr ""
msgid "Refer to the error log in the admin interface for further details"
msgstr ""
-#: templates/503.html:11 templates/503.html:36
+#: templates/503.html:11 templates/503.html:34
msgid "Site is in Maintenance"
msgstr ""
-#: templates/503.html:42
+#: templates/503.html:40
msgid "The site is currently in maintenance and should be up again soon!"
msgstr ""
@@ -7509,7 +7538,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:644
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "Bevestigen"
@@ -7728,7 +7757,7 @@ msgid "The following parts are low on required stock"
msgstr "De volgende onderdelen hebben een lage vereiste voorraad"
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1481
+#: templates/js/translated/bom.js:1489
msgid "Required Quantity"
msgstr "Vereiste Hoeveelheid"
@@ -7742,7 +7771,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2522
+#: templates/js/translated/part.js:2551
msgid "Minimum Quantity"
msgstr ""
@@ -7947,7 +7976,7 @@ msgstr ""
#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620
#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601
#: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003
-#: templates/js/translated/order.js:1085 templates/modals.html:15
+#: templates/js/translated/order.js:1179 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr "Sluit"
@@ -7957,12 +7986,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145
+#: templates/js/translated/order.js:960 templates/js/translated/tables.js:145
msgid "Format"
msgstr "Formaat"
#: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:867
+#: templates/js/translated/order.js:961
msgid "Select file format"
msgstr "Selecteer bestandsindeling"
@@ -8058,73 +8087,73 @@ msgstr ""
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857
-#: templates/js/translated/order.js:3738
+#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1857
+#: templates/js/translated/order.js:3932
msgid "No Stock Available"
msgstr "Geen Voorraad Aanwezig"
-#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861
+#: templates/js/translated/bom.js:940 templates/js/translated/build.js:1861
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516
+#: templates/js/translated/bom.js:942 templates/js/translated/build.js:1863
+#: templates/js/translated/part.js:761 templates/js/translated/part.js:1533
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865
+#: templates/js/translated/bom.js:944 templates/js/translated/build.js:1865
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:954
+#: templates/js/translated/bom.js:962
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:969
+#: templates/js/translated/bom.js:977
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:976
+#: templates/js/translated/bom.js:984
msgid "Purchase Price Average"
msgstr "Gemiddelde inkoopprijs"
-#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145
+#: templates/js/translated/bom.js:1033 templates/js/translated/bom.js:1153
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1052
+#: templates/js/translated/bom.js:1060
msgid "Including On Order"
msgstr "Inclusief Op Bestelling"
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1124
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1118
+#: templates/js/translated/bom.js:1126
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1120
+#: templates/js/translated/bom.js:1128
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284
+#: templates/js/translated/bom.js:1130 templates/js/translated/bom.js:1292
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1124
+#: templates/js/translated/bom.js:1132
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650
+#: templates/js/translated/bom.js:1228 templates/js/translated/build.js:1650
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789
+#: templates/js/translated/bom.js:1472 templates/js/translated/build.js:1789
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1486
+#: templates/js/translated/bom.js:1498
msgid "Inherited from parent BOM"
msgstr ""
@@ -8267,12 +8296,12 @@ msgid "No required tests for this build"
msgstr ""
#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697
-#: templates/js/translated/order.js:3438
+#: templates/js/translated/order.js:3632
msgid "Edit stock allocation"
msgstr "Voorraadtoewijzing bewerken"
#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698
-#: templates/js/translated/order.js:3439
+#: templates/js/translated/order.js:3633
msgid "Delete stock allocation"
msgstr "Voorraadtoewijzing verwijderen"
@@ -8292,20 +8321,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745
+#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3939
msgid "Insufficient stock available"
msgstr "Onvoldoende voorraad beschikbaar"
-#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743
+#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3937
msgid "Sufficient stock available"
msgstr "Genoeg voorraad beschikbaar"
#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127
-#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757
+#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3951
msgid "Allocated"
msgstr "Toegewezen"
-#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837
+#: templates/js/translated/build.js:1930 templates/js/translated/order.js:4031
msgid "Build stock"
msgstr "Productie voorraad"
@@ -8313,21 +8342,21 @@ msgstr "Productie voorraad"
msgid "Order stock"
msgstr "Voorraad order"
-#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830
+#: templates/js/translated/build.js:1937 templates/js/translated/order.js:4024
msgid "Allocate stock"
msgstr "Voorraad toewijzen"
#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965
+#: templates/js/translated/order.js:1007 templates/js/translated/order.js:3159
#: templates/js/translated/report.js:225
msgid "Select Parts"
msgstr "Onderdelen selecteren"
-#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966
+#: templates/js/translated/build.js:1977 templates/js/translated/order.js:3160
msgid "You must select at least one part to allocate"
msgstr "Er moet op zijn minst één onderdeel toegewezen worden"
-#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914
+#: templates/js/translated/build.js:2026 templates/js/translated/order.js:3108
msgid "Specify stock allocation quantity"
msgstr "Specificeer voorraadtoewijzingshoeveelheid"
@@ -8339,7 +8368,7 @@ msgstr ""
msgid "All selected parts have been fully allocated"
msgstr ""
-#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980
+#: templates/js/translated/build.js:2115 templates/js/translated/order.js:3174
msgid "Select source location (leave blank to take from all locations)"
msgstr "Selecteer bron locatie (laat het veld leeg om iedere locatie te gebruiken)"
@@ -8347,11 +8376,11 @@ msgstr "Selecteer bron locatie (laat het veld leeg om iedere locatie te gebruike
msgid "Allocate Stock Items to Build Order"
msgstr "Voorraadartikelen toewijzen aan Productieorder"
-#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077
+#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3271
msgid "No matching stock locations"
msgstr "Geen overeenkomende voorraadlocaties"
-#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154
+#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3348
msgid "No matching stock items"
msgstr "Geen overeenkomende voorraadartikelen"
@@ -8383,9 +8412,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401
-#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1422
+#: templates/js/translated/part.js:1948 templates/js/translated/stock.js:1686
+#: templates/js/translated/stock.js:2382
msgid "Select"
msgstr ""
@@ -8397,7 +8426,7 @@ msgstr "Productieorder is achterstallig"
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647
+#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2643
msgid "No user information"
msgstr ""
@@ -8405,111 +8434,115 @@ msgstr ""
msgid "No parts allocated for"
msgstr ""
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
msgid "Add Manufacturer"
msgstr "Fabrikant toevoegen"
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:179
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:181
msgid "Add Manufacturer Part"
msgstr "Fabrikantonderdeel toevoegen"
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
msgid "Edit Manufacturer Part"
msgstr "Fabrikantonderdeel bewerken"
-#: templates/js/translated/company.js:167 templates/js/translated/order.js:511
+#: templates/js/translated/company.js:169 templates/js/translated/order.js:576
msgid "Add Supplier"
msgstr "Leverancier Toevoegen"
-#: templates/js/translated/company.js:195 templates/js/translated/order.js:734
+#: templates/js/translated/company.js:197 templates/js/translated/order.js:828
msgid "Add Supplier Part"
msgstr "Leveranciersonderdeel Toevoegen"
-#: templates/js/translated/company.js:262
+#: templates/js/translated/company.js:297
msgid "All selected supplier parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:278
+#: templates/js/translated/company.js:313
msgid "Delete Supplier Parts"
msgstr ""
-#: templates/js/translated/company.js:350
+#: templates/js/translated/company.js:385
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:427
+#: templates/js/translated/company.js:462
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:471
msgid "Parts Manufactured"
msgstr "Gefabriceerde Onderdelen"
-#: templates/js/translated/company.js:451
+#: templates/js/translated/company.js:486
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:492
+#: templates/js/translated/company.js:527
msgid "All selected manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:507
+#: templates/js/translated/company.js:542
msgid "Delete Manufacturer Parts"
msgstr "Verwijder Fabrikantenonderdelen"
-#: templates/js/translated/company.js:541
+#: templates/js/translated/company.js:576
msgid "All selected parameters will be deleted"
msgstr ""
-#: templates/js/translated/company.js:555
+#: templates/js/translated/company.js:590
msgid "Delete Parameters"
msgstr "Parameter verwijderen"
-#: templates/js/translated/company.js:596
+#: templates/js/translated/company.js:631
msgid "No manufacturer parts found"
msgstr "Geen fabrikantenonderdelen gevonden"
-#: templates/js/translated/company.js:616
-#: templates/js/translated/company.js:876 templates/js/translated/part.js:638
-#: templates/js/translated/part.js:723
+#: templates/js/translated/company.js:651
+#: templates/js/translated/company.js:912 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:721
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:620
-#: templates/js/translated/company.js:880 templates/js/translated/part.js:642
-#: templates/js/translated/part.js:727
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:916 templates/js/translated/part.js:640
+#: templates/js/translated/part.js:725
msgid "Assembled part"
msgstr "Samengesteld onderdeel"
-#: templates/js/translated/company.js:748 templates/js/translated/part.js:830
+#: templates/js/translated/company.js:783 templates/js/translated/part.js:828
msgid "No parameters found"
msgstr "Geen parameters gevonden"
-#: templates/js/translated/company.js:785 templates/js/translated/part.js:872
+#: templates/js/translated/company.js:820 templates/js/translated/part.js:870
msgid "Edit parameter"
msgstr "Parameter bewerken"
-#: templates/js/translated/company.js:786 templates/js/translated/part.js:873
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:871
msgid "Delete parameter"
msgstr "Parameter verwijderen"
-#: templates/js/translated/company.js:805 templates/js/translated/part.js:890
+#: templates/js/translated/company.js:840 templates/js/translated/part.js:888
msgid "Edit Parameter"
msgstr "Parameter bewerken"
-#: templates/js/translated/company.js:816 templates/js/translated/part.js:902
+#: templates/js/translated/company.js:851 templates/js/translated/part.js:900
msgid "Delete Parameter"
msgstr "Parameter verwijderen"
-#: templates/js/translated/company.js:856
+#: templates/js/translated/company.js:891
msgid "No supplier parts found"
msgstr ""
-#: templates/js/translated/company.js:1002
+#: templates/js/translated/company.js:1032
+msgid "Availability"
+msgstr ""
+
+#: templates/js/translated/company.js:1055
msgid "Edit supplier part"
msgstr ""
-#: templates/js/translated/company.js:1003
+#: templates/js/translated/company.js:1056
msgid "Delete supplier part"
msgstr ""
@@ -8547,61 +8580,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:367 templates/js/translated/forms.js:382
-#: templates/js/translated/forms.js:396 templates/js/translated/forms.js:410
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:369
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:384
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:398
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:670
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:771
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1269 templates/modals.html:19
+#: templates/js/translated/forms.js:1274 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1702
+#: templates/js/translated/forms.js:1707
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1917 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2170
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2648
+#: templates/js/translated/forms.js:2653
msgid "Select Columns"
msgstr ""
@@ -8792,409 +8825,422 @@ msgstr ""
msgid "Notifications will load here"
msgstr ""
-#: templates/js/translated/order.js:96
+#: templates/js/translated/order.js:97
msgid "No stock items have been allocated to this shipment"
msgstr "Geen voorraadartikelen toegewezen aan deze zending"
-#: templates/js/translated/order.js:101
+#: templates/js/translated/order.js:102
msgid "The following stock items will be shipped"
msgstr "De volgende voorraadartikelen worden verzonden"
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:142
msgid "Complete Shipment"
msgstr "Verzending Voltooien"
-#: templates/js/translated/order.js:161
+#: templates/js/translated/order.js:162
msgid "Confirm Shipment"
msgstr "Verzending Bevestigen"
-#: templates/js/translated/order.js:217
+#: templates/js/translated/order.js:218
msgid "No pending shipments found"
msgstr "Geen verzendingen in behandeling gevonden"
-#: templates/js/translated/order.js:221
+#: templates/js/translated/order.js:222
msgid "No stock items have been allocated to pending shipments"
msgstr ""
-#: templates/js/translated/order.js:253
+#: templates/js/translated/order.js:254
msgid "Skip"
msgstr ""
-#: templates/js/translated/order.js:283
+#: templates/js/translated/order.js:284
msgid "Complete Purchase Order"
msgstr "Voltooi Inkooporder"
-#: templates/js/translated/order.js:289
+#: templates/js/translated/order.js:301 templates/js/translated/order.js:413
msgid "Mark this order as complete?"
msgstr "Order markeren als voltooid?"
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:307
msgid "All line items have been received"
msgstr "Alle artikelen zijn ontvangen"
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:312
msgid "This order has line items which have not been marked as received."
msgstr "Deze order heeft artikelen die niet zijn gemarkeerd als ontvangen."
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:313 templates/js/translated/order.js:427
msgid "Completing this order means that the order and line items will no longer be editable."
msgstr "Na het voltooien van de order zijn de order en de artikelen langer bewerkbaar."
-#: templates/js/translated/order.js:324
+#: templates/js/translated/order.js:336
msgid "Cancel Purchase Order"
msgstr "Inkooporder annuleren"
-#: templates/js/translated/order.js:329
+#: templates/js/translated/order.js:341
msgid "Are you sure you wish to cancel this purchase order?"
msgstr "Weet u zeker dat u deze inkooporder wilt annuleren?"
-#: templates/js/translated/order.js:335
+#: templates/js/translated/order.js:347
msgid "This purchase order can not be cancelled"
msgstr "Deze inkooporder kan niet geannuleerd worden"
-#: templates/js/translated/order.js:358
+#: templates/js/translated/order.js:370
msgid "Issue Purchase Order"
msgstr "Geef inkooporder uit"
-#: templates/js/translated/order.js:363
+#: templates/js/translated/order.js:375
msgid "After placing this purchase order, line items will no longer be editable."
msgstr "Na het plaatsen van de inkooporder zijn de artikelen niet meer bewerkbaar."
-#: templates/js/translated/order.js:385
+#: templates/js/translated/order.js:426
+msgid "This order has line items which have not been completed."
+msgstr ""
+
+#: templates/js/translated/order.js:450
msgid "Cancel Sales Order"
msgstr "Verkooporder annuleren"
-#: templates/js/translated/order.js:390
+#: templates/js/translated/order.js:455
msgid "Cancelling this order means that the order will no longer be editable."
msgstr "Na annulering van de order kan de order niet meer bewerkt worden."
-#: templates/js/translated/order.js:444
+#: templates/js/translated/order.js:509
msgid "Create New Shipment"
msgstr ""
-#: templates/js/translated/order.js:469
+#: templates/js/translated/order.js:534
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:494
+#: templates/js/translated/order.js:559
msgid "Create Sales Order"
msgstr "Verkooporder aanmaken"
-#: templates/js/translated/order.js:555
+#: templates/js/translated/order.js:620
msgid "Select purchase order to duplicate"
msgstr ""
-#: templates/js/translated/order.js:562
+#: templates/js/translated/order.js:627
msgid "Duplicate Line Items"
msgstr ""
-#: templates/js/translated/order.js:563
+#: templates/js/translated/order.js:628
msgid "Duplicate all line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:570
+#: templates/js/translated/order.js:635
msgid "Duplicate Extra Lines"
msgstr ""
-#: templates/js/translated/order.js:571
+#: templates/js/translated/order.js:636
msgid "Duplicate extra line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:588
+#: templates/js/translated/order.js:653
msgid "Edit Purchase Order"
msgstr "Bewerk Inkooporder"
-#: templates/js/translated/order.js:605
+#: templates/js/translated/order.js:670
msgid "Duplication Options"
msgstr ""
-#: templates/js/translated/order.js:863
+#: templates/js/translated/order.js:957
msgid "Export Order"
msgstr "Export Order"
-#: templates/js/translated/order.js:914
+#: templates/js/translated/order.js:1008
msgid "At least one purchaseable part must be selected"
msgstr ""
-#: templates/js/translated/order.js:939
+#: templates/js/translated/order.js:1033
msgid "Quantity to order"
msgstr "Te bestellen aantal"
-#: templates/js/translated/order.js:948
+#: templates/js/translated/order.js:1042
msgid "New supplier part"
msgstr ""
-#: templates/js/translated/order.js:966
+#: templates/js/translated/order.js:1060
msgid "New purchase order"
msgstr "Nieuwe inkooporder"
-#: templates/js/translated/order.js:999
+#: templates/js/translated/order.js:1093
msgid "Add to purchase order"
msgstr "Toevoegen aan inkooporder"
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1233
msgid "No matching supplier parts"
msgstr ""
-#: templates/js/translated/order.js:1123
+#: templates/js/translated/order.js:1252
msgid "No matching purchase orders"
msgstr "Geen overeenkomende inkooporders"
-#: templates/js/translated/order.js:1300
+#: templates/js/translated/order.js:1429
msgid "Select Line Items"
msgstr "Selecteer artikelen"
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1430
msgid "At least one line item must be selected"
msgstr "Ten minste één artikel moet worden geselecteerd"
-#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420
+#: templates/js/translated/order.js:1450 templates/js/translated/order.js:1563
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431
+#: templates/js/translated/order.js:1456 templates/js/translated/order.js:1574
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1339
+#: templates/js/translated/order.js:1471
+msgid "Received Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:1482
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144
+#: templates/js/translated/order.js:1546 templates/js/translated/stock.js:2140
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:1494
+#: templates/js/translated/order.js:1639
msgid "Order Code"
msgstr "Order Code"
-#: templates/js/translated/order.js:1495
+#: templates/js/translated/order.js:1640
msgid "Ordered"
msgstr "Besteld"
-#: templates/js/translated/order.js:1497
+#: templates/js/translated/order.js:1642
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:1516
+#: templates/js/translated/order.js:1661
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:1517
+#: templates/js/translated/order.js:1662
msgid "Receive Purchase Order Items"
msgstr "Ontvang Artikelen Inkooporder"
-#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943
+#: templates/js/translated/order.js:1940 templates/js/translated/part.js:941
msgid "No purchase orders found"
msgstr "Geen inkooporder gevonden"
-#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2803
msgid "Order is overdue"
msgstr "Order is achterstallig"
-#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674
-#: templates/js/translated/order.js:2815
+#: templates/js/translated/order.js:2017 templates/js/translated/order.js:2868
+#: templates/js/translated/order.js:3009
msgid "Items"
msgstr "Artikelen"
-#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889
+#: templates/js/translated/order.js:2115 templates/js/translated/order.js:4083
msgid "Duplicate Line Item"
msgstr "Artikel dupliceren"
-#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911
+#: templates/js/translated/order.js:2132 templates/js/translated/order.js:4105
msgid "Edit Line Item"
msgstr "Artikel wijzigen"
-#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:4116
msgid "Delete Line Item"
msgstr "Artikel verwijderen"
-#: templates/js/translated/order.js:2026
+#: templates/js/translated/order.js:2188
msgid "No line items found"
msgstr "Geen artikelen gevonden"
-#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:2215 templates/js/translated/order.js:3817
msgid "Total"
msgstr "Totaal"
-#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309
-#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156
-#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753
+#: templates/js/translated/order.js:2270 templates/js/translated/part.js:1043
+#: templates/js/translated/part.js:1095
+msgid "Total Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:2301 templates/js/translated/order.js:2503
+#: templates/js/translated/order.js:3842 templates/js/translated/order.js:4350
+#: templates/js/translated/part.js:2184 templates/js/translated/part.js:2782
msgid "Unit Price"
msgstr "Stukprijs"
-#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325
-#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172
+#: templates/js/translated/order.js:2316 templates/js/translated/order.js:2519
+#: templates/js/translated/order.js:3858 templates/js/translated/order.js:4366
msgid "Total Price"
msgstr "Totaalprijs"
-#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706
-#: templates/js/translated/part.js:1070
+#: templates/js/translated/order.js:2357 templates/js/translated/order.js:3900
+#: templates/js/translated/part.js:1079
msgid "This line item is overdue"
msgstr "Dit artikel is achterstallig"
-#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110
+#: templates/js/translated/order.js:2416 templates/js/translated/part.js:1130
msgid "Receive line item"
msgstr "Artikel ontvangen"
-#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2420 templates/js/translated/order.js:4037
msgid "Duplicate line item"
msgstr "Artikel dupliceren"
-#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844
+#: templates/js/translated/order.js:2421 templates/js/translated/order.js:4038
msgid "Edit line item"
msgstr "Artikel bewerken"
-#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848
+#: templates/js/translated/order.js:2422 templates/js/translated/order.js:4042
msgid "Delete line item"
msgstr "Artikel verwijderen"
-#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221
+#: templates/js/translated/order.js:2568 templates/js/translated/order.js:4415
msgid "Duplicate line"
msgstr "Kopieer regel"
-#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222
+#: templates/js/translated/order.js:2569 templates/js/translated/order.js:4416
msgid "Edit line"
msgstr "Bewerk regel"
-#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223
+#: templates/js/translated/order.js:2570 templates/js/translated/order.js:4417
msgid "Delete line"
msgstr "Verwijder regel"
-#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253
+#: templates/js/translated/order.js:2600 templates/js/translated/order.js:4447
msgid "Duplicate Line"
msgstr "Kopieer Regel"
-#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274
+#: templates/js/translated/order.js:2621 templates/js/translated/order.js:4468
msgid "Edit Line"
msgstr "Bewerk Regel"
-#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285
+#: templates/js/translated/order.js:2632 templates/js/translated/order.js:4479
msgid "Delete Line"
msgstr "Verwijder Regel"
-#: templates/js/translated/order.js:2449
+#: templates/js/translated/order.js:2643
msgid "No matching line"
msgstr "Geen overeenkomende regel"
-#: templates/js/translated/order.js:2560
+#: templates/js/translated/order.js:2754
msgid "No sales orders found"
msgstr "Geen verkooporder gevonden"
-#: templates/js/translated/order.js:2623
+#: templates/js/translated/order.js:2817
msgid "Invalid Customer"
msgstr "Ongeldige Klant"
-#: templates/js/translated/order.js:2721
+#: templates/js/translated/order.js:2915
msgid "Edit shipment"
msgstr "Verzending bewerken"
-#: templates/js/translated/order.js:2724
+#: templates/js/translated/order.js:2918
msgid "Complete shipment"
msgstr "Verzending Voltooien"
-#: templates/js/translated/order.js:2729
+#: templates/js/translated/order.js:2923
msgid "Delete shipment"
msgstr "Verzending verwijderen"
-#: templates/js/translated/order.js:2749
+#: templates/js/translated/order.js:2943
msgid "Edit Shipment"
msgstr "Verzending bewerken"
-#: templates/js/translated/order.js:2766
+#: templates/js/translated/order.js:2960
msgid "Delete Shipment"
msgstr "Verzending verwijderen"
-#: templates/js/translated/order.js:2800
+#: templates/js/translated/order.js:2994
msgid "No matching shipments found"
msgstr "Geen overeenkomende verzending gevonden"
-#: templates/js/translated/order.js:2810
+#: templates/js/translated/order.js:3004
msgid "Shipment Reference"
msgstr "Verzendingsreferentie"
-#: templates/js/translated/order.js:2834
+#: templates/js/translated/order.js:3028
msgid "Not shipped"
msgstr "Niet verzonden"
-#: templates/js/translated/order.js:2840
+#: templates/js/translated/order.js:3034
msgid "Tracking"
msgstr "Volgen"
-#: templates/js/translated/order.js:2844
+#: templates/js/translated/order.js:3038
msgid "Invoice"
msgstr "Factuur"
-#: templates/js/translated/order.js:3013
+#: templates/js/translated/order.js:3207
msgid "Add Shipment"
msgstr "Voeg Verzending toe"
-#: templates/js/translated/order.js:3064
+#: templates/js/translated/order.js:3258
msgid "Confirm stock allocation"
msgstr "Bevestig de voorraadtoewijzing"
-#: templates/js/translated/order.js:3065
+#: templates/js/translated/order.js:3259
msgid "Allocate Stock Items to Sales Order"
msgstr "Voorraadartikel toewijzen aan Verkooporder"
-#: templates/js/translated/order.js:3273
+#: templates/js/translated/order.js:3467
msgid "No sales order allocations found"
msgstr "Geen verkooporder toewijzingen gevonden"
-#: templates/js/translated/order.js:3352
+#: templates/js/translated/order.js:3546
msgid "Edit Stock Allocation"
msgstr "Bewerk Voorraadtoewijzing"
-#: templates/js/translated/order.js:3369
+#: templates/js/translated/order.js:3563
msgid "Confirm Delete Operation"
msgstr "Bevestig Verwijderen"
-#: templates/js/translated/order.js:3370
+#: templates/js/translated/order.js:3564
msgid "Delete Stock Allocation"
msgstr "Verwijder Voorraadtoewijzing"
-#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504
+#: templates/js/translated/order.js:3609 templates/js/translated/order.js:3698
#: templates/js/translated/stock.js:1602
msgid "Shipped to customer"
msgstr "Verzonden aan klant"
-#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513
+#: templates/js/translated/order.js:3617 templates/js/translated/order.js:3707
msgid "Stock location not specified"
msgstr "Voorraadlocatie niet gespecificeerd"
-#: templates/js/translated/order.js:3827
+#: templates/js/translated/order.js:4021
msgid "Allocate serial numbers"
msgstr "Wijs serienummers toe"
-#: templates/js/translated/order.js:3833
+#: templates/js/translated/order.js:4027
msgid "Purchase stock"
msgstr "Koop voorraad"
-#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038
+#: templates/js/translated/order.js:4034 templates/js/translated/order.js:4232
msgid "Calculate price"
msgstr "Bereken prijs"
-#: templates/js/translated/order.js:3852
+#: templates/js/translated/order.js:4046
msgid "Cannot be deleted as items have been shipped"
msgstr "Kan niet worden verwijderd omdat artikelen verzonden zijn"
-#: templates/js/translated/order.js:3855
+#: templates/js/translated/order.js:4049
msgid "Cannot be deleted as items have been allocated"
msgstr "Kan niet worden verwijderd omdat artikelen toegewezen zijn"
-#: templates/js/translated/order.js:3937
+#: templates/js/translated/order.js:4131
msgid "Allocate Serial Numbers"
msgstr "Wijs Serienummers Toe"
-#: templates/js/translated/order.js:4046
+#: templates/js/translated/order.js:4240
msgid "Update Unit Price"
msgstr "Werk Stukprijs Bij"
-#: templates/js/translated/order.js:4060
+#: templates/js/translated/order.js:4254
msgid "No matching line items"
msgstr "Geen overeenkomende artikelen"
-#: templates/js/translated/order.js:4296
+#: templates/js/translated/order.js:4490
msgid "No matching lines"
msgstr "Geen overeenkomende regels"
@@ -9374,173 +9420,177 @@ msgstr ""
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498
+#: templates/js/translated/part.js:584 templates/js/translated/part.js:1515
#: templates/js/translated/table_filters.js:468
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:596
+#: templates/js/translated/part.js:594
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:715
+#: templates/js/translated/part.js:628 templates/js/translated/part.js:713
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:634 templates/js/translated/part.js:719
+#: templates/js/translated/part.js:632 templates/js/translated/part.js:717
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:646
+#: templates/js/translated/part.js:644
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:650
+#: templates/js/translated/part.js:648
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:778
+#: templates/js/translated/part.js:776
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1180
+#: templates/js/translated/part.js:1200
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1204
+#: templates/js/translated/part.js:1224
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573
+#: templates/js/translated/part.js:1291 templates/js/translated/part.js:1602
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1310
-msgid "Not available"
-msgstr ""
-
-#: templates/js/translated/part.js:1461
+#: templates/js/translated/part.js:1482
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1496
+#: templates/js/translated/part.js:1513
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840
-#: templates/js/translated/stock.js:2347
+#: templates/js/translated/part.js:1537
+msgid "Allocated to build orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1541
+msgid "Allocated to sales orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1626 templates/js/translated/part.js:1869
+#: templates/js/translated/stock.js:2343
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1613
+#: templates/js/translated/part.js:1642
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1679
+#: templates/js/translated/part.js:1708
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1684
+#: templates/js/translated/part.js:1713
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:1689
+#: templates/js/translated/part.js:1718
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1702
+#: templates/js/translated/part.js:1731
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366
+#: templates/js/translated/part.js:1888 templates/js/translated/stock.js:2362
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1938
+#: templates/js/translated/part.js:1967
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:1954
+#: templates/js/translated/part.js:1983
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2012
+#: templates/js/translated/part.js:2041
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299
+#: templates/js/translated/part.js:2092 templates/js/translated/stock.js:1299
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300
+#: templates/js/translated/part.js:2093 templates/js/translated/stock.js:1300
#: templates/js/translated/stock.js:1560
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2070
+#: templates/js/translated/part.js:2099
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2092
+#: templates/js/translated/part.js:2121
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2106
+#: templates/js/translated/part.js:2135
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2131
+#: templates/js/translated/part.js:2160
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:2188
+#: templates/js/translated/part.js:2217
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2189
+#: templates/js/translated/part.js:2218
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355
+#: templates/js/translated/part.js:2383 templates/js/translated/part.js:2384
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2357
+#: templates/js/translated/part.js:2386
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2363
+#: templates/js/translated/part.js:2392
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2413
+#: templates/js/translated/part.js:2442
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2419
+#: templates/js/translated/part.js:2448
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2515
+#: templates/js/translated/part.js:2544
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2531
+#: templates/js/translated/part.js:2560
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2576
+#: templates/js/translated/part.js:2605
msgid "Minimum Stock Level"
msgstr ""
-#: templates/js/translated/part.js:2677
+#: templates/js/translated/part.js:2706
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:2696
+#: templates/js/translated/part.js:2725
msgid "Single Price Difference"
msgstr ""
@@ -9778,7 +9828,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:942 users/models.py:216
+#: templates/js/translated/stock.js:942 users/models.py:218
msgid "Add"
msgstr ""
@@ -9854,156 +9904,156 @@ msgstr "Toegewezen aan Verkooporder"
msgid "No stock location set"
msgstr "Geen voorraadlocatie ingesteld"
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1775
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1780
msgid "Stock item assigned to sales order"
msgstr "Voorraadartikel toegewezen aan verkooporder"
-#: templates/js/translated/stock.js:1787
+#: templates/js/translated/stock.js:1783
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1790
+#: templates/js/translated/stock.js:1786
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1792
+#: templates/js/translated/stock.js:1788
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1794
+#: templates/js/translated/stock.js:1790
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1797
+#: templates/js/translated/stock.js:1793
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1797
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1803
+#: templates/js/translated/stock.js:1799
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1810
+#: templates/js/translated/stock.js:1806
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:1808
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1814
+#: templates/js/translated/stock.js:1810
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1818
+#: templates/js/translated/stock.js:1814
#: templates/js/translated/table_filters.js:196
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1869
+#: templates/js/translated/stock.js:1865
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1948
+#: templates/js/translated/stock.js:1944
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1986
+#: templates/js/translated/stock.js:1982
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2159
+#: templates/js/translated/stock.js:2155
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2173
+#: templates/js/translated/stock.js:2169
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2174
+#: templates/js/translated/stock.js:2170
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2404
+#: templates/js/translated/stock.js:2400
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2493
+#: templates/js/translated/stock.js:2489
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2509
+#: templates/js/translated/stock.js:2505
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2531
+#: templates/js/translated/stock.js:2527
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2550
+#: templates/js/translated/stock.js:2546
msgid "Purchase order no longer exists"
msgstr "Inkooporder bestaat niet meer"
-#: templates/js/translated/stock.js:2569
+#: templates/js/translated/stock.js:2565
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2587
+#: templates/js/translated/stock.js:2583
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2610
+#: templates/js/translated/stock.js:2606
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2618
+#: templates/js/translated/stock.js:2614
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2694
+#: templates/js/translated/stock.js:2690
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781
+#: templates/js/translated/stock.js:2741 templates/js/translated/stock.js:2777
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2790
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2815
+#: templates/js/translated/stock.js:2811
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2816
+#: templates/js/translated/stock.js:2812
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2818
+#: templates/js/translated/stock.js:2814
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2819
+#: templates/js/translated/stock.js:2815
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2820
+#: templates/js/translated/stock.js:2816
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2821
+#: templates/js/translated/stock.js:2817
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2834
+#: templates/js/translated/stock.js:2830
msgid "Select part to install"
msgstr ""
@@ -10525,35 +10575,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:203
+#: users/models.py:205
msgid "Permission set"
msgstr ""
-#: users/models.py:211
+#: users/models.py:213
msgid "Group"
msgstr ""
-#: users/models.py:214
+#: users/models.py:216
msgid "View"
msgstr ""
-#: users/models.py:214
+#: users/models.py:216
msgid "Permission to view items"
msgstr ""
-#: users/models.py:216
+#: users/models.py:218
msgid "Permission to add items"
msgstr ""
-#: users/models.py:218
+#: users/models.py:220
msgid "Change"
msgstr ""
-#: users/models.py:218
+#: users/models.py:220
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:222
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/no/LC_MESSAGES/django.po b/InvenTree/locale/no/LC_MESSAGES/django.po
index 410c8746f3..5e90bbd114 100644
--- a/InvenTree/locale/no/LC_MESSAGES/django.po
+++ b/InvenTree/locale/no/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-08-25 10:08+0000\n"
-"PO-Revision-Date: 2022-08-26 01:55\n"
+"POT-Creation-Date: 2022-09-09 02:44+0000\n"
+"PO-Revision-Date: 2022-09-09 03:57\n"
"Last-Translator: \n"
"Language-Team: Norwegian\n"
"Language: no_NO\n"
@@ -29,9 +29,9 @@ msgstr "Feildetaljer kan ikke finnes i admin-panelet"
msgid "Enter date"
msgstr "Oppgi dato"
-#: InvenTree/fields.py:186 build/serializers.py:384
-#: build/templates/build/sidebar.html:21 company/models.py:523
-#: company/templates/company/sidebar.html:25 order/models.py:906
+#: InvenTree/fields.py:183 build/serializers.py:384
+#: build/templates/build/sidebar.html:21 company/models.py:524
+#: company/templates/company/sidebar.html:25 order/models.py:910
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17
#: part/templates/part/part_sidebar.html:59
@@ -40,11 +40,12 @@ msgstr "Oppgi dato"
#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823
#: stock/serializers.py:922 stock/serializers.py:1054
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099
-#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210
-#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859
-#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208
-#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1107
+#: templates/js/translated/company.js:1022
+#: templates/js/translated/order.js:2404 templates/js/translated/order.js:2555
+#: templates/js/translated/order.js:3053 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:4402 templates/js/translated/stock.js:1374
+#: templates/js/translated/stock.js:1976
msgid "Notes"
msgstr "Notater"
@@ -210,12 +211,12 @@ msgid "Select file to attach"
msgstr "Velg fil å legge ved"
#: InvenTree/models.py:402 company/models.py:124 company/models.py:276
-#: company/models.py:510 order/models.py:84 order/models.py:1245
+#: company/models.py:511 order/models.py:84 order/models.py:1249
#: part/models.py:802 part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
-#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848
-#: templates/js/translated/part.js:1534
+#: templates/js/translated/company.js:691
+#: templates/js/translated/company.js:1011
+#: templates/js/translated/order.js:3042 templates/js/translated/part.js:1563
msgid "Link"
msgstr "Lenke"
@@ -233,12 +234,12 @@ msgstr "Kommenter"
msgid "File comment"
msgstr "Kommentar til fil"
-#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665
-#: common/models.py:1666 common/models.py:1889 common/models.py:1890
-#: common/models.py:2152 common/models.py:2153 part/models.py:2239
-#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257
+#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1669
+#: common/models.py:1670 common/models.py:1893 common/models.py:1894
+#: common/models.py:2156 common/models.py:2157 part/models.py:2247
+#: part/models.py:2267 plugin/models.py:260 plugin/models.py:261
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2641
+#: templates/js/translated/stock.js:2637
msgid "User"
msgstr "Bruker"
@@ -275,28 +276,28 @@ msgstr "Feil ved endring av navn"
msgid "Invalid choice"
msgstr "Ugyldig valg"
-#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875
+#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1879
#: company/models.py:358 label/models.py:101 part/models.py:746
-#: part/models.py:2417 plugin/models.py:94 report/models.py:152
+#: part/models.py:2425 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin.html:134
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:347
-#: templates/js/translated/company.js:545
-#: templates/js/translated/company.js:758
+#: templates/js/translated/company.js:580
+#: templates/js/translated/company.js:793
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:688 templates/js/translated/part.js:840
-#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392
+#: templates/js/translated/part.js:686 templates/js/translated/part.js:838
+#: templates/js/translated/part.js:1955 templates/js/translated/stock.js:2388
msgid "Name"
msgstr "Navn"
#: InvenTree/models.py:544 build/models.py:174
#: build/templates/build/detail.html:24 company/models.py:282
-#: company/models.py:516 company/templates/company/company_base.html:71
+#: company/models.py:517 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:87 label/models.py:108
-#: order/models.py:82 part/models.py:769 part/models.py:2429
+#: company/templates/company/supplier_part.html:92 label/models.py:108
+#: order/models.py:82 part/models.py:769 part/models.py:2437
#: part/templates/part/category.html:80 part/templates/part/part_base.html:167
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
@@ -305,14 +306,14 @@ msgstr "Navn"
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/InvenTree/settings/settings.html:358
#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846
-#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409
-#: templates/js/translated/company.js:667
-#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637
-#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167
-#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962
-#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743
-#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478
+#: templates/js/translated/build.js:2512 templates/js/translated/company.js:444
+#: templates/js/translated/company.js:702
+#: templates/js/translated/company.js:986 templates/js/translated/order.js:1988
+#: templates/js/translated/order.js:2220 templates/js/translated/order.js:2831
+#: templates/js/translated/part.js:745 templates/js/translated/part.js:1187
+#: templates/js/translated/part.js:1463 templates/js/translated/part.js:1991
+#: templates/js/translated/part.js:2060 templates/js/translated/stock.js:1743
+#: templates/js/translated/stock.js:2420 templates/js/translated/stock.js:2474
msgid "Description"
msgstr "Beskrivelse"
@@ -325,7 +326,7 @@ msgid "parent"
msgstr "overkategori"
#: InvenTree/models.py:560 InvenTree/models.py:561
-#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:2426
msgid "Path"
msgstr ""
@@ -337,7 +338,7 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2745
+#: InvenTree/serializers.py:55 part/models.py:2753
msgid "Must be a valid number"
msgstr "Nummer må være gyldig"
@@ -522,7 +523,7 @@ msgid "Placed"
msgstr "Plassert"
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr "Fullført"
@@ -542,8 +543,8 @@ msgstr "Tapt"
msgid "Returned"
msgstr "Returnert"
-#: InvenTree/status_codes.py:141 order/models.py:1128
-#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785
+#: InvenTree/status_codes.py:141 order/models.py:1132
+#: templates/js/translated/order.js:3630 templates/js/translated/order.js:3979
msgid "Shipped"
msgstr "Sendt"
@@ -627,7 +628,7 @@ msgstr "Delt fra overordnet element"
msgid "Split child item"
msgstr "Delt fra underelement"
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080
msgid "Merged stock items"
msgstr "Sammenslått lagervare"
@@ -717,7 +718,7 @@ msgstr "Systeminformasjon"
msgid "About InvenTree"
msgstr ""
-#: build/api.py:217
+#: build/api.py:219
msgid "Build must be cancelled before it can be deleted"
msgstr ""
@@ -748,15 +749,15 @@ msgstr "Build Ordre"
msgid "Build Order Reference"
msgstr "Bygg ordrereferanse"
-#: build/models.py:166 order/models.py:240 order/models.py:623
-#: order/models.py:904 part/models.py:2663
+#: build/models.py:166 order/models.py:240 order/models.py:627
+#: order/models.py:908 part/models.py:2671
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853
-#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089
-#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629
-#: templates/js/translated/order.js:4137
+#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2251
+#: templates/js/translated/order.js:2484 templates/js/translated/order.js:3823
+#: templates/js/translated/order.js:4331
msgid "Reference"
msgstr "Referanse"
@@ -774,12 +775,12 @@ msgid "BuildOrder to which this build is allocated"
msgstr "Build order som denne build er tildelt til"
#: build/models.py:191 build/templates/build/build_base.html:80
-#: build/templates/build/detail.html:29 company/models.py:670
-#: order/models.py:1001 order/models.py:1112 order/models.py:1113
-#: part/models.py:343 part/models.py:2185 part/models.py:2200
-#: part/models.py:2219 part/models.py:2237 part/models.py:2336
-#: part/models.py:2463 part/models.py:2553 part/models.py:2638
-#: part/models.py:2914 part/serializers.py:814
+#: build/templates/build/detail.html:29 company/models.py:679
+#: order/models.py:1005 order/models.py:1116 order/models.py:1117
+#: part/models.py:343 part/models.py:2193 part/models.py:2208
+#: part/models.py:2227 part/models.py:2245 part/models.py:2344
+#: part/models.py:2471 part/models.py:2561 part/models.py:2646
+#: part/models.py:2922 part/serializers.py:814
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -795,18 +796,18 @@ msgstr "Build order som denne build er tildelt til"
#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800
#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682
#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517
-#: templates/js/translated/company.js:266
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:608
-#: templates/js/translated/company.js:868 templates/js/translated/order.js:105
-#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493
-#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613
-#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224
-#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586
+#: templates/js/translated/company.js:301
+#: templates/js/translated/company.js:531
+#: templates/js/translated/company.js:643
+#: templates/js/translated/company.js:904 templates/js/translated/order.js:106
+#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1638
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:3185
+#: templates/js/translated/order.js:3581 templates/js/translated/order.js:3807
+#: templates/js/translated/part.js:1172 templates/js/translated/part.js:1244
+#: templates/js/translated/part.js:1441 templates/js/translated/stock.js:586
#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504
-#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833
+#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2500
+#: templates/js/translated/stock.js:2695 templates/js/translated/stock.js:2829
msgid "Part"
msgstr "Del"
@@ -823,7 +824,7 @@ msgid "SalesOrder to which this build is allocated"
msgstr "Salgorder som denne build er tildelt til"
#: build/models.py:213 build/serializers.py:800
-#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979
+#: templates/js/translated/build.js:2114 templates/js/translated/order.js:3173
msgid "Source Location"
msgstr "Kilde plassering"
@@ -863,8 +864,8 @@ msgstr "Byggstatus"
msgid "Build status code"
msgstr "Byggstatuskode"
-#: build/models.py:251 build/serializers.py:225 order/serializers.py:447
-#: stock/models.py:662 templates/js/translated/order.js:1353
+#: build/models.py:251 build/serializers.py:225 order/serializers.py:464
+#: stock/models.py:662 templates/js/translated/order.js:1496
msgid "Batch Code"
msgstr "Batch kode"
@@ -873,11 +874,11 @@ msgid "Batch code for this build output"
msgstr "Batch kode for denne build output"
#: build/models.py:258 order/models.py:86 part/models.py:938
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2844
msgid "Creation Date"
msgstr "Opprettelsesdato"
-#: build/models.py:262 order/models.py:648
+#: build/models.py:262 order/models.py:652
msgid "Target completion date"
msgstr "Forventet sluttdato"
@@ -904,10 +905,10 @@ msgstr "Brukeren som utstede denne prosjekt order"
#: build/models.py:289 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:100
-#: order/templates/order/order_base.html:179
+#: order/templates/order/order_base.html:185
#: order/templates/order/sales_order_base.html:183 part/models.py:942
#: report/templates/report/inventree_build_order_base.html:158
-#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860
+#: templates/js/translated/build.js:2574 templates/js/translated/order.js:2022
msgid "Responsible"
msgstr "Ansvarlig"
@@ -917,9 +918,9 @@ msgstr "Bruker ansvarlig for denne prosjekt order"
#: build/models.py:295 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
-#: company/templates/company/supplier_part.html:153
+#: company/templates/company/supplier_part.html:165
#: part/templates/part/part_base.html:346 stock/models.py:656
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr "Ekstern link"
@@ -957,11 +958,11 @@ msgstr "Prosjektvare må spesifisere en prosjekt utdata, siden hovedvaren er mar
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1188 order/models.py:1379
+#: build/models.py:1188 order/models.py:1383
msgid "Stock item is over-allocated"
msgstr "Lagervare er overtildelt"
-#: build/models.py:1194 order/models.py:1382
+#: build/models.py:1194 order/models.py:1386
msgid "Allocation quantity must be greater than zero"
msgstr "Tildeling antallet må være større enn null"
@@ -973,7 +974,7 @@ msgstr "Mengden må væew 1 for serialisert lagervare"
msgid "Selected stock item not found in BOM"
msgstr "Valgt lagevare ikke funnet i BOM"
-#: build/models.py:1326 stock/templates/stock/item_base.html:172
+#: build/models.py:1326 stock/templates/stock/item_base.html:175
#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496
#: templates/navbar.html:38
msgid "Build"
@@ -983,18 +984,18 @@ msgstr "Prosjekt"
msgid "Build to allocate parts"
msgstr "Bygge for å tildele deler"
-#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015
-#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754
+#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1035
+#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754
#: stock/serializers.py:880 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:197
#: templates/js/translated/build.js:774 templates/js/translated/build.js:779
#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679
-#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992
-#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299
-#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486
+#: templates/js/translated/order.js:107 templates/js/translated/order.js:3186
+#: templates/js/translated/order.js:3488 templates/js/translated/order.js:3493
+#: templates/js/translated/order.js:3588 templates/js/translated/order.js:3680
#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752
-#: templates/js/translated/stock.js:2577
+#: templates/js/translated/stock.js:2573
msgid "Stock Item"
msgstr "Lagervare"
@@ -1004,11 +1005,11 @@ msgstr "Kilde lagervare"
#: build/models.py:1356 build/serializers.py:193
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1697
-#: company/templates/company/supplier_part.html:279 order/models.py:897
-#: order/models.py:1423 order/serializers.py:1155
+#: build/templates/build/detail.html:34 common/models.py:1701
+#: company/templates/company/supplier_part.html:291 order/models.py:901
+#: order/models.py:1427 order/serializers.py:1209
#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40
-#: part/models.py:2654 part/templates/part/detail.html:951
+#: part/models.py:2662 part/templates/part/detail.html:951
#: part/templates/part/detail.html:1037
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -1017,8 +1018,8 @@ msgstr "Kilde lagervare"
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:291 stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
+#: stock/serializers.py:291 stock/templates/stock/item_base.html:290
+#: stock/templates/stock/item_base.html:298
#: templates/email/build_order_completed.html:18
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691
#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458
@@ -1026,16 +1027,16 @@ msgstr "Kilde lagervare"
#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708
#: templates/js/translated/build.js:2129
#: templates/js/translated/model_renderers.js:120
-#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043
-#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313
-#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492
-#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143
-#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176
-#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686
-#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458
+#: templates/js/translated/order.js:123 templates/js/translated/order.js:1137
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:2490
+#: templates/js/translated/order.js:3187 templates/js/translated/order.js:3507
+#: templates/js/translated/order.js:3594 templates/js/translated/order.js:3686
+#: templates/js/translated/order.js:3829 templates/js/translated/order.js:4337
+#: templates/js/translated/part.js:1036 templates/js/translated/part.js:2205
+#: templates/js/translated/part.js:2674 templates/js/translated/part.js:2715
+#: templates/js/translated/part.js:2793 templates/js/translated/stock.js:458
#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782
-#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2707
msgid "Quantity"
msgstr "Antall"
@@ -1077,7 +1078,7 @@ msgid "Enter quantity for build output"
msgstr "Angi antall for build utgang"
#: build/serializers.py:208 build/serializers.py:665 order/models.py:318
-#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545
+#: order/serializers.py:304 order/serializers.py:459 part/serializers.py:545
#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251
#: stock/serializers.py:300
msgid "Quantity must be greater than zero"
@@ -1091,8 +1092,8 @@ msgstr ""
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159
-#: stock/serializers.py:309 templates/js/translated/order.js:1364
+#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213
+#: stock/serializers.py:309 templates/js/translated/order.js:1507
#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459
msgid "Serial Numbers"
msgstr "Serienummer"
@@ -1117,18 +1118,18 @@ msgstr ""
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532
+#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552
#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532
#: stock/serializers.py:915 stock/serializers.py:1148
-#: stock/templates/stock/item_base.html:385
+#: stock/templates/stock/item_base.html:388
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786
-#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391
-#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411
-#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500
+#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1534
+#: templates/js/translated/order.js:3500 templates/js/translated/order.js:3605
+#: templates/js/translated/order.js:3613 templates/js/translated/order.js:3694
#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588
#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960
-#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2514
msgid "Location"
msgstr "Beliggenhet"
@@ -1137,12 +1138,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:373 build/templates/build/build_base.html:145
-#: build/templates/build/detail.html:62 order/models.py:642
-#: order/serializers.py:465 stock/templates/stock/item_base.html:418
+#: build/templates/build/detail.html:62 order/models.py:646
+#: order/serializers.py:482 stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546
-#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830
-#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829
-#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727
+#: templates/js/translated/order.js:1643 templates/js/translated/order.js:1992
+#: templates/js/translated/order.js:2836 templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:2591 templates/js/translated/stock.js:2723
msgid "Status"
msgstr ""
@@ -1202,7 +1203,7 @@ msgstr ""
msgid "Required stock has not been fully allocated"
msgstr "Påkrevd varer er ikke fullt tildelt"
-#: build/serializers.py:527
+#: build/serializers.py:527 order/serializers.py:208 order/serializers.py:1103
msgid "Accept Incomplete"
msgstr ""
@@ -1218,8 +1219,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772
-#: part/models.py:2906
+#: build/serializers.py:577 build/serializers.py:622 part/models.py:2780
+#: part/models.py:2914
msgid "BOM Item"
msgstr "BOM varer"
@@ -1239,7 +1240,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr "Varen må være på lager"
-#: build/serializers.py:709 order/serializers.py:1073
+#: build/serializers.py:709 order/serializers.py:1093
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Tilgjengelig mengde ({q}) overskredet"
@@ -1256,7 +1257,7 @@ msgstr ""
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:750 order/serializers.py:1319
+#: build/serializers.py:750 order/serializers.py:1373
msgid "Allocation items must be provided"
msgstr ""
@@ -1371,13 +1372,13 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:154
-#: build/templates/build/detail.html:131 order/models.py:910
-#: order/templates/order/order_base.html:165
+#: build/templates/build/detail.html:131 order/models.py:914
+#: order/templates/order/order_base.html:171
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:125
-#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847
-#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658
-#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042
+#: templates/js/translated/build.js:2586 templates/js/translated/order.js:2009
+#: templates/js/translated/order.js:2351 templates/js/translated/order.js:2852
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1051
msgid "Target Date"
msgstr "Måldato"
@@ -1388,7 +1389,7 @@ msgstr ""
#: build/templates/build/build_base.html:159
#: build/templates/build/build_base.html:204
-#: order/templates/order/order_base.html:101
+#: order/templates/order/order_base.html:107
#: order/templates/order/sales_order_base.html:94
#: templates/js/translated/table_filters.js:320
#: templates/js/translated/table_filters.js:361
@@ -1404,15 +1405,15 @@ msgid "Completed"
msgstr "Fullført"
#: build/templates/build/build_base.html:179
-#: build/templates/build/detail.html:94 order/models.py:1105
-#: order/models.py:1199 order/models.py:1330
+#: build/templates/build/detail.html:94 order/models.py:1109
+#: order/models.py:1203 order/models.py:1334
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:365
+#: stock/templates/stock/item_base.html:368
#: templates/email/overdue_sales_order.html:15
-#: templates/js/translated/order.js:2604
+#: templates/js/translated/order.js:2798
msgid "Sales Order"
msgstr "Salgsorder"
@@ -1438,8 +1439,8 @@ msgstr "Lager kilde"
msgid "Stock can be taken from any available location."
msgstr "Lagervare kan hentes fra alle tilgengelige steder."
-#: build/templates/build/detail.html:49 order/models.py:1023
-#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199
+#: build/templates/build/detail.html:49 order/models.py:1027
+#: templates/js/translated/order.js:1644 templates/js/translated/order.js:2393
msgid "Destination"
msgstr "Destinasjon"
@@ -1452,18 +1453,18 @@ msgid "Allocated Parts"
msgstr "Tildelte deler"
#: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:165
+#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1215
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843
-#: templates/js/translated/stock.js:2734
+#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1839
+#: templates/js/translated/stock.js:2730
#: templates/js/translated/table_filters.js:159
#: templates/js/translated/table_filters.js:250
msgid "Batch"
msgstr ""
#: build/templates/build/detail.html:126
-#: order/templates/order/order_base.html:152
+#: order/templates/order/order_base.html:158
#: order/templates/order/sales_order_base.html:158
#: templates/js/translated/build.js:2554
msgid "Created"
@@ -1516,7 +1517,7 @@ msgstr "Bestill nødvendige deler"
#: build/templates/build/detail.html:187
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:85
-#: part/templates/part/category.html:183 templates/js/translated/order.js:1083
+#: part/templates/part/category.html:183 templates/js/translated/order.js:1177
msgid "Order Parts"
msgstr "Bestill deler"
@@ -1851,7 +1852,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr "Kopier kategori parametermaler ved oppretting av en del"
-#: common/models.py:951 part/models.py:2465 report/models.py:158
+#: common/models.py:951 part/models.py:2473 report/models.py:158
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:484
msgid "Template"
@@ -1861,7 +1862,7 @@ msgstr "Mal"
msgid "Parts are templates by default"
msgstr "Deler er maler som standard"
-#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446
+#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1454
#: templates/js/translated/table_filters.js:176
#: templates/js/translated/table_filters.js:447
msgid "Assembly"
@@ -2275,349 +2276,349 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1342 common/models.py:1658
+#: common/models.py:1344 common/models.py:1662
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1364
+#: common/models.py:1366
msgid "Show subscribed parts"
msgstr "Vis abbonerte deler"
-#: common/models.py:1365
+#: common/models.py:1367
msgid "Show subscribed parts on the homepage"
msgstr "Vis abbonerte deler på hjemmesiden"
-#: common/models.py:1371
+#: common/models.py:1373
msgid "Show subscribed categories"
msgstr "Vis abbonerte kategorier"
-#: common/models.py:1372
+#: common/models.py:1374
msgid "Show subscribed part categories on the homepage"
msgstr "Vis abbonerte delkatekorier på hjemmesiden"
-#: common/models.py:1378
+#: common/models.py:1380
msgid "Show latest parts"
msgstr "Vis nyeste deler"
-#: common/models.py:1379
+#: common/models.py:1381
msgid "Show latest parts on the homepage"
msgstr "Vis nyeste deler på hjemmesiden"
-#: common/models.py:1385
+#: common/models.py:1387
msgid "Recent Part Count"
msgstr "Antall nylig deler"
-#: common/models.py:1386
+#: common/models.py:1388
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1392
+#: common/models.py:1394
msgid "Show unvalidated BOMs"
msgstr "Vis uvaliderte BOMs"
-#: common/models.py:1393
+#: common/models.py:1395
msgid "Show BOMs that await validation on the homepage"
msgstr "Vis BOMs som venter validering på hjemmesiden"
-#: common/models.py:1399
+#: common/models.py:1401
msgid "Show recent stock changes"
msgstr "Vis nylige lagerendringer"
-#: common/models.py:1400
+#: common/models.py:1402
msgid "Show recently changed stock items on the homepage"
msgstr "Vis nylig endret lagervarer på hjemmesiden"
-#: common/models.py:1406
+#: common/models.py:1408
msgid "Recent Stock Count"
msgstr "Siste lagertelling"
-#: common/models.py:1407
+#: common/models.py:1409
msgid "Number of recent stock items to display on index page"
msgstr "Antall nylige lagervarer som skal vises på indeksside"
-#: common/models.py:1413
+#: common/models.py:1415
msgid "Show low stock"
msgstr "Vis lav lager"
-#: common/models.py:1414
+#: common/models.py:1416
msgid "Show low stock items on the homepage"
msgstr "Vis lav lagervarer på hjemmesiden"
-#: common/models.py:1420
+#: common/models.py:1422
msgid "Show depleted stock"
msgstr "Vis tom lagervarer"
-#: common/models.py:1421
+#: common/models.py:1423
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1427
+#: common/models.py:1429
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1430
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1434
+#: common/models.py:1436
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1435
+#: common/models.py:1437
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1441
+#: common/models.py:1443
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1442
+#: common/models.py:1444
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1448
+#: common/models.py:1450
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1449
+#: common/models.py:1451
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1455
+#: common/models.py:1457
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1456
+#: common/models.py:1458
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1462
+#: common/models.py:1464
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1463
+#: common/models.py:1465
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1469
+#: common/models.py:1471
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1470
+#: common/models.py:1472
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1476
+#: common/models.py:1478
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1477
+#: common/models.py:1479
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1483
+#: common/models.py:1485
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1484
+#: common/models.py:1486
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1490
+#: common/models.py:1492
msgid "Inline label display"
msgstr ""
-#: common/models.py:1491
+#: common/models.py:1493
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1499
msgid "Inline report display"
msgstr ""
-#: common/models.py:1498
+#: common/models.py:1500
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1506
msgid "Search Parts"
msgstr ""
-#: common/models.py:1505
+#: common/models.py:1507
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1513
msgid "Seach Supplier Parts"
msgstr ""
-#: common/models.py:1512
+#: common/models.py:1514
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1520
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:1519
+#: common/models.py:1521
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:1525
+#: common/models.py:1527
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1526
+#: common/models.py:1528
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1532
+#: common/models.py:1534
msgid "Search Categories"
msgstr ""
-#: common/models.py:1533
+#: common/models.py:1535
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1539
+#: common/models.py:1541
msgid "Search Stock"
msgstr ""
-#: common/models.py:1540
+#: common/models.py:1542
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1546
+#: common/models.py:1548
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1547
+#: common/models.py:1549
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1553
+#: common/models.py:1555
msgid "Search Locations"
msgstr ""
-#: common/models.py:1554
+#: common/models.py:1556
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1560
+#: common/models.py:1562
msgid "Search Companies"
msgstr ""
-#: common/models.py:1561
+#: common/models.py:1563
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1567
+#: common/models.py:1569
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1568
+#: common/models.py:1570
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1574
+#: common/models.py:1576
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1575
+#: common/models.py:1577
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1581
+#: common/models.py:1583
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1582
+#: common/models.py:1584
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1588
+#: common/models.py:1590
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1591
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1595
+#: common/models.py:1597
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1598
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1602
+#: common/models.py:1604
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1605
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1609
+#: common/models.py:1611
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1610
+#: common/models.py:1612
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1616
+#: common/models.py:1618
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1617
+#: common/models.py:1619
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1623
+#: common/models.py:1625
msgid "Date Format"
msgstr ""
-#: common/models.py:1624
+#: common/models.py:1626
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1638 part/templates/part/detail.html:41
+#: common/models.py:1640 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1641
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1698
+#: common/models.py:1702
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1705 company/serializers.py:366
-#: company/templates/company/supplier_part.html:284 order/models.py:938
-#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181
+#: common/models.py:1709 company/serializers.py:372
+#: company/templates/company/supplier_part.html:296 order/models.py:942
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:2210
msgid "Price"
msgstr ""
-#: common/models.py:1706
+#: common/models.py:1710
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1866 common/models.py:2044
+#: common/models.py:1870 common/models.py:2048
msgid "Endpoint"
msgstr ""
-#: common/models.py:1867
+#: common/models.py:1871
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1876
+#: common/models.py:1880
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1881 part/models.py:921 plugin/models.py:100
+#: common/models.py:1885 part/models.py:921 plugin/models.py:100
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:104
#: templates/js/translated/table_filters.js:316
@@ -2625,67 +2626,67 @@ msgstr ""
msgid "Active"
msgstr "Aktiv"
-#: common/models.py:1882
+#: common/models.py:1886
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1896
+#: common/models.py:1900
msgid "Token"
msgstr "Sjetong"
-#: common/models.py:1897
+#: common/models.py:1901
msgid "Token for access"
msgstr "Nøkkel for tilgang"
-#: common/models.py:1904
+#: common/models.py:1908
msgid "Secret"
msgstr "Hemmelig"
-#: common/models.py:1905
+#: common/models.py:1909
msgid "Shared secret for HMAC"
msgstr "Delt hemmlighet for HMAC"
-#: common/models.py:2011
+#: common/models.py:2015
msgid "Message ID"
msgstr "Melding ID"
-#: common/models.py:2012
+#: common/models.py:2016
msgid "Unique identifier for this message"
msgstr "Unik Id for denne meldingen"
-#: common/models.py:2020
+#: common/models.py:2024
msgid "Host"
msgstr "Vert"
-#: common/models.py:2021
+#: common/models.py:2025
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2032
msgid "Header"
msgstr "Tittel"
-#: common/models.py:2029
+#: common/models.py:2033
msgid "Header of this message"
msgstr "Overskrift for denne meldingen"
-#: common/models.py:2035
+#: common/models.py:2039
msgid "Body"
msgstr "Brødtekst"
-#: common/models.py:2036
+#: common/models.py:2040
msgid "Body of this message"
msgstr ""
-#: common/models.py:2045
+#: common/models.py:2049
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2054
msgid "Worked on"
msgstr "Arbeidet med"
-#: common/models.py:2051
+#: common/models.py:2055
msgid "Was the work on this message finished?"
msgstr "Var arbeidet med denne meldingen ferdig?"
@@ -2747,7 +2748,7 @@ msgstr "Beskrivelse av firmaet"
#: company/models.py:105 company/templates/company/company_base.html:100
#: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:413
+#: templates/js/translated/company.js:448
msgid "Website"
msgstr "Nettside"
@@ -2824,7 +2825,7 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr "Produserer dette firmaet deler?"
-#: company/models.py:148 company/serializers.py:372
+#: company/models.py:148 company/serializers.py:378
#: company/templates/company/company_base.html:106 part/serializers.py:153
#: part/serializers.py:184 stock/serializers.py:178
msgid "Currency"
@@ -2834,24 +2835,24 @@ msgstr "Valuta"
msgid "Default currency used for this company"
msgstr "Standardvaluta brukt for dette firmaet"
-#: company/models.py:248 company/models.py:481 stock/models.py:598
+#: company/models.py:248 company/models.py:482 stock/models.py:598
#: stock/serializers.py:85 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:542
msgid "Base Part"
msgstr ""
-#: company/models.py:252 company/models.py:485
+#: company/models.py:252 company/models.py:486
msgid "Select part"
msgstr ""
#: company/models.py:263 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:124
-#: stock/templates/stock/item_base.html:207
-#: templates/js/translated/company.js:397
-#: templates/js/translated/company.js:498
-#: templates/js/translated/company.js:633
-#: templates/js/translated/company.js:919 templates/js/translated/part.js:236
+#: company/templates/company/supplier_part.html:129
+#: stock/templates/stock/item_base.html:210
+#: templates/js/translated/company.js:432
+#: templates/js/translated/company.js:533
+#: templates/js/translated/company.js:668
+#: templates/js/translated/company.js:956 templates/js/translated/part.js:236
#: templates/js/translated/table_filters.js:419
msgid "Manufacturer"
msgstr ""
@@ -2861,12 +2862,12 @@ msgid "Select manufacturer"
msgstr ""
#: company/models.py:270 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:132
-#: templates/js/translated/company.js:269
-#: templates/js/translated/company.js:497
-#: templates/js/translated/company.js:649
-#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077
-#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027
+#: company/templates/company/supplier_part.html:137
+#: templates/js/translated/company.js:304
+#: templates/js/translated/company.js:532
+#: templates/js/translated/company.js:684
+#: templates/js/translated/company.js:975 templates/js/translated/order.js:2239
+#: templates/js/translated/part.js:247 templates/js/translated/part.js:1025
msgid "MPN"
msgstr ""
@@ -2882,10 +2883,10 @@ msgstr ""
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:328 company/models.py:352 company/models.py:504
+#: company/models.py:328 company/models.py:352 company/models.py:505
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:220
msgid "Manufacturer Part"
msgstr ""
@@ -2895,8 +2896,8 @@ msgstr ""
#: company/models.py:365
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2095 templates/js/translated/company.js:546
-#: templates/js/translated/company.js:764 templates/js/translated/part.js:849
+#: stock/models.py:2095 templates/js/translated/company.js:581
+#: templates/js/translated/company.js:799 templates/js/translated/part.js:847
#: templates/js/translated/stock.js:1360
msgid "Value"
msgstr ""
@@ -2905,10 +2906,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:372 part/models.py:888 part/models.py:2425
+#: company/models.py:372 part/models.py:888 part/models.py:2433
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:352
-#: templates/js/translated/company.js:770 templates/js/translated/part.js:855
+#: templates/js/translated/company.js:805 templates/js/translated/part.js:853
msgid "Units"
msgstr ""
@@ -2916,106 +2917,119 @@ msgstr ""
msgid "Parameter units"
msgstr ""
-#: company/models.py:449
+#: company/models.py:450
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:491 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:108 order/models.py:258
-#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:224
+#: company/models.py:492 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:113 order/models.py:258
+#: order/templates/order/order_base.html:121 part/bom.py:237 part/bom.py:265
+#: stock/templates/stock/item_base.html:227
#: templates/email/overdue_purchase_order.html:16
-#: templates/js/translated/company.js:268
-#: templates/js/translated/company.js:401
-#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813
-#: templates/js/translated/part.js:217 templates/js/translated/part.js:995
+#: templates/js/translated/company.js:303
+#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:929 templates/js/translated/order.js:1975
+#: templates/js/translated/part.js:217 templates/js/translated/part.js:993
#: templates/js/translated/table_filters.js:423
msgid "Supplier"
msgstr ""
-#: company/models.py:492 templates/js/translated/part.js:218
+#: company/models.py:493 templates/js/translated/part.js:218
msgid "Select supplier"
msgstr ""
-#: company/models.py:497 company/templates/company/supplier_part.html:118
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267
-#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228
-#: templates/js/translated/part.js:1013
+#: company/models.py:498 company/templates/company/supplier_part.html:123
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:302
+#: templates/js/translated/order.js:2226 templates/js/translated/part.js:228
+#: templates/js/translated/part.js:1011
msgid "SKU"
msgstr ""
-#: company/models.py:498 templates/js/translated/part.js:229
+#: company/models.py:499 templates/js/translated/part.js:229
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:505
+#: company/models.py:506
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:511
+#: company/models.py:512
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:517
+#: company/models.py:518
msgid "Supplier part description"
msgstr ""
-#: company/models.py:522 company/templates/company/supplier_part.html:146
-#: part/models.py:2666 part/templates/part/upload_bom.html:59
+#: company/models.py:523 company/templates/company/supplier_part.html:158
+#: part/models.py:2674 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399
msgid "Note"
msgstr ""
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "base cost"
msgstr ""
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:528 company/templates/company/supplier_part.html:139
-#: stock/models.py:624 stock/templates/stock/item_base.html:240
-#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976
+#: company/models.py:529 company/templates/company/supplier_part.html:144
+#: stock/models.py:624 stock/templates/stock/item_base.html:243
+#: templates/js/translated/company.js:991 templates/js/translated/stock.js:1972
msgid "Packaging"
msgstr ""
-#: company/models.py:528
+#: company/models.py:529
msgid "Part packaging"
msgstr ""
-#: company/models.py:530 part/models.py:1783
+#: company/models.py:532 company/serializers.py:242
+#: company/templates/company/supplier_part.html:151
+#: templates/js/translated/company.js:996 templates/js/translated/order.js:820
+#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:2270 templates/js/translated/order.js:2287
+#: templates/js/translated/part.js:1043 templates/js/translated/part.js:1095
+msgid "Pack Quantity"
+msgstr ""
+
+#: company/models.py:533
+msgid "Unit quantity supplied in a single pack"
+msgstr ""
+
+#: company/models.py:539 part/models.py:1783
msgid "multiple"
msgstr ""
-#: company/models.py:530
+#: company/models.py:539
msgid "Order multiple"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part.html:94
+#: company/models.py:547 company/templates/company/supplier_part.html:99
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823
-#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979
-#: templates/js/translated/part.js:600 templates/js/translated/part.js:603
+#: templates/js/translated/bom.js:915 templates/js/translated/build.js:1823
+#: templates/js/translated/build.js:2686 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:601
#: templates/js/translated/table_filters.js:186
msgid "Available"
msgstr ""
-#: company/models.py:539
+#: company/models.py:548
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:543
+#: company/models.py:552
msgid "Availability Updated"
msgstr ""
-#: company/models.py:544
+#: company/models.py:553
msgid "Date of last update of availability data"
msgstr ""
-#: company/models.py:672
+#: company/models.py:681
msgid "last updated"
msgstr ""
@@ -3029,12 +3043,12 @@ msgstr ""
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386
+#: templates/InvenTree/search.html:179 templates/js/translated/company.js:421
msgid "Company"
msgstr ""
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:624
+#: templates/js/translated/order.js:689
msgid "Create Purchase Order"
msgstr ""
@@ -3047,7 +3061,7 @@ msgid "Edit company information"
msgstr ""
#: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:329
+#: templates/js/translated/company.js:364
msgid "Edit Company"
msgstr ""
@@ -3070,13 +3084,13 @@ msgstr ""
msgid "Download image from URL"
msgstr "Last ned bilde fra URL"
-#: company/templates/company/company_base.html:86 order/models.py:637
+#: company/templates/company/company_base.html:86 order/models.py:641
#: order/templates/order/sales_order_base.html:116 stock/models.py:643
#: stock/models.py:644 stock/serializers.py:809
-#: stock/templates/stock/item_base.html:396
+#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
-#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619
-#: templates/js/translated/stock.js:2559
+#: templates/js/translated/company.js:428 templates/js/translated/order.js:2813
+#: templates/js/translated/stock.js:2555
#: templates/js/translated/table_filters.js:427
msgid "Customer"
msgstr "Kunde"
@@ -3211,23 +3225,23 @@ msgid "Manufacturers"
msgstr "Produsenter"
#: company/templates/company/manufacturer_part.html:35
-#: company/templates/company/supplier_part.html:186
+#: company/templates/company/supplier_part.html:198
#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80
msgid "Order part"
msgstr "Bestill del"
#: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:681
+#: templates/js/translated/company.js:716
msgid "Edit manufacturer part"
msgstr "Endre produsent del"
#: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:682
+#: templates/js/translated/company.js:717
msgid "Delete manufacturer part"
msgstr "Slett produsentdel"
#: company/templates/company/manufacturer_part.html:65
-#: company/templates/company/supplier_part.html:77
+#: company/templates/company/supplier_part.html:82
msgid "Internal Part"
msgstr "Intern del"
@@ -3250,8 +3264,8 @@ msgstr "Slett leverandørdeler"
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:371 part/templates/part/detail.html:401
-#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34
-#: users/models.py:220
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:34
+#: users/models.py:222
msgid "Delete"
msgstr "Slett"
@@ -3296,9 +3310,9 @@ msgstr "Tildelt lagervarer"
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:607
-#: stock/templates/stock/item_base.html:233
-#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041
-#: templates/js/translated/stock.js:1933
+#: stock/templates/stock/item_base.html:236
+#: templates/js/translated/company.js:945 templates/js/translated/order.js:1135
+#: templates/js/translated/stock.js:1929
msgid "Supplier Part"
msgstr ""
@@ -3308,7 +3322,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:40
#: company/templates/company/supplier_part.html:41
-#: company/templates/company/supplier_part.html:187
+#: company/templates/company/supplier_part.html:199
#: part/templates/part/detail.html:88
msgid "Order Part"
msgstr ""
@@ -3320,81 +3334,87 @@ msgstr ""
#: company/templates/company/supplier_part.html:48
#: company/templates/company/supplier_part.html:49
-#: templates/js/translated/company.js:212
+#: templates/js/translated/company.js:247
msgid "Edit Supplier Part"
msgstr ""
#: company/templates/company/supplier_part.html:53
+#: company/templates/company/supplier_part.html:54
+#: templates/js/translated/company.js:222
+msgid "Duplicate Supplier Part"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:58
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:54
+#: company/templates/company/supplier_part.html:59
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:112
+#: company/templates/company/supplier_part.html:117
msgid "No supplier information available"
msgstr ""
-#: company/templates/company/supplier_part.html:165
+#: company/templates/company/supplier_part.html:177
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr ""
-#: company/templates/company/supplier_part.html:168
+#: company/templates/company/supplier_part.html:180
#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181
msgid "Create new stock item"
msgstr ""
-#: company/templates/company/supplier_part.html:169
+#: company/templates/company/supplier_part.html:181
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182
#: templates/js/translated/stock.js:435
msgid "New Stock Item"
msgstr ""
-#: company/templates/company/supplier_part.html:182
+#: company/templates/company/supplier_part.html:194
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr ""
-#: company/templates/company/supplier_part.html:207
+#: company/templates/company/supplier_part.html:219
#: part/templates/part/prices.html:10
msgid "Pricing Information"
msgstr ""
-#: company/templates/company/supplier_part.html:212
-#: company/templates/company/supplier_part.html:326
-#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253
+#: company/templates/company/supplier_part.html:224
+#: company/templates/company/supplier_part.html:338
+#: part/templates/part/prices.html:276 templates/js/translated/part.js:2282
msgid "Add Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:250
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:252
-#: templates/js/translated/part.js:2263
+#: company/templates/company/supplier_part.html:264
+#: templates/js/translated/part.js:2292
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:266
-#: templates/js/translated/part.js:2277
+#: company/templates/company/supplier_part.html:278
+#: templates/js/translated/part.js:2306
msgid "Edit Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:291
+#: company/templates/company/supplier_part.html:303
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part.html:292
+#: company/templates/company/supplier_part.html:304
msgid "Delete price break"
msgstr ""
-#: company/templates/company/supplier_part.html:301
+#: company/templates/company/supplier_part.html:313
msgid "Last updated"
msgstr ""
-#: company/templates/company/supplier_part.html:382
+#: company/templates/company/supplier_part.html:394
msgid "Update Part Availability"
msgstr ""
@@ -3404,8 +3424,8 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313
-#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959
+#: templates/js/translated/part.js:749 templates/js/translated/part.js:1334
+#: templates/js/translated/part.js:1495 templates/js/translated/stock.js:959
#: templates/js/translated/stock.js:1754 templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -3432,7 +3452,7 @@ msgstr ""
#: stock/templates/stock/location.html:178
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2436 users/models.py:40
+#: templates/js/translated/stock.js:2432 users/models.py:40
msgid "Stock Items"
msgstr ""
@@ -3534,7 +3554,7 @@ msgstr ""
msgid "Order description"
msgstr ""
-#: order/models.py:84 order/models.py:1246
+#: order/models.py:84 order/models.py:1250
msgid "Link to external page"
msgstr ""
@@ -3550,11 +3570,11 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:241 order/models.py:624
+#: order/models.py:241 order/models.py:628
msgid "Order reference"
msgstr ""
-#: order/models.py:249 order/models.py:642
+#: order/models.py:249 order/models.py:646
msgid "Purchase order status"
msgstr ""
@@ -3562,8 +3582,8 @@ msgstr ""
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:262 order/templates/order/order_base.html:127
-#: templates/js/translated/order.js:1822
+#: order/models.py:262 order/templates/order/order_base.html:133
+#: templates/js/translated/order.js:1984
msgid "Supplier Reference"
msgstr ""
@@ -3603,245 +3623,245 @@ msgstr ""
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:638
+#: order/models.py:642
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer Reference "
msgstr ""
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:649
+#: order/models.py:653
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:652 order/models.py:1204
-#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828
+#: order/models.py:656 order/models.py:1208
+#: templates/js/translated/order.js:2860 templates/js/translated/order.js:3022
msgid "Shipment Date"
msgstr ""
-#: order/models.py:659
+#: order/models.py:663
msgid "shipped by"
msgstr ""
-#: order/models.py:714
+#: order/models.py:718
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:718
+#: order/models.py:722
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:721
+#: order/models.py:725 templates/js/translated/order.js:419
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:724
+#: order/models.py:728
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:898
+#: order/models.py:902
msgid "Item quantity"
msgstr ""
-#: order/models.py:904
+#: order/models.py:908
msgid "Line item reference"
msgstr ""
-#: order/models.py:906
+#: order/models.py:910
msgid "Line item notes"
msgstr ""
-#: order/models.py:911
+#: order/models.py:915
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:929
+#: order/models.py:933
msgid "Context"
msgstr ""
-#: order/models.py:930
+#: order/models.py:934
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:939
+#: order/models.py:943
msgid "Unit price"
msgstr ""
-#: order/models.py:969
+#: order/models.py:973
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:977
+#: order/models.py:981
msgid "deleted"
msgstr ""
-#: order/models.py:983 order/models.py:1063 order/models.py:1104
-#: order/models.py:1198 order/models.py:1330
-#: templates/js/translated/order.js:3284
+#: order/models.py:987 order/models.py:1067 order/models.py:1108
+#: order/models.py:1202 order/models.py:1334
+#: templates/js/translated/order.js:3478
msgid "Order"
msgstr ""
-#: order/models.py:984 order/models.py:1063
+#: order/models.py:988 order/models.py:1067
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:179
+#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
-#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042
-#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972
-#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540
+#: templates/js/translated/order.js:619 templates/js/translated/order.js:1136
+#: templates/js/translated/order.js:1959 templates/js/translated/part.js:970
+#: templates/js/translated/stock.js:1909 templates/js/translated/stock.js:2536
msgid "Purchase Order"
msgstr ""
-#: order/models.py:1002
+#: order/models.py:1006
msgid "Supplier part"
msgstr ""
-#: order/models.py:1009 order/templates/order/order_base.html:172
-#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105
+#: order/models.py:1013 order/templates/order/order_base.html:178
+#: templates/js/translated/order.js:1641 templates/js/translated/order.js:2373
+#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1125
#: templates/js/translated/table_filters.js:338
msgid "Received"
msgstr ""
-#: order/models.py:1010
+#: order/models.py:1014
msgid "Number of items received"
msgstr ""
-#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734
-#: stock/serializers.py:169 stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1964
+#: order/models.py:1021 part/templates/part/prices.html:181 stock/models.py:734
+#: stock/serializers.py:169 stock/templates/stock/item_base.html:189
+#: templates/js/translated/stock.js:1960
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1018
+#: order/models.py:1022
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1026
+#: order/models.py:1030
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1092
+#: order/models.py:1096
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1097
+#: order/models.py:1101
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1123 part/templates/part/part_pricing.html:115
+#: order/models.py:1127 part/templates/part/part_pricing.html:115
#: part/templates/part/prices.html:121 part/templates/part/prices.html:290
msgid "Sale Price"
msgstr ""
-#: order/models.py:1124
+#: order/models.py:1128
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1129
+#: order/models.py:1133
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1205
+#: order/models.py:1209
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1212
+#: order/models.py:1216
msgid "Checked By"
msgstr ""
-#: order/models.py:1213
+#: order/models.py:1217
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1220 order/models.py:1405 order/serializers.py:1170
-#: order/serializers.py:1294 templates/js/translated/model_renderers.js:314
+#: order/models.py:1224 order/models.py:1409 order/serializers.py:1224
+#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314
msgid "Shipment"
msgstr ""
-#: order/models.py:1221
+#: order/models.py:1225
msgid "Shipment number"
msgstr ""
-#: order/models.py:1225
+#: order/models.py:1229
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1231
+#: order/models.py:1235
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1232
+#: order/models.py:1236
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1239
+#: order/models.py:1243
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1240
+#: order/models.py:1244
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1258
+#: order/models.py:1262
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1261
+#: order/models.py:1265
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1364 order/models.py:1366
+#: order/models.py:1368 order/models.py:1370
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1370
+#: order/models.py:1374
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1372
+#: order/models.py:1376
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1375
+#: order/models.py:1379
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1385 order/serializers.py:1066
+#: order/models.py:1389 order/serializers.py:1086
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1388
+#: order/models.py:1392
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1389
+#: order/models.py:1393
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1397
+#: order/models.py:1401
msgid "Line"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1410
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1419 templates/js/translated/notification.js:55
+#: order/models.py:1423 templates/js/translated/notification.js:55
msgid "Item"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1424
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1423
+#: order/models.py:1427
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3853,111 +3873,119 @@ msgstr ""
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:294
+#: order/serializers.py:209 order/serializers.py:1104
+msgid "Allow order to be closed with incomplete line items"
+msgstr ""
+
+#: order/serializers.py:220 order/serializers.py:1115
+msgid "Order has incomplete line items"
+msgstr ""
+
+#: order/serializers.py:311
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:318
+#: order/serializers.py:335
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:354
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:342
+#: order/serializers.py:359
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:348
+#: order/serializers.py:365
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:349
+#: order/serializers.py:366
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:413 order/serializers.py:1138
+#: order/serializers.py:430 order/serializers.py:1192
msgid "Line Item"
msgstr ""
-#: order/serializers.py:419
+#: order/serializers.py:436
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:429 order/serializers.py:533
+#: order/serializers.py:446 order/serializers.py:553
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:448 templates/js/translated/order.js:1354
+#: order/serializers.py:465 templates/js/translated/order.js:1497
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:456 templates/js/translated/order.js:1365
+#: order/serializers.py:473 templates/js/translated/order.js:1508
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:469
+#: order/serializers.py:486
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:470
+#: order/serializers.py:487
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:484
+#: order/serializers.py:501
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:507
+#: order/serializers.py:527
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:549
+#: order/serializers.py:569
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:566
+#: order/serializers.py:586
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:577
+#: order/serializers.py:597
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:883
+#: order/serializers.py:903
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:964
+#: order/serializers.py:984
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1027 order/serializers.py:1147
+#: order/serializers.py:1047 order/serializers.py:1201
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1049
+#: order/serializers.py:1069
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1160
+#: order/serializers.py:1214
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1182 order/serializers.py:1302
+#: order/serializers.py:1236 order/serializers.py:1356
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1185 order/serializers.py:1305
+#: order/serializers.py:1239 order/serializers.py:1359
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1235
+#: order/serializers.py:1289
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1245
+#: order/serializers.py:1299
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3993,83 +4021,83 @@ msgstr ""
msgid "Order actions"
msgstr ""
-#: order/templates/order/order_base.html:45
+#: order/templates/order/order_base.html:46
#: order/templates/order/sales_order_base.html:58
msgid "Edit order"
msgstr ""
-#: order/templates/order/order_base.html:47
+#: order/templates/order/order_base.html:50
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr ""
-#: order/templates/order/order_base.html:50
+#: order/templates/order/order_base.html:55
msgid "Duplicate order"
msgstr ""
-#: order/templates/order/order_base.html:55
+#: order/templates/order/order_base.html:61
msgid "Place order"
msgstr ""
-#: order/templates/order/order_base.html:59
+#: order/templates/order/order_base.html:65
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:61
+#: order/templates/order/order_base.html:67
#: order/templates/order/purchase_order_detail.html:30
msgid "Receive Items"
msgstr ""
-#: order/templates/order/order_base.html:63
+#: order/templates/order/order_base.html:69
msgid "Mark order as complete"
msgstr ""
-#: order/templates/order/order_base.html:65
+#: order/templates/order/order_base.html:71
#: order/templates/order/sales_order_base.html:68
msgid "Complete Order"
msgstr ""
-#: order/templates/order/order_base.html:87
+#: order/templates/order/order_base.html:93
#: order/templates/order/sales_order_base.html:80
msgid "Order Reference"
msgstr ""
-#: order/templates/order/order_base.html:92
+#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:85
msgid "Order Description"
msgstr ""
-#: order/templates/order/order_base.html:97
+#: order/templates/order/order_base.html:103
#: order/templates/order/sales_order_base.html:90
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:120
+#: order/templates/order/order_base.html:126
msgid "No suppplier information available"
msgstr ""
-#: order/templates/order/order_base.html:133
+#: order/templates/order/order_base.html:139
#: order/templates/order/sales_order_base.html:129
msgid "Completed Line Items"
msgstr ""
-#: order/templates/order/order_base.html:139
+#: order/templates/order/order_base.html:145
#: order/templates/order/sales_order_base.html:135
#: order/templates/order/sales_order_base.html:145
msgid "Incomplete"
msgstr ""
-#: order/templates/order/order_base.html:158
+#: order/templates/order/order_base.html:164
#: report/templates/report/inventree_build_order_base.html:121
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:186
+#: order/templates/order/order_base.html:192
#: order/templates/order/sales_order_base.html:190
msgid "Total cost"
msgstr ""
-#: order/templates/order/order_base.html:190
+#: order/templates/order/order_base.html:196
#: order/templates/order/sales_order_base.html:194
msgid "Total cost could not be calculated"
msgstr ""
@@ -4102,8 +4130,8 @@ msgstr ""
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463
#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015
-#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443
-#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625
+#: templates/js/translated/order.js:1084 templates/js/translated/order.js:1586
+#: templates/js/translated/order.js:3097 templates/js/translated/stock.js:625
#: templates/js/translated/stock.js:793
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
@@ -4139,7 +4167,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:26
#: order/templates/order/sales_order_detail.html:22
#: order/templates/order/sales_order_detail.html:255
-#: templates/js/translated/order.js:663
+#: templates/js/translated/order.js:728
msgid "Add Line Item"
msgstr ""
@@ -4167,7 +4195,7 @@ msgstr ""
msgid "Order Notes"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:228
+#: order/templates/order/purchase_order_detail.html:232
msgid "Add Order Line"
msgstr ""
@@ -4185,12 +4213,12 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:231
+#: templates/js/translated/order.js:232
msgid "Complete Shipments"
msgstr ""
#: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:258
+#: templates/js/translated/order.js:397
msgid "Complete Sales Order"
msgstr ""
@@ -4199,7 +4227,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2632
+#: templates/js/translated/order.js:2826
msgid "Customer Reference"
msgstr ""
@@ -4223,7 +4251,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:72
-#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1116
#: templates/js/translated/build.js:1923
msgid "Actions"
msgstr ""
@@ -4308,14 +4336,14 @@ msgid "Total Stock"
msgstr ""
#: part/bom.py:129 part/templates/part/part_base.html:189
-#: templates/js/translated/order.js:3724
+#: templates/js/translated/order.js:3918
msgid "Available Stock"
msgstr ""
#: part/bom.py:130 part/templates/part/part_base.html:207
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853
-#: templates/js/translated/part.js:590 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503
+#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1853
+#: templates/js/translated/part.js:588 templates/js/translated/part.js:608
+#: templates/js/translated/part.js:1337 templates/js/translated/part.js:1520
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr ""
@@ -4344,7 +4372,7 @@ msgstr ""
msgid "Icon (optional)"
msgstr ""
-#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16
+#: part/models.py:122 part/models.py:2516 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -4361,7 +4389,7 @@ msgstr ""
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146
+#: templates/js/translated/part.js:2004 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr ""
@@ -4391,7 +4419,7 @@ msgstr ""
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:745 part/models.py:2562
+#: part/models.py:745 part/models.py:2570
msgid "Part name"
msgstr ""
@@ -4424,11 +4452,11 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:783 part/models.py:2257 part/models.py:2507
+#: part/models.py:783 part/models.py:2265 part/models.py:2515
#: part/templates/part/part_base.html:257
#: templates/InvenTree/settings/settings.html:232
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688
+#: templates/js/translated/part.js:1477 templates/js/translated/part.js:1717
msgid "Category"
msgstr ""
@@ -4437,7 +4465,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:789 part/templates/part/part_base.html:266
-#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:1430
#: templates/js/translated/stock.js:1726
msgid "IPN"
msgstr ""
@@ -4451,7 +4479,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:797 part/templates/part/part_base.html:273
-#: report/models.py:171 templates/js/translated/part.js:743
+#: report/models.py:171 templates/js/translated/part.js:741
msgid "Revision"
msgstr ""
@@ -4543,245 +4571,245 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2304
+#: part/models.py:2312
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2321
+#: part/models.py:2329
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2341 templates/js/translated/part.js:2026
+#: part/models.py:2349 templates/js/translated/part.js:2055
#: templates/js/translated/stock.js:1340
msgid "Test Name"
msgstr ""
-#: part/models.py:2342
+#: part/models.py:2350
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2347
+#: part/models.py:2355
msgid "Test Description"
msgstr ""
-#: part/models.py:2348
+#: part/models.py:2356
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2353 templates/js/translated/part.js:2035
+#: part/models.py:2361 templates/js/translated/part.js:2064
#: templates/js/translated/table_filters.js:302
msgid "Required"
msgstr ""
-#: part/models.py:2354
+#: part/models.py:2362
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2359 templates/js/translated/part.js:2043
+#: part/models.py:2367 templates/js/translated/part.js:2072
msgid "Requires Value"
msgstr ""
-#: part/models.py:2360
+#: part/models.py:2368
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2365 templates/js/translated/part.js:2050
+#: part/models.py:2373 templates/js/translated/part.js:2079
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2366
+#: part/models.py:2374
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2374
+#: part/models.py:2382
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2410
+#: part/models.py:2418
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2418
+#: part/models.py:2426
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2433
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2430
+#: part/models.py:2438
msgid "Parameter description"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2471
msgid "Parent Part"
msgstr ""
-#: part/models.py:2465 part/models.py:2513 part/models.py:2514
+#: part/models.py:2473 part/models.py:2521 part/models.py:2522
#: templates/InvenTree/settings/settings.html:227
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Data"
msgstr ""
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2518 templates/InvenTree/settings/settings.html:236
+#: part/models.py:2526 templates/InvenTree/settings/settings.html:236
msgid "Default Value"
msgstr ""
-#: part/models.py:2519
+#: part/models.py:2527
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2554
+#: part/models.py:2562
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2557 templates/js/translated/model_renderers.js:212
+#: part/models.py:2565 templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr ""
-#: part/models.py:2558
+#: part/models.py:2566
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2561
+#: part/models.py:2569
msgid "Part Name"
msgstr ""
-#: part/models.py:2565
+#: part/models.py:2573
msgid "Part IPN"
msgstr ""
-#: part/models.py:2566
+#: part/models.py:2574
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2569
+#: part/models.py:2577
msgid "Level"
msgstr ""
-#: part/models.py:2570
+#: part/models.py:2578
msgid "BOM level"
msgstr ""
-#: part/models.py:2639
+#: part/models.py:2647
msgid "Select parent part"
msgstr ""
-#: part/models.py:2647
+#: part/models.py:2655
msgid "Sub part"
msgstr ""
-#: part/models.py:2648
+#: part/models.py:2656
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2654
+#: part/models.py:2662
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2656 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997
+#: part/models.py:2664 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:876 templates/js/translated/bom.js:1005
#: templates/js/translated/table_filters.js:100
msgid "Optional"
msgstr ""
-#: part/models.py:2656
+#: part/models.py:2664
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2659 part/templates/part/upload_bom.html:55
+#: part/models.py:2667 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2660
+#: part/models.py:2668
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2671
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2666
+#: part/models.py:2674
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "Checksum"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2672 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1014
+#: part/models.py:2680 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:1022
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:96
msgid "Inherited"
msgstr ""
-#: part/models.py:2673
+#: part/models.py:2681
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2678 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1006
+#: part/models.py:2686 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:1014
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2679
+#: part/models.py:2687
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2757 stock/models.py:468
+#: part/models.py:2765 stock/models.py:468
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2766 part/models.py:2768
+#: part/models.py:2774 part/models.py:2776
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2873
+#: part/models.py:2881
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2902
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2915
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2923
msgid "Substitute part"
msgstr ""
-#: part/models.py:2930
+#: part/models.py:2938
msgid "Part 1"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Part 2"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2960
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:2956
+#: part/models.py:2964
msgid "Duplicate relationship already exists"
msgstr ""
@@ -5309,10 +5337,10 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:624
-#: templates/js/translated/company.js:884
+#: templates/js/translated/company.js:659
+#: templates/js/translated/company.js:920
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:654 templates/js/translated/part.js:731
+#: templates/js/translated/part.js:652 templates/js/translated/part.js:729
msgid "Inactive"
msgstr ""
@@ -5327,28 +5355,28 @@ msgid "This part is a variant of %(link)s"
msgstr ""
#: part/templates/part/part_base.html:194
-#: templates/js/translated/company.js:974
+#: templates/js/translated/company.js:1027
#: templates/js/translated/table_filters.js:201
msgid "In Stock"
msgstr ""
#: part/templates/part/part_base.html:215
-#: stock/templates/stock/item_base.html:379
+#: stock/templates/stock/item_base.html:382
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:224
-#: stock/templates/stock/item_base.html:372
+#: stock/templates/stock/item_base.html:375
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1043
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320
-#: templates/js/translated/part.js:1510
+#: part/templates/part/part_base.html:238 templates/js/translated/part.js:591
+#: templates/js/translated/part.js:611 templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1527
msgid "Building"
msgstr ""
@@ -5361,7 +5389,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:328
+#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
@@ -5400,7 +5428,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:989
+#: templates/js/translated/bom.js:997
msgid "No supplier pricing available"
msgstr ""
@@ -5439,7 +5467,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:53
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468
+#: templates/js/translated/order.js:2001 templates/js/translated/stock.js:2464
msgid "Date"
msgstr ""
@@ -5495,7 +5523,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983
+#: part/templates/part/prices.html:160 templates/js/translated/bom.js:991
msgid "Supplier Cost"
msgstr ""
@@ -5533,8 +5561,8 @@ msgstr ""
msgid "No sale pice history available for this part."
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616
-#: templates/js/translated/part.js:1308
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:614
+#: templates/js/translated/part.js:1329 templates/js/translated/part.js:1331
msgid "No Stock"
msgstr ""
@@ -5735,19 +5763,19 @@ msgstr ""
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:186
+#: plugin/models.py:188
msgid "Plugin"
msgstr ""
-#: plugin/models.py:249
+#: plugin/models.py:253
msgid "Method"
msgstr ""
-#: plugin/plugin.py:251
+#: plugin/plugin.py:252
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:263
+#: plugin/plugin.py:264
msgid "No date found"
msgstr ""
@@ -5925,12 +5953,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:648 stock/templates/stock/item_base.html:317
+#: stock/models.py:648 stock/templates/stock/item_base.html:320
#: templates/js/translated/build.js:456 templates/js/translated/build.js:608
#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706
#: templates/js/translated/model_renderers.js:118
-#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403
-#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490
+#: templates/js/translated/order.js:121 templates/js/translated/order.js:3597
+#: templates/js/translated/order.js:3684 templates/js/translated/stock.js:490
msgid "Serial Number"
msgstr ""
@@ -5963,7 +5991,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780
-#: templates/js/translated/stock.js:2717
+#: templates/js/translated/stock.js:2713
msgid "Serial"
msgstr ""
@@ -5980,7 +6008,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
#: stock/models.py:89 stock/models.py:739
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:250
msgid "Owner"
msgstr ""
@@ -6046,7 +6074,7 @@ msgstr ""
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:631 stock/templates/stock/item_base.html:356
+#: stock/models.py:631 stock/templates/stock/item_base.html:359
msgid "Installed In"
msgstr ""
@@ -6086,8 +6114,8 @@ msgstr ""
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:706 stock/templates/stock/item_base.html:424
-#: templates/js/translated/stock.js:1883
+#: stock/models.py:706 stock/templates/stock/item_base.html:427
+#: templates/js/translated/stock.js:1879
msgid "Expiry Date"
msgstr ""
@@ -6379,7 +6407,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2857
msgid "Install Stock Item"
msgstr ""
@@ -6479,134 +6507,135 @@ msgstr ""
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:158
+#: stock/templates/stock/item_base.html:161
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:193
+#: stock/templates/stock/item_base.html:196
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:214
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:254
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/location.html:132
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:268
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:266
+#: stock/templates/stock/item_base.html:269
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:279
+#: stock/templates/stock/item_base.html:282
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:290
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:298
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:301
+#: stock/templates/stock/item_base.html:304
msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
msgstr ""
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:345
+#: stock/templates/stock/item_base.html:348
msgid "Available Quantity"
msgstr ""
-#: stock/templates/stock/item_base.html:389
+#: stock/templates/stock/item_base.html:392
#: templates/js/translated/build.js:1729
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:404
+#: stock/templates/stock/item_base.html:407
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#: templates/js/translated/table_filters.js:269
msgid "Expired"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:275
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:437
-#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899
+#: stock/templates/stock/item_base.html:440
+#: templates/js/translated/company.js:1038
+#: templates/js/translated/stock.js:1895
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:442
+#: stock/templates/stock/item_base.html:445
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:516
+#: stock/templates/stock/item_base.html:519
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:589
+#: stock/templates/stock/item_base.html:592
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:592
+#: stock/templates/stock/item_base.html:595
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:593
+#: stock/templates/stock/item_base.html:596
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:601
+#: stock/templates/stock/item_base.html:604
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:629
+#: stock/templates/stock/item_base.html:632
msgid "Return to Stock"
msgstr ""
@@ -6739,11 +6768,11 @@ msgstr ""
msgid "Refer to the error log in the admin interface for further details"
msgstr ""
-#: templates/503.html:11 templates/503.html:36
+#: templates/503.html:11 templates/503.html:34
msgid "Site is in Maintenance"
msgstr ""
-#: templates/503.html:42
+#: templates/503.html:40
msgid "The site is currently in maintenance and should be up again soon!"
msgstr ""
@@ -7509,7 +7538,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:644
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "Bekreft"
@@ -7728,7 +7757,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1481
+#: templates/js/translated/bom.js:1489
msgid "Required Quantity"
msgstr ""
@@ -7742,7 +7771,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2522
+#: templates/js/translated/part.js:2551
msgid "Minimum Quantity"
msgstr ""
@@ -7947,7 +7976,7 @@ msgstr ""
#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620
#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601
#: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003
-#: templates/js/translated/order.js:1085 templates/modals.html:15
+#: templates/js/translated/order.js:1179 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -7957,12 +7986,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145
+#: templates/js/translated/order.js:960 templates/js/translated/tables.js:145
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:867
+#: templates/js/translated/order.js:961
msgid "Select file format"
msgstr ""
@@ -8058,73 +8087,73 @@ msgstr ""
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857
-#: templates/js/translated/order.js:3738
+#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1857
+#: templates/js/translated/order.js:3932
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861
+#: templates/js/translated/bom.js:940 templates/js/translated/build.js:1861
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516
+#: templates/js/translated/bom.js:942 templates/js/translated/build.js:1863
+#: templates/js/translated/part.js:761 templates/js/translated/part.js:1533
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865
+#: templates/js/translated/bom.js:944 templates/js/translated/build.js:1865
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:954
+#: templates/js/translated/bom.js:962
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:969
+#: templates/js/translated/bom.js:977
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:976
+#: templates/js/translated/bom.js:984
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145
+#: templates/js/translated/bom.js:1033 templates/js/translated/bom.js:1153
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1052
+#: templates/js/translated/bom.js:1060
msgid "Including On Order"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1124
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1118
+#: templates/js/translated/bom.js:1126
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1120
+#: templates/js/translated/bom.js:1128
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284
+#: templates/js/translated/bom.js:1130 templates/js/translated/bom.js:1292
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1124
+#: templates/js/translated/bom.js:1132
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650
+#: templates/js/translated/bom.js:1228 templates/js/translated/build.js:1650
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789
+#: templates/js/translated/bom.js:1472 templates/js/translated/build.js:1789
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1486
+#: templates/js/translated/bom.js:1498
msgid "Inherited from parent BOM"
msgstr ""
@@ -8267,12 +8296,12 @@ msgid "No required tests for this build"
msgstr ""
#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697
-#: templates/js/translated/order.js:3438
+#: templates/js/translated/order.js:3632
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698
-#: templates/js/translated/order.js:3439
+#: templates/js/translated/order.js:3633
msgid "Delete stock allocation"
msgstr ""
@@ -8292,20 +8321,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745
+#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3939
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743
+#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3937
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127
-#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757
+#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3951
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837
+#: templates/js/translated/build.js:1930 templates/js/translated/order.js:4031
msgid "Build stock"
msgstr ""
@@ -8313,21 +8342,21 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830
+#: templates/js/translated/build.js:1937 templates/js/translated/order.js:4024
msgid "Allocate stock"
msgstr ""
#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965
+#: templates/js/translated/order.js:1007 templates/js/translated/order.js:3159
#: templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966
+#: templates/js/translated/build.js:1977 templates/js/translated/order.js:3160
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914
+#: templates/js/translated/build.js:2026 templates/js/translated/order.js:3108
msgid "Specify stock allocation quantity"
msgstr ""
@@ -8339,7 +8368,7 @@ msgstr ""
msgid "All selected parts have been fully allocated"
msgstr ""
-#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980
+#: templates/js/translated/build.js:2115 templates/js/translated/order.js:3174
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
@@ -8347,11 +8376,11 @@ msgstr ""
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077
+#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3271
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154
+#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3348
msgid "No matching stock items"
msgstr ""
@@ -8383,9 +8412,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401
-#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1422
+#: templates/js/translated/part.js:1948 templates/js/translated/stock.js:1686
+#: templates/js/translated/stock.js:2382
msgid "Select"
msgstr ""
@@ -8397,7 +8426,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647
+#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2643
msgid "No user information"
msgstr ""
@@ -8405,111 +8434,115 @@ msgstr ""
msgid "No parts allocated for"
msgstr ""
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:179
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:181
msgid "Add Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
msgid "Edit Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:167 templates/js/translated/order.js:511
+#: templates/js/translated/company.js:169 templates/js/translated/order.js:576
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:195 templates/js/translated/order.js:734
+#: templates/js/translated/company.js:197 templates/js/translated/order.js:828
msgid "Add Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:262
+#: templates/js/translated/company.js:297
msgid "All selected supplier parts will be deleted"
msgstr "Alle valgte leverandørdeler vil slettes"
-#: templates/js/translated/company.js:278
+#: templates/js/translated/company.js:313
msgid "Delete Supplier Parts"
msgstr ""
-#: templates/js/translated/company.js:350
+#: templates/js/translated/company.js:385
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:427
+#: templates/js/translated/company.js:462
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:471
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:451
+#: templates/js/translated/company.js:486
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:492
+#: templates/js/translated/company.js:527
msgid "All selected manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:507
+#: templates/js/translated/company.js:542
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:541
+#: templates/js/translated/company.js:576
msgid "All selected parameters will be deleted"
msgstr ""
-#: templates/js/translated/company.js:555
+#: templates/js/translated/company.js:590
msgid "Delete Parameters"
msgstr ""
-#: templates/js/translated/company.js:596
+#: templates/js/translated/company.js:631
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:616
-#: templates/js/translated/company.js:876 templates/js/translated/part.js:638
-#: templates/js/translated/part.js:723
+#: templates/js/translated/company.js:651
+#: templates/js/translated/company.js:912 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:721
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:620
-#: templates/js/translated/company.js:880 templates/js/translated/part.js:642
-#: templates/js/translated/part.js:727
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:916 templates/js/translated/part.js:640
+#: templates/js/translated/part.js:725
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:748 templates/js/translated/part.js:830
+#: templates/js/translated/company.js:783 templates/js/translated/part.js:828
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:785 templates/js/translated/part.js:872
+#: templates/js/translated/company.js:820 templates/js/translated/part.js:870
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:786 templates/js/translated/part.js:873
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:871
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:805 templates/js/translated/part.js:890
+#: templates/js/translated/company.js:840 templates/js/translated/part.js:888
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:816 templates/js/translated/part.js:902
+#: templates/js/translated/company.js:851 templates/js/translated/part.js:900
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:856
+#: templates/js/translated/company.js:891
msgid "No supplier parts found"
msgstr ""
-#: templates/js/translated/company.js:1002
+#: templates/js/translated/company.js:1032
+msgid "Availability"
+msgstr ""
+
+#: templates/js/translated/company.js:1055
msgid "Edit supplier part"
msgstr ""
-#: templates/js/translated/company.js:1003
+#: templates/js/translated/company.js:1056
msgid "Delete supplier part"
msgstr ""
@@ -8547,61 +8580,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:367 templates/js/translated/forms.js:382
-#: templates/js/translated/forms.js:396 templates/js/translated/forms.js:410
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:369
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:384
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:398
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:670
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:771
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1269 templates/modals.html:19
+#: templates/js/translated/forms.js:1274 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1702
+#: templates/js/translated/forms.js:1707
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1917 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2170
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2648
+#: templates/js/translated/forms.js:2653
msgid "Select Columns"
msgstr ""
@@ -8792,409 +8825,422 @@ msgstr ""
msgid "Notifications will load here"
msgstr ""
-#: templates/js/translated/order.js:96
+#: templates/js/translated/order.js:97
msgid "No stock items have been allocated to this shipment"
msgstr ""
-#: templates/js/translated/order.js:101
+#: templates/js/translated/order.js:102
msgid "The following stock items will be shipped"
msgstr ""
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:142
msgid "Complete Shipment"
msgstr ""
-#: templates/js/translated/order.js:161
+#: templates/js/translated/order.js:162
msgid "Confirm Shipment"
msgstr ""
-#: templates/js/translated/order.js:217
+#: templates/js/translated/order.js:218
msgid "No pending shipments found"
msgstr ""
-#: templates/js/translated/order.js:221
+#: templates/js/translated/order.js:222
msgid "No stock items have been allocated to pending shipments"
msgstr ""
-#: templates/js/translated/order.js:253
+#: templates/js/translated/order.js:254
msgid "Skip"
msgstr ""
-#: templates/js/translated/order.js:283
+#: templates/js/translated/order.js:284
msgid "Complete Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:289
+#: templates/js/translated/order.js:301 templates/js/translated/order.js:413
msgid "Mark this order as complete?"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:307
msgid "All line items have been received"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:312
msgid "This order has line items which have not been marked as received."
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:313 templates/js/translated/order.js:427
msgid "Completing this order means that the order and line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:324
+#: templates/js/translated/order.js:336
msgid "Cancel Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:329
+#: templates/js/translated/order.js:341
msgid "Are you sure you wish to cancel this purchase order?"
msgstr ""
-#: templates/js/translated/order.js:335
+#: templates/js/translated/order.js:347
msgid "This purchase order can not be cancelled"
msgstr ""
-#: templates/js/translated/order.js:358
+#: templates/js/translated/order.js:370
msgid "Issue Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:363
+#: templates/js/translated/order.js:375
msgid "After placing this purchase order, line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:385
+#: templates/js/translated/order.js:426
+msgid "This order has line items which have not been completed."
+msgstr ""
+
+#: templates/js/translated/order.js:450
msgid "Cancel Sales Order"
msgstr ""
-#: templates/js/translated/order.js:390
+#: templates/js/translated/order.js:455
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:444
+#: templates/js/translated/order.js:509
msgid "Create New Shipment"
msgstr ""
-#: templates/js/translated/order.js:469
+#: templates/js/translated/order.js:534
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:494
+#: templates/js/translated/order.js:559
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:555
+#: templates/js/translated/order.js:620
msgid "Select purchase order to duplicate"
msgstr ""
-#: templates/js/translated/order.js:562
+#: templates/js/translated/order.js:627
msgid "Duplicate Line Items"
msgstr ""
-#: templates/js/translated/order.js:563
+#: templates/js/translated/order.js:628
msgid "Duplicate all line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:570
+#: templates/js/translated/order.js:635
msgid "Duplicate Extra Lines"
msgstr ""
-#: templates/js/translated/order.js:571
+#: templates/js/translated/order.js:636
msgid "Duplicate extra line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:588
+#: templates/js/translated/order.js:653
msgid "Edit Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:605
+#: templates/js/translated/order.js:670
msgid "Duplication Options"
msgstr ""
-#: templates/js/translated/order.js:863
+#: templates/js/translated/order.js:957
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:914
+#: templates/js/translated/order.js:1008
msgid "At least one purchaseable part must be selected"
msgstr ""
-#: templates/js/translated/order.js:939
+#: templates/js/translated/order.js:1033
msgid "Quantity to order"
msgstr ""
-#: templates/js/translated/order.js:948
+#: templates/js/translated/order.js:1042
msgid "New supplier part"
msgstr ""
-#: templates/js/translated/order.js:966
+#: templates/js/translated/order.js:1060
msgid "New purchase order"
msgstr ""
-#: templates/js/translated/order.js:999
+#: templates/js/translated/order.js:1093
msgid "Add to purchase order"
msgstr ""
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1233
msgid "No matching supplier parts"
msgstr ""
-#: templates/js/translated/order.js:1123
+#: templates/js/translated/order.js:1252
msgid "No matching purchase orders"
msgstr ""
-#: templates/js/translated/order.js:1300
+#: templates/js/translated/order.js:1429
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1430
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420
+#: templates/js/translated/order.js:1450 templates/js/translated/order.js:1563
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431
+#: templates/js/translated/order.js:1456 templates/js/translated/order.js:1574
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1339
+#: templates/js/translated/order.js:1471
+msgid "Received Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:1482
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144
+#: templates/js/translated/order.js:1546 templates/js/translated/stock.js:2140
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:1494
+#: templates/js/translated/order.js:1639
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:1495
+#: templates/js/translated/order.js:1640
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:1497
+#: templates/js/translated/order.js:1642
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:1516
+#: templates/js/translated/order.js:1661
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:1517
+#: templates/js/translated/order.js:1662
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943
+#: templates/js/translated/order.js:1940 templates/js/translated/part.js:941
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2803
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674
-#: templates/js/translated/order.js:2815
+#: templates/js/translated/order.js:2017 templates/js/translated/order.js:2868
+#: templates/js/translated/order.js:3009
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889
+#: templates/js/translated/order.js:2115 templates/js/translated/order.js:4083
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911
+#: templates/js/translated/order.js:2132 templates/js/translated/order.js:4105
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:4116
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:2026
+#: templates/js/translated/order.js:2188
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:2215 templates/js/translated/order.js:3817
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309
-#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156
-#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753
+#: templates/js/translated/order.js:2270 templates/js/translated/part.js:1043
+#: templates/js/translated/part.js:1095
+msgid "Total Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:2301 templates/js/translated/order.js:2503
+#: templates/js/translated/order.js:3842 templates/js/translated/order.js:4350
+#: templates/js/translated/part.js:2184 templates/js/translated/part.js:2782
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325
-#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172
+#: templates/js/translated/order.js:2316 templates/js/translated/order.js:2519
+#: templates/js/translated/order.js:3858 templates/js/translated/order.js:4366
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706
-#: templates/js/translated/part.js:1070
+#: templates/js/translated/order.js:2357 templates/js/translated/order.js:3900
+#: templates/js/translated/part.js:1079
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110
+#: templates/js/translated/order.js:2416 templates/js/translated/part.js:1130
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2420 templates/js/translated/order.js:4037
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844
+#: templates/js/translated/order.js:2421 templates/js/translated/order.js:4038
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848
+#: templates/js/translated/order.js:2422 templates/js/translated/order.js:4042
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221
+#: templates/js/translated/order.js:2568 templates/js/translated/order.js:4415
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222
+#: templates/js/translated/order.js:2569 templates/js/translated/order.js:4416
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223
+#: templates/js/translated/order.js:2570 templates/js/translated/order.js:4417
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253
+#: templates/js/translated/order.js:2600 templates/js/translated/order.js:4447
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274
+#: templates/js/translated/order.js:2621 templates/js/translated/order.js:4468
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285
+#: templates/js/translated/order.js:2632 templates/js/translated/order.js:4479
msgid "Delete Line"
msgstr ""
-#: templates/js/translated/order.js:2449
+#: templates/js/translated/order.js:2643
msgid "No matching line"
msgstr ""
-#: templates/js/translated/order.js:2560
+#: templates/js/translated/order.js:2754
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:2623
+#: templates/js/translated/order.js:2817
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:2721
+#: templates/js/translated/order.js:2915
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:2724
+#: templates/js/translated/order.js:2918
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:2729
+#: templates/js/translated/order.js:2923
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:2749
+#: templates/js/translated/order.js:2943
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:2766
+#: templates/js/translated/order.js:2960
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:2800
+#: templates/js/translated/order.js:2994
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:2810
+#: templates/js/translated/order.js:3004
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:2834
+#: templates/js/translated/order.js:3028
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:2840
+#: templates/js/translated/order.js:3034
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:2844
+#: templates/js/translated/order.js:3038
msgid "Invoice"
msgstr ""
-#: templates/js/translated/order.js:3013
+#: templates/js/translated/order.js:3207
msgid "Add Shipment"
msgstr ""
-#: templates/js/translated/order.js:3064
+#: templates/js/translated/order.js:3258
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/order.js:3065
+#: templates/js/translated/order.js:3259
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:3273
+#: templates/js/translated/order.js:3467
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:3352
+#: templates/js/translated/order.js:3546
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3369
+#: templates/js/translated/order.js:3563
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:3370
+#: templates/js/translated/order.js:3564
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504
+#: templates/js/translated/order.js:3609 templates/js/translated/order.js:3698
#: templates/js/translated/stock.js:1602
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513
+#: templates/js/translated/order.js:3617 templates/js/translated/order.js:3707
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3827
+#: templates/js/translated/order.js:4021
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3833
+#: templates/js/translated/order.js:4027
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038
+#: templates/js/translated/order.js:4034 templates/js/translated/order.js:4232
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3852
+#: templates/js/translated/order.js:4046
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3855
+#: templates/js/translated/order.js:4049
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3937
+#: templates/js/translated/order.js:4131
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:4046
+#: templates/js/translated/order.js:4240
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:4060
+#: templates/js/translated/order.js:4254
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4296
+#: templates/js/translated/order.js:4490
msgid "No matching lines"
msgstr ""
@@ -9374,173 +9420,177 @@ msgstr ""
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498
+#: templates/js/translated/part.js:584 templates/js/translated/part.js:1515
#: templates/js/translated/table_filters.js:468
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:596
+#: templates/js/translated/part.js:594
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:715
+#: templates/js/translated/part.js:628 templates/js/translated/part.js:713
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:634 templates/js/translated/part.js:719
+#: templates/js/translated/part.js:632 templates/js/translated/part.js:717
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:646
+#: templates/js/translated/part.js:644
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:650
+#: templates/js/translated/part.js:648
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:778
+#: templates/js/translated/part.js:776
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1180
+#: templates/js/translated/part.js:1200
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1204
+#: templates/js/translated/part.js:1224
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573
+#: templates/js/translated/part.js:1291 templates/js/translated/part.js:1602
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1310
-msgid "Not available"
-msgstr ""
-
-#: templates/js/translated/part.js:1461
+#: templates/js/translated/part.js:1482
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1496
+#: templates/js/translated/part.js:1513
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840
-#: templates/js/translated/stock.js:2347
+#: templates/js/translated/part.js:1537
+msgid "Allocated to build orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1541
+msgid "Allocated to sales orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1626 templates/js/translated/part.js:1869
+#: templates/js/translated/stock.js:2343
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1613
+#: templates/js/translated/part.js:1642
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1679
+#: templates/js/translated/part.js:1708
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1684
+#: templates/js/translated/part.js:1713
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:1689
+#: templates/js/translated/part.js:1718
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1702
+#: templates/js/translated/part.js:1731
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366
+#: templates/js/translated/part.js:1888 templates/js/translated/stock.js:2362
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1938
+#: templates/js/translated/part.js:1967
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:1954
+#: templates/js/translated/part.js:1983
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2012
+#: templates/js/translated/part.js:2041
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299
+#: templates/js/translated/part.js:2092 templates/js/translated/stock.js:1299
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300
+#: templates/js/translated/part.js:2093 templates/js/translated/stock.js:1300
#: templates/js/translated/stock.js:1560
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2070
+#: templates/js/translated/part.js:2099
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2092
+#: templates/js/translated/part.js:2121
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2106
+#: templates/js/translated/part.js:2135
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2131
+#: templates/js/translated/part.js:2160
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:2188
+#: templates/js/translated/part.js:2217
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2189
+#: templates/js/translated/part.js:2218
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355
+#: templates/js/translated/part.js:2383 templates/js/translated/part.js:2384
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2357
+#: templates/js/translated/part.js:2386
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2363
+#: templates/js/translated/part.js:2392
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2413
+#: templates/js/translated/part.js:2442
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2419
+#: templates/js/translated/part.js:2448
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2515
+#: templates/js/translated/part.js:2544
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2531
+#: templates/js/translated/part.js:2560
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2576
+#: templates/js/translated/part.js:2605
msgid "Minimum Stock Level"
msgstr ""
-#: templates/js/translated/part.js:2677
+#: templates/js/translated/part.js:2706
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:2696
+#: templates/js/translated/part.js:2725
msgid "Single Price Difference"
msgstr ""
@@ -9778,7 +9828,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:942 users/models.py:216
+#: templates/js/translated/stock.js:942 users/models.py:218
msgid "Add"
msgstr ""
@@ -9854,156 +9904,156 @@ msgstr ""
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1775
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1780
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1787
+#: templates/js/translated/stock.js:1783
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1790
+#: templates/js/translated/stock.js:1786
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1792
+#: templates/js/translated/stock.js:1788
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1794
+#: templates/js/translated/stock.js:1790
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1797
+#: templates/js/translated/stock.js:1793
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1797
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1803
+#: templates/js/translated/stock.js:1799
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1810
+#: templates/js/translated/stock.js:1806
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:1808
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1814
+#: templates/js/translated/stock.js:1810
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1818
+#: templates/js/translated/stock.js:1814
#: templates/js/translated/table_filters.js:196
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1869
+#: templates/js/translated/stock.js:1865
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1948
+#: templates/js/translated/stock.js:1944
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1986
+#: templates/js/translated/stock.js:1982
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2159
+#: templates/js/translated/stock.js:2155
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2173
+#: templates/js/translated/stock.js:2169
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2174
+#: templates/js/translated/stock.js:2170
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2404
+#: templates/js/translated/stock.js:2400
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2493
+#: templates/js/translated/stock.js:2489
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2509
+#: templates/js/translated/stock.js:2505
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2531
+#: templates/js/translated/stock.js:2527
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2550
+#: templates/js/translated/stock.js:2546
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2569
+#: templates/js/translated/stock.js:2565
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2587
+#: templates/js/translated/stock.js:2583
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2610
+#: templates/js/translated/stock.js:2606
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2618
+#: templates/js/translated/stock.js:2614
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2694
+#: templates/js/translated/stock.js:2690
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781
+#: templates/js/translated/stock.js:2741 templates/js/translated/stock.js:2777
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2790
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2815
+#: templates/js/translated/stock.js:2811
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2816
+#: templates/js/translated/stock.js:2812
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2818
+#: templates/js/translated/stock.js:2814
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2819
+#: templates/js/translated/stock.js:2815
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2820
+#: templates/js/translated/stock.js:2816
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2821
+#: templates/js/translated/stock.js:2817
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2834
+#: templates/js/translated/stock.js:2830
msgid "Select part to install"
msgstr ""
@@ -10525,35 +10575,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:203
+#: users/models.py:205
msgid "Permission set"
msgstr ""
-#: users/models.py:211
+#: users/models.py:213
msgid "Group"
msgstr ""
-#: users/models.py:214
+#: users/models.py:216
msgid "View"
msgstr ""
-#: users/models.py:214
+#: users/models.py:216
msgid "Permission to view items"
msgstr ""
-#: users/models.py:216
+#: users/models.py:218
msgid "Permission to add items"
msgstr ""
-#: users/models.py:218
+#: users/models.py:220
msgid "Change"
msgstr ""
-#: users/models.py:218
+#: users/models.py:220
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:222
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po
index 29f0da480c..0910a69f3e 100644
--- a/InvenTree/locale/pl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pl/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-08-25 10:08+0000\n"
-"PO-Revision-Date: 2022-08-26 01:55\n"
+"POT-Creation-Date: 2022-09-09 02:44+0000\n"
+"PO-Revision-Date: 2022-09-09 03:57\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
"Language: pl_PL\n"
@@ -29,9 +29,9 @@ msgstr "Szczegóły błędu można znaleźć w panelu administracyjnym"
msgid "Enter date"
msgstr "Wprowadź dane"
-#: InvenTree/fields.py:186 build/serializers.py:384
-#: build/templates/build/sidebar.html:21 company/models.py:523
-#: company/templates/company/sidebar.html:25 order/models.py:906
+#: InvenTree/fields.py:183 build/serializers.py:384
+#: build/templates/build/sidebar.html:21 company/models.py:524
+#: company/templates/company/sidebar.html:25 order/models.py:910
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17
#: part/templates/part/part_sidebar.html:59
@@ -40,11 +40,12 @@ msgstr "Wprowadź dane"
#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823
#: stock/serializers.py:922 stock/serializers.py:1054
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099
-#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210
-#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859
-#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208
-#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1107
+#: templates/js/translated/company.js:1022
+#: templates/js/translated/order.js:2404 templates/js/translated/order.js:2555
+#: templates/js/translated/order.js:3053 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:4402 templates/js/translated/stock.js:1374
+#: templates/js/translated/stock.js:1976
msgid "Notes"
msgstr "Uwagi"
@@ -210,12 +211,12 @@ msgid "Select file to attach"
msgstr "Wybierz plik do załączenia"
#: InvenTree/models.py:402 company/models.py:124 company/models.py:276
-#: company/models.py:510 order/models.py:84 order/models.py:1245
+#: company/models.py:511 order/models.py:84 order/models.py:1249
#: part/models.py:802 part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
-#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848
-#: templates/js/translated/part.js:1534
+#: templates/js/translated/company.js:691
+#: templates/js/translated/company.js:1011
+#: templates/js/translated/order.js:3042 templates/js/translated/part.js:1563
msgid "Link"
msgstr "Łącze"
@@ -233,12 +234,12 @@ msgstr "Komentarz"
msgid "File comment"
msgstr "Komentarz pliku"
-#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665
-#: common/models.py:1666 common/models.py:1889 common/models.py:1890
-#: common/models.py:2152 common/models.py:2153 part/models.py:2239
-#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257
+#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1669
+#: common/models.py:1670 common/models.py:1893 common/models.py:1894
+#: common/models.py:2156 common/models.py:2157 part/models.py:2247
+#: part/models.py:2267 plugin/models.py:260 plugin/models.py:261
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2641
+#: templates/js/translated/stock.js:2637
msgid "User"
msgstr "Użytkownik"
@@ -275,28 +276,28 @@ msgstr "Błąd zmiany nazwy pliku"
msgid "Invalid choice"
msgstr "Błędny wybór"
-#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875
+#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1879
#: company/models.py:358 label/models.py:101 part/models.py:746
-#: part/models.py:2417 plugin/models.py:94 report/models.py:152
+#: part/models.py:2425 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin.html:134
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:347
-#: templates/js/translated/company.js:545
-#: templates/js/translated/company.js:758
+#: templates/js/translated/company.js:580
+#: templates/js/translated/company.js:793
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:688 templates/js/translated/part.js:840
-#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392
+#: templates/js/translated/part.js:686 templates/js/translated/part.js:838
+#: templates/js/translated/part.js:1955 templates/js/translated/stock.js:2388
msgid "Name"
msgstr "Nazwa"
#: InvenTree/models.py:544 build/models.py:174
#: build/templates/build/detail.html:24 company/models.py:282
-#: company/models.py:516 company/templates/company/company_base.html:71
+#: company/models.py:517 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:87 label/models.py:108
-#: order/models.py:82 part/models.py:769 part/models.py:2429
+#: company/templates/company/supplier_part.html:92 label/models.py:108
+#: order/models.py:82 part/models.py:769 part/models.py:2437
#: part/templates/part/category.html:80 part/templates/part/part_base.html:167
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
@@ -305,14 +306,14 @@ msgstr "Nazwa"
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/InvenTree/settings/settings.html:358
#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846
-#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409
-#: templates/js/translated/company.js:667
-#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637
-#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167
-#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962
-#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743
-#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478
+#: templates/js/translated/build.js:2512 templates/js/translated/company.js:444
+#: templates/js/translated/company.js:702
+#: templates/js/translated/company.js:986 templates/js/translated/order.js:1988
+#: templates/js/translated/order.js:2220 templates/js/translated/order.js:2831
+#: templates/js/translated/part.js:745 templates/js/translated/part.js:1187
+#: templates/js/translated/part.js:1463 templates/js/translated/part.js:1991
+#: templates/js/translated/part.js:2060 templates/js/translated/stock.js:1743
+#: templates/js/translated/stock.js:2420 templates/js/translated/stock.js:2474
msgid "Description"
msgstr "Opis"
@@ -325,7 +326,7 @@ msgid "parent"
msgstr "nadrzędny"
#: InvenTree/models.py:560 InvenTree/models.py:561
-#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:2426
msgid "Path"
msgstr "Ścieżka"
@@ -337,7 +338,7 @@ msgstr "Błąd serwera"
msgid "An error has been logged by the server."
msgstr "Błąd został zapisany w logach serwera."
-#: InvenTree/serializers.py:55 part/models.py:2745
+#: InvenTree/serializers.py:55 part/models.py:2753
msgid "Must be a valid number"
msgstr "Numer musi być prawidłowy"
@@ -522,7 +523,7 @@ msgid "Placed"
msgstr "Umieszczony"
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr "Zakończono"
@@ -542,8 +543,8 @@ msgstr "Zagubiono"
msgid "Returned"
msgstr "Zwrócone"
-#: InvenTree/status_codes.py:141 order/models.py:1128
-#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785
+#: InvenTree/status_codes.py:141 order/models.py:1132
+#: templates/js/translated/order.js:3630 templates/js/translated/order.js:3979
msgid "Shipped"
msgstr "Wysłane"
@@ -627,7 +628,7 @@ msgstr "Podziel z pozycji nadrzędnej"
msgid "Split child item"
msgstr "Podziel element podrzędny"
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080
msgid "Merged stock items"
msgstr "Scalone przedmioty magazynowe"
@@ -717,7 +718,7 @@ msgstr "Informacja systemowa"
msgid "About InvenTree"
msgstr "O InvenTree"
-#: build/api.py:217
+#: build/api.py:219
msgid "Build must be cancelled before it can be deleted"
msgstr ""
@@ -748,15 +749,15 @@ msgstr "Zlecenia budowy"
msgid "Build Order Reference"
msgstr "Odwołanie do zamówienia wykonania"
-#: build/models.py:166 order/models.py:240 order/models.py:623
-#: order/models.py:904 part/models.py:2663
+#: build/models.py:166 order/models.py:240 order/models.py:627
+#: order/models.py:908 part/models.py:2671
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853
-#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089
-#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629
-#: templates/js/translated/order.js:4137
+#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2251
+#: templates/js/translated/order.js:2484 templates/js/translated/order.js:3823
+#: templates/js/translated/order.js:4331
msgid "Reference"
msgstr "Referencja"
@@ -774,12 +775,12 @@ msgid "BuildOrder to which this build is allocated"
msgstr "Zamówienie budowy, do którego budowa jest przypisana"
#: build/models.py:191 build/templates/build/build_base.html:80
-#: build/templates/build/detail.html:29 company/models.py:670
-#: order/models.py:1001 order/models.py:1112 order/models.py:1113
-#: part/models.py:343 part/models.py:2185 part/models.py:2200
-#: part/models.py:2219 part/models.py:2237 part/models.py:2336
-#: part/models.py:2463 part/models.py:2553 part/models.py:2638
-#: part/models.py:2914 part/serializers.py:814
+#: build/templates/build/detail.html:29 company/models.py:679
+#: order/models.py:1005 order/models.py:1116 order/models.py:1117
+#: part/models.py:343 part/models.py:2193 part/models.py:2208
+#: part/models.py:2227 part/models.py:2245 part/models.py:2344
+#: part/models.py:2471 part/models.py:2561 part/models.py:2646
+#: part/models.py:2922 part/serializers.py:814
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -795,18 +796,18 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana"
#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800
#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682
#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517
-#: templates/js/translated/company.js:266
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:608
-#: templates/js/translated/company.js:868 templates/js/translated/order.js:105
-#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493
-#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613
-#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224
-#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586
+#: templates/js/translated/company.js:301
+#: templates/js/translated/company.js:531
+#: templates/js/translated/company.js:643
+#: templates/js/translated/company.js:904 templates/js/translated/order.js:106
+#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1638
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:3185
+#: templates/js/translated/order.js:3581 templates/js/translated/order.js:3807
+#: templates/js/translated/part.js:1172 templates/js/translated/part.js:1244
+#: templates/js/translated/part.js:1441 templates/js/translated/stock.js:586
#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504
-#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833
+#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2500
+#: templates/js/translated/stock.js:2695 templates/js/translated/stock.js:2829
msgid "Part"
msgstr "Komponent"
@@ -823,7 +824,7 @@ msgid "SalesOrder to which this build is allocated"
msgstr "Zamówienie sprzedaży, do którego budowa jest przypisana"
#: build/models.py:213 build/serializers.py:800
-#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979
+#: templates/js/translated/build.js:2114 templates/js/translated/order.js:3173
msgid "Source Location"
msgstr "Lokalizacja źródła"
@@ -863,8 +864,8 @@ msgstr "Status budowania"
msgid "Build status code"
msgstr "Kod statusu budowania"
-#: build/models.py:251 build/serializers.py:225 order/serializers.py:447
-#: stock/models.py:662 templates/js/translated/order.js:1353
+#: build/models.py:251 build/serializers.py:225 order/serializers.py:464
+#: stock/models.py:662 templates/js/translated/order.js:1496
msgid "Batch Code"
msgstr "Kod partii"
@@ -873,11 +874,11 @@ msgid "Batch code for this build output"
msgstr "Kod partii dla wyjścia budowy"
#: build/models.py:258 order/models.py:86 part/models.py:938
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2844
msgid "Creation Date"
msgstr "Data utworzenia"
-#: build/models.py:262 order/models.py:648
+#: build/models.py:262 order/models.py:652
msgid "Target completion date"
msgstr "Docelowy termin zakończenia"
@@ -904,10 +905,10 @@ msgstr "Użytkownik, który wydał to zamówienie"
#: build/models.py:289 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:100
-#: order/templates/order/order_base.html:179
+#: order/templates/order/order_base.html:185
#: order/templates/order/sales_order_base.html:183 part/models.py:942
#: report/templates/report/inventree_build_order_base.html:158
-#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860
+#: templates/js/translated/build.js:2574 templates/js/translated/order.js:2022
msgid "Responsible"
msgstr "Odpowiedzialny"
@@ -917,9 +918,9 @@ msgstr "Użytkownik odpowiedzialny za to zamówienie budowy"
#: build/models.py:295 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
-#: company/templates/company/supplier_part.html:153
+#: company/templates/company/supplier_part.html:165
#: part/templates/part/part_base.html:346 stock/models.py:656
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr "Link Zewnętrzny"
@@ -957,11 +958,11 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1188 order/models.py:1379
+#: build/models.py:1188 order/models.py:1383
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1194 order/models.py:1382
+#: build/models.py:1194 order/models.py:1386
msgid "Allocation quantity must be greater than zero"
msgstr "Alokowana ilość musi być większa niż zero"
@@ -973,7 +974,7 @@ msgstr ""
msgid "Selected stock item not found in BOM"
msgstr "Nie znaleziono wybranego elementu magazynowego w BOM"
-#: build/models.py:1326 stock/templates/stock/item_base.html:172
+#: build/models.py:1326 stock/templates/stock/item_base.html:175
#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496
#: templates/navbar.html:38
msgid "Build"
@@ -983,18 +984,18 @@ msgstr "Budowa"
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015
-#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754
+#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1035
+#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754
#: stock/serializers.py:880 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:197
#: templates/js/translated/build.js:774 templates/js/translated/build.js:779
#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679
-#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992
-#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299
-#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486
+#: templates/js/translated/order.js:107 templates/js/translated/order.js:3186
+#: templates/js/translated/order.js:3488 templates/js/translated/order.js:3493
+#: templates/js/translated/order.js:3588 templates/js/translated/order.js:3680
#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752
-#: templates/js/translated/stock.js:2577
+#: templates/js/translated/stock.js:2573
msgid "Stock Item"
msgstr "Element magazynowy"
@@ -1004,11 +1005,11 @@ msgstr "Lokalizacja magazynowania przedmiotu"
#: build/models.py:1356 build/serializers.py:193
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1697
-#: company/templates/company/supplier_part.html:279 order/models.py:897
-#: order/models.py:1423 order/serializers.py:1155
+#: build/templates/build/detail.html:34 common/models.py:1701
+#: company/templates/company/supplier_part.html:291 order/models.py:901
+#: order/models.py:1427 order/serializers.py:1209
#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40
-#: part/models.py:2654 part/templates/part/detail.html:951
+#: part/models.py:2662 part/templates/part/detail.html:951
#: part/templates/part/detail.html:1037
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -1017,8 +1018,8 @@ msgstr "Lokalizacja magazynowania przedmiotu"
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:291 stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
+#: stock/serializers.py:291 stock/templates/stock/item_base.html:290
+#: stock/templates/stock/item_base.html:298
#: templates/email/build_order_completed.html:18
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691
#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458
@@ -1026,16 +1027,16 @@ msgstr "Lokalizacja magazynowania przedmiotu"
#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708
#: templates/js/translated/build.js:2129
#: templates/js/translated/model_renderers.js:120
-#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043
-#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313
-#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492
-#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143
-#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176
-#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686
-#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458
+#: templates/js/translated/order.js:123 templates/js/translated/order.js:1137
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:2490
+#: templates/js/translated/order.js:3187 templates/js/translated/order.js:3507
+#: templates/js/translated/order.js:3594 templates/js/translated/order.js:3686
+#: templates/js/translated/order.js:3829 templates/js/translated/order.js:4337
+#: templates/js/translated/part.js:1036 templates/js/translated/part.js:2205
+#: templates/js/translated/part.js:2674 templates/js/translated/part.js:2715
+#: templates/js/translated/part.js:2793 templates/js/translated/stock.js:458
#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782
-#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2707
msgid "Quantity"
msgstr "Ilość"
@@ -1077,7 +1078,7 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:208 build/serializers.py:665 order/models.py:318
-#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545
+#: order/serializers.py:304 order/serializers.py:459 part/serializers.py:545
#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251
#: stock/serializers.py:300
msgid "Quantity must be greater than zero"
@@ -1091,8 +1092,8 @@ msgstr ""
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159
-#: stock/serializers.py:309 templates/js/translated/order.js:1364
+#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213
+#: stock/serializers.py:309 templates/js/translated/order.js:1507
#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459
msgid "Serial Numbers"
msgstr "Numer seryjny"
@@ -1117,18 +1118,18 @@ msgstr ""
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532
+#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552
#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532
#: stock/serializers.py:915 stock/serializers.py:1148
-#: stock/templates/stock/item_base.html:385
+#: stock/templates/stock/item_base.html:388
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786
-#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391
-#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411
-#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500
+#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1534
+#: templates/js/translated/order.js:3500 templates/js/translated/order.js:3605
+#: templates/js/translated/order.js:3613 templates/js/translated/order.js:3694
#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588
#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960
-#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2514
msgid "Location"
msgstr "Lokalizacja"
@@ -1137,12 +1138,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:373 build/templates/build/build_base.html:145
-#: build/templates/build/detail.html:62 order/models.py:642
-#: order/serializers.py:465 stock/templates/stock/item_base.html:418
+#: build/templates/build/detail.html:62 order/models.py:646
+#: order/serializers.py:482 stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546
-#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830
-#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829
-#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727
+#: templates/js/translated/order.js:1643 templates/js/translated/order.js:1992
+#: templates/js/translated/order.js:2836 templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:2591 templates/js/translated/stock.js:2723
msgid "Status"
msgstr "Status"
@@ -1202,7 +1203,7 @@ msgstr ""
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:527
+#: build/serializers.py:527 order/serializers.py:208 order/serializers.py:1103
msgid "Accept Incomplete"
msgstr "Akceptuj niekompletne"
@@ -1218,8 +1219,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772
-#: part/models.py:2906
+#: build/serializers.py:577 build/serializers.py:622 part/models.py:2780
+#: part/models.py:2914
msgid "BOM Item"
msgstr "Element BOM"
@@ -1239,7 +1240,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr "Towar musi znajdować się w magazynie"
-#: build/serializers.py:709 order/serializers.py:1073
+#: build/serializers.py:709 order/serializers.py:1093
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1256,7 +1257,7 @@ msgstr ""
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:750 order/serializers.py:1319
+#: build/serializers.py:750 order/serializers.py:1373
msgid "Allocation items must be provided"
msgstr ""
@@ -1371,13 +1372,13 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:154
-#: build/templates/build/detail.html:131 order/models.py:910
-#: order/templates/order/order_base.html:165
+#: build/templates/build/detail.html:131 order/models.py:914
+#: order/templates/order/order_base.html:171
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:125
-#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847
-#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658
-#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042
+#: templates/js/translated/build.js:2586 templates/js/translated/order.js:2009
+#: templates/js/translated/order.js:2351 templates/js/translated/order.js:2852
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1051
msgid "Target Date"
msgstr "Data docelowa"
@@ -1388,7 +1389,7 @@ msgstr ""
#: build/templates/build/build_base.html:159
#: build/templates/build/build_base.html:204
-#: order/templates/order/order_base.html:101
+#: order/templates/order/order_base.html:107
#: order/templates/order/sales_order_base.html:94
#: templates/js/translated/table_filters.js:320
#: templates/js/translated/table_filters.js:361
@@ -1404,15 +1405,15 @@ msgid "Completed"
msgstr "Zakończone"
#: build/templates/build/build_base.html:179
-#: build/templates/build/detail.html:94 order/models.py:1105
-#: order/models.py:1199 order/models.py:1330
+#: build/templates/build/detail.html:94 order/models.py:1109
+#: order/models.py:1203 order/models.py:1334
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:365
+#: stock/templates/stock/item_base.html:368
#: templates/email/overdue_sales_order.html:15
-#: templates/js/translated/order.js:2604
+#: templates/js/translated/order.js:2798
msgid "Sales Order"
msgstr "Zamówienie zakupu"
@@ -1438,8 +1439,8 @@ msgstr "Źródło magazynu"
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1023
-#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199
+#: build/templates/build/detail.html:49 order/models.py:1027
+#: templates/js/translated/order.js:1644 templates/js/translated/order.js:2393
msgid "Destination"
msgstr "Przeznaczenie"
@@ -1452,18 +1453,18 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:165
+#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1215
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843
-#: templates/js/translated/stock.js:2734
+#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1839
+#: templates/js/translated/stock.js:2730
#: templates/js/translated/table_filters.js:159
#: templates/js/translated/table_filters.js:250
msgid "Batch"
msgstr "Partia"
#: build/templates/build/detail.html:126
-#: order/templates/order/order_base.html:152
+#: order/templates/order/order_base.html:158
#: order/templates/order/sales_order_base.html:158
#: templates/js/translated/build.js:2554
msgid "Created"
@@ -1516,7 +1517,7 @@ msgstr "Zamów wymagane komponenty"
#: build/templates/build/detail.html:187
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:85
-#: part/templates/part/category.html:183 templates/js/translated/order.js:1083
+#: part/templates/part/category.html:183 templates/js/translated/order.js:1177
msgid "Order Parts"
msgstr "Zamów komponent"
@@ -1851,7 +1852,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:951 part/models.py:2465 report/models.py:158
+#: common/models.py:951 part/models.py:2473 report/models.py:158
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:484
msgid "Template"
@@ -1861,7 +1862,7 @@ msgstr "Szablon"
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446
+#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1454
#: templates/js/translated/table_filters.js:176
#: templates/js/translated/table_filters.js:447
msgid "Assembly"
@@ -2275,349 +2276,349 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1342 common/models.py:1658
+#: common/models.py:1344 common/models.py:1662
msgid "Settings key (must be unique - case insensitive"
msgstr "Klucz ustawień (musi być unikalny - niewrażliwy na wielkość liter"
-#: common/models.py:1364
+#: common/models.py:1366
msgid "Show subscribed parts"
msgstr "Pokaż obserwowane części"
-#: common/models.py:1365
+#: common/models.py:1367
msgid "Show subscribed parts on the homepage"
msgstr "Pokaż obserwowane części na stronie głównej"
-#: common/models.py:1371
+#: common/models.py:1373
msgid "Show subscribed categories"
msgstr "Pokaż obserwowane kategorie"
-#: common/models.py:1372
+#: common/models.py:1374
msgid "Show subscribed part categories on the homepage"
msgstr "Pokaż obserwowane kategorie części na stronie głównej"
-#: common/models.py:1378
+#: common/models.py:1380
msgid "Show latest parts"
msgstr "Pokaż najnowsze części"
-#: common/models.py:1379
+#: common/models.py:1381
msgid "Show latest parts on the homepage"
msgstr "Pokaż najnowsze części na stronie głównej"
-#: common/models.py:1385
+#: common/models.py:1387
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1386
+#: common/models.py:1388
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1392
+#: common/models.py:1394
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1393
+#: common/models.py:1395
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1399
+#: common/models.py:1401
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1400
+#: common/models.py:1402
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1406
+#: common/models.py:1408
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1407
+#: common/models.py:1409
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1413
+#: common/models.py:1415
msgid "Show low stock"
msgstr "Pokaż niski stan magazynowy"
-#: common/models.py:1414
+#: common/models.py:1416
msgid "Show low stock items on the homepage"
msgstr "Pokaż elementy o niskim stanie na stronie głównej"
-#: common/models.py:1420
+#: common/models.py:1422
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1421
+#: common/models.py:1423
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1427
+#: common/models.py:1429
msgid "Show needed stock"
msgstr "Pokaż wymagany stan zapasów"
-#: common/models.py:1428
+#: common/models.py:1430
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1434
+#: common/models.py:1436
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1435
+#: common/models.py:1437
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1441
+#: common/models.py:1443
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1442
+#: common/models.py:1444
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1448
+#: common/models.py:1450
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1449
+#: common/models.py:1451
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1455
+#: common/models.py:1457
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1456
+#: common/models.py:1458
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1462
+#: common/models.py:1464
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1463
+#: common/models.py:1465
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1469
+#: common/models.py:1471
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1470
+#: common/models.py:1472
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1476
+#: common/models.py:1478
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1477
+#: common/models.py:1479
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1483
+#: common/models.py:1485
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1484
+#: common/models.py:1486
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1490
+#: common/models.py:1492
msgid "Inline label display"
msgstr ""
-#: common/models.py:1491
+#: common/models.py:1493
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1499
msgid "Inline report display"
msgstr ""
-#: common/models.py:1498
+#: common/models.py:1500
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1506
msgid "Search Parts"
msgstr "Szukaj części"
-#: common/models.py:1505
+#: common/models.py:1507
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1513
msgid "Seach Supplier Parts"
msgstr ""
-#: common/models.py:1512
+#: common/models.py:1514
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1520
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:1519
+#: common/models.py:1521
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:1525
+#: common/models.py:1527
msgid "Hide Inactive Parts"
msgstr "Ukryj nieaktywne części"
-#: common/models.py:1526
+#: common/models.py:1528
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1532
+#: common/models.py:1534
msgid "Search Categories"
msgstr ""
-#: common/models.py:1533
+#: common/models.py:1535
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1539
+#: common/models.py:1541
msgid "Search Stock"
msgstr ""
-#: common/models.py:1540
+#: common/models.py:1542
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1546
+#: common/models.py:1548
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1547
+#: common/models.py:1549
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1553
+#: common/models.py:1555
msgid "Search Locations"
msgstr ""
-#: common/models.py:1554
+#: common/models.py:1556
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1560
+#: common/models.py:1562
msgid "Search Companies"
msgstr ""
-#: common/models.py:1561
+#: common/models.py:1563
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1567
+#: common/models.py:1569
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1568
+#: common/models.py:1570
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1574
+#: common/models.py:1576
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1575
+#: common/models.py:1577
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1581
+#: common/models.py:1583
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1582
+#: common/models.py:1584
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1588
+#: common/models.py:1590
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1591
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1595
+#: common/models.py:1597
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1598
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1602
+#: common/models.py:1604
msgid "Show Quantity in Forms"
msgstr "Pokaż ilość w formularzach"
-#: common/models.py:1603
+#: common/models.py:1605
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1609
+#: common/models.py:1611
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1610
+#: common/models.py:1612
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1616
+#: common/models.py:1618
msgid "Fixed Navbar"
msgstr "Stały pasek nawigacyjny"
-#: common/models.py:1617
+#: common/models.py:1619
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1623
+#: common/models.py:1625
msgid "Date Format"
msgstr "Format daty"
-#: common/models.py:1624
+#: common/models.py:1626
msgid "Preferred format for displaying dates"
msgstr "Preferowany format wyświetlania dat"
-#: common/models.py:1638 part/templates/part/detail.html:41
+#: common/models.py:1640 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr "Planowanie komponentów"
-#: common/models.py:1639
+#: common/models.py:1641
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1698
+#: common/models.py:1702
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1705 company/serializers.py:366
-#: company/templates/company/supplier_part.html:284 order/models.py:938
-#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181
+#: common/models.py:1709 company/serializers.py:372
+#: company/templates/company/supplier_part.html:296 order/models.py:942
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:2210
msgid "Price"
msgstr "Cena"
-#: common/models.py:1706
+#: common/models.py:1710
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1866 common/models.py:2044
+#: common/models.py:1870 common/models.py:2048
msgid "Endpoint"
msgstr "Punkt końcowy"
-#: common/models.py:1867
+#: common/models.py:1871
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1876
+#: common/models.py:1880
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1881 part/models.py:921 plugin/models.py:100
+#: common/models.py:1885 part/models.py:921 plugin/models.py:100
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:104
#: templates/js/translated/table_filters.js:316
@@ -2625,67 +2626,67 @@ msgstr ""
msgid "Active"
msgstr "Aktywny"
-#: common/models.py:1882
+#: common/models.py:1886
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1896
+#: common/models.py:1900
msgid "Token"
msgstr ""
-#: common/models.py:1897
+#: common/models.py:1901
msgid "Token for access"
msgstr ""
-#: common/models.py:1904
+#: common/models.py:1908
msgid "Secret"
msgstr "Sekret"
-#: common/models.py:1905
+#: common/models.py:1909
msgid "Shared secret for HMAC"
msgstr "Współdzielony sekret dla HMAC"
-#: common/models.py:2011
+#: common/models.py:2015
msgid "Message ID"
msgstr "Id wiadomości"
-#: common/models.py:2012
+#: common/models.py:2016
msgid "Unique identifier for this message"
msgstr "Unikalny identyfikator dla tej wiadomości"
-#: common/models.py:2020
+#: common/models.py:2024
msgid "Host"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2025
msgid "Host from which this message was received"
msgstr "Host, od którego otrzymano tę wiadomość"
-#: common/models.py:2028
+#: common/models.py:2032
msgid "Header"
msgstr "Nagłówek"
-#: common/models.py:2029
+#: common/models.py:2033
msgid "Header of this message"
msgstr "Nagłówek tej wiadomości"
-#: common/models.py:2035
+#: common/models.py:2039
msgid "Body"
msgstr "Zawartość"
-#: common/models.py:2036
+#: common/models.py:2040
msgid "Body of this message"
msgstr ""
-#: common/models.py:2045
+#: common/models.py:2049
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2054
msgid "Worked on"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2055
msgid "Was the work on this message finished?"
msgstr ""
@@ -2747,7 +2748,7 @@ msgstr "Opis firmy"
#: company/models.py:105 company/templates/company/company_base.html:100
#: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:413
+#: templates/js/translated/company.js:448
msgid "Website"
msgstr "Strona WWW"
@@ -2824,7 +2825,7 @@ msgstr "jest producentem"
msgid "Does this company manufacture parts?"
msgstr "Czy to przedsiębiorstwo produkuje części?"
-#: company/models.py:148 company/serializers.py:372
+#: company/models.py:148 company/serializers.py:378
#: company/templates/company/company_base.html:106 part/serializers.py:153
#: part/serializers.py:184 stock/serializers.py:178
msgid "Currency"
@@ -2834,24 +2835,24 @@ msgstr "Waluta"
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:248 company/models.py:481 stock/models.py:598
+#: company/models.py:248 company/models.py:482 stock/models.py:598
#: stock/serializers.py:85 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:542
msgid "Base Part"
msgstr "Część bazowa"
-#: company/models.py:252 company/models.py:485
+#: company/models.py:252 company/models.py:486
msgid "Select part"
msgstr "Wybierz część"
#: company/models.py:263 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:124
-#: stock/templates/stock/item_base.html:207
-#: templates/js/translated/company.js:397
-#: templates/js/translated/company.js:498
-#: templates/js/translated/company.js:633
-#: templates/js/translated/company.js:919 templates/js/translated/part.js:236
+#: company/templates/company/supplier_part.html:129
+#: stock/templates/stock/item_base.html:210
+#: templates/js/translated/company.js:432
+#: templates/js/translated/company.js:533
+#: templates/js/translated/company.js:668
+#: templates/js/translated/company.js:956 templates/js/translated/part.js:236
#: templates/js/translated/table_filters.js:419
msgid "Manufacturer"
msgstr "Producent"
@@ -2861,12 +2862,12 @@ msgid "Select manufacturer"
msgstr "Wybierz producenta"
#: company/models.py:270 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:132
-#: templates/js/translated/company.js:269
-#: templates/js/translated/company.js:497
-#: templates/js/translated/company.js:649
-#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077
-#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027
+#: company/templates/company/supplier_part.html:137
+#: templates/js/translated/company.js:304
+#: templates/js/translated/company.js:532
+#: templates/js/translated/company.js:684
+#: templates/js/translated/company.js:975 templates/js/translated/order.js:2239
+#: templates/js/translated/part.js:247 templates/js/translated/part.js:1025
msgid "MPN"
msgstr ""
@@ -2882,10 +2883,10 @@ msgstr ""
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:328 company/models.py:352 company/models.py:504
+#: company/models.py:328 company/models.py:352 company/models.py:505
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:220
msgid "Manufacturer Part"
msgstr "Komponent producenta"
@@ -2895,8 +2896,8 @@ msgstr ""
#: company/models.py:365
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2095 templates/js/translated/company.js:546
-#: templates/js/translated/company.js:764 templates/js/translated/part.js:849
+#: stock/models.py:2095 templates/js/translated/company.js:581
+#: templates/js/translated/company.js:799 templates/js/translated/part.js:847
#: templates/js/translated/stock.js:1360
msgid "Value"
msgstr "Wartość"
@@ -2905,10 +2906,10 @@ msgstr "Wartość"
msgid "Parameter value"
msgstr ""
-#: company/models.py:372 part/models.py:888 part/models.py:2425
+#: company/models.py:372 part/models.py:888 part/models.py:2433
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:352
-#: templates/js/translated/company.js:770 templates/js/translated/part.js:855
+#: templates/js/translated/company.js:805 templates/js/translated/part.js:853
msgid "Units"
msgstr "Jednostki"
@@ -2916,106 +2917,119 @@ msgstr "Jednostki"
msgid "Parameter units"
msgstr "Jednostki parametru"
-#: company/models.py:449
+#: company/models.py:450
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:491 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:108 order/models.py:258
-#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:224
+#: company/models.py:492 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:113 order/models.py:258
+#: order/templates/order/order_base.html:121 part/bom.py:237 part/bom.py:265
+#: stock/templates/stock/item_base.html:227
#: templates/email/overdue_purchase_order.html:16
-#: templates/js/translated/company.js:268
-#: templates/js/translated/company.js:401
-#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813
-#: templates/js/translated/part.js:217 templates/js/translated/part.js:995
+#: templates/js/translated/company.js:303
+#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:929 templates/js/translated/order.js:1975
+#: templates/js/translated/part.js:217 templates/js/translated/part.js:993
#: templates/js/translated/table_filters.js:423
msgid "Supplier"
msgstr "Dostawca"
-#: company/models.py:492 templates/js/translated/part.js:218
+#: company/models.py:493 templates/js/translated/part.js:218
msgid "Select supplier"
msgstr "Wybierz dostawcę"
-#: company/models.py:497 company/templates/company/supplier_part.html:118
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267
-#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228
-#: templates/js/translated/part.js:1013
+#: company/models.py:498 company/templates/company/supplier_part.html:123
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:302
+#: templates/js/translated/order.js:2226 templates/js/translated/part.js:228
+#: templates/js/translated/part.js:1011
msgid "SKU"
msgstr ""
-#: company/models.py:498 templates/js/translated/part.js:229
+#: company/models.py:499 templates/js/translated/part.js:229
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:505
+#: company/models.py:506
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:511
+#: company/models.py:512
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:517
+#: company/models.py:518
msgid "Supplier part description"
msgstr ""
-#: company/models.py:522 company/templates/company/supplier_part.html:146
-#: part/models.py:2666 part/templates/part/upload_bom.html:59
+#: company/models.py:523 company/templates/company/supplier_part.html:158
+#: part/models.py:2674 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399
msgid "Note"
msgstr "Uwaga"
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "base cost"
msgstr "koszt podstawowy"
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:528 company/templates/company/supplier_part.html:139
-#: stock/models.py:624 stock/templates/stock/item_base.html:240
-#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976
+#: company/models.py:529 company/templates/company/supplier_part.html:144
+#: stock/models.py:624 stock/templates/stock/item_base.html:243
+#: templates/js/translated/company.js:991 templates/js/translated/stock.js:1972
msgid "Packaging"
msgstr "Opakowanie"
-#: company/models.py:528
+#: company/models.py:529
msgid "Part packaging"
msgstr "Opakowanie części"
-#: company/models.py:530 part/models.py:1783
+#: company/models.py:532 company/serializers.py:242
+#: company/templates/company/supplier_part.html:151
+#: templates/js/translated/company.js:996 templates/js/translated/order.js:820
+#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:2270 templates/js/translated/order.js:2287
+#: templates/js/translated/part.js:1043 templates/js/translated/part.js:1095
+msgid "Pack Quantity"
+msgstr ""
+
+#: company/models.py:533
+msgid "Unit quantity supplied in a single pack"
+msgstr ""
+
+#: company/models.py:539 part/models.py:1783
msgid "multiple"
msgstr "wielokrotność"
-#: company/models.py:530
+#: company/models.py:539
msgid "Order multiple"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part.html:94
+#: company/models.py:547 company/templates/company/supplier_part.html:99
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823
-#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979
-#: templates/js/translated/part.js:600 templates/js/translated/part.js:603
+#: templates/js/translated/bom.js:915 templates/js/translated/build.js:1823
+#: templates/js/translated/build.js:2686 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:601
#: templates/js/translated/table_filters.js:186
msgid "Available"
msgstr "Dostępne"
-#: company/models.py:539
+#: company/models.py:548
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:543
+#: company/models.py:552
msgid "Availability Updated"
msgstr ""
-#: company/models.py:544
+#: company/models.py:553
msgid "Date of last update of availability data"
msgstr ""
-#: company/models.py:672
+#: company/models.py:681
msgid "last updated"
msgstr "ostatnia aktualizacja"
@@ -3029,12 +3043,12 @@ msgstr "Kod Waluty"
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386
+#: templates/InvenTree/search.html:179 templates/js/translated/company.js:421
msgid "Company"
msgstr "Firma"
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:624
+#: templates/js/translated/order.js:689
msgid "Create Purchase Order"
msgstr "Utwórz zamówienie zakupu"
@@ -3047,7 +3061,7 @@ msgid "Edit company information"
msgstr ""
#: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:329
+#: templates/js/translated/company.js:364
msgid "Edit Company"
msgstr "Edytuj firmę"
@@ -3070,13 +3084,13 @@ msgstr "Prześlij nowy obraz"
msgid "Download image from URL"
msgstr "Pobierz obraz z adresu URL"
-#: company/templates/company/company_base.html:86 order/models.py:637
+#: company/templates/company/company_base.html:86 order/models.py:641
#: order/templates/order/sales_order_base.html:116 stock/models.py:643
#: stock/models.py:644 stock/serializers.py:809
-#: stock/templates/stock/item_base.html:396
+#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
-#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619
-#: templates/js/translated/stock.js:2559
+#: templates/js/translated/company.js:428 templates/js/translated/order.js:2813
+#: templates/js/translated/stock.js:2555
#: templates/js/translated/table_filters.js:427
msgid "Customer"
msgstr "Klient"
@@ -3211,23 +3225,23 @@ msgid "Manufacturers"
msgstr "Producenci"
#: company/templates/company/manufacturer_part.html:35
-#: company/templates/company/supplier_part.html:186
+#: company/templates/company/supplier_part.html:198
#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80
msgid "Order part"
msgstr "Zamów komponent"
#: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:681
+#: templates/js/translated/company.js:716
msgid "Edit manufacturer part"
msgstr "Edytuj komponent producenta"
#: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:682
+#: templates/js/translated/company.js:717
msgid "Delete manufacturer part"
msgstr "Usuń komponent producenta"
#: company/templates/company/manufacturer_part.html:65
-#: company/templates/company/supplier_part.html:77
+#: company/templates/company/supplier_part.html:82
msgid "Internal Part"
msgstr "Komponent wewnętrzny"
@@ -3250,8 +3264,8 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:371 part/templates/part/detail.html:401
-#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34
-#: users/models.py:220
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:34
+#: users/models.py:222
msgid "Delete"
msgstr "Usuń"
@@ -3296,9 +3310,9 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:607
-#: stock/templates/stock/item_base.html:233
-#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041
-#: templates/js/translated/stock.js:1933
+#: stock/templates/stock/item_base.html:236
+#: templates/js/translated/company.js:945 templates/js/translated/order.js:1135
+#: templates/js/translated/stock.js:1929
msgid "Supplier Part"
msgstr ""
@@ -3308,7 +3322,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:40
#: company/templates/company/supplier_part.html:41
-#: company/templates/company/supplier_part.html:187
+#: company/templates/company/supplier_part.html:199
#: part/templates/part/detail.html:88
msgid "Order Part"
msgstr "Zamów komponent"
@@ -3320,81 +3334,87 @@ msgstr ""
#: company/templates/company/supplier_part.html:48
#: company/templates/company/supplier_part.html:49
-#: templates/js/translated/company.js:212
+#: templates/js/translated/company.js:247
msgid "Edit Supplier Part"
msgstr ""
#: company/templates/company/supplier_part.html:53
+#: company/templates/company/supplier_part.html:54
+#: templates/js/translated/company.js:222
+msgid "Duplicate Supplier Part"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:58
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:54
+#: company/templates/company/supplier_part.html:59
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:112
+#: company/templates/company/supplier_part.html:117
msgid "No supplier information available"
msgstr ""
-#: company/templates/company/supplier_part.html:165
+#: company/templates/company/supplier_part.html:177
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr ""
-#: company/templates/company/supplier_part.html:168
+#: company/templates/company/supplier_part.html:180
#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181
msgid "Create new stock item"
msgstr "Utwórz nowy towar"
-#: company/templates/company/supplier_part.html:169
+#: company/templates/company/supplier_part.html:181
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182
#: templates/js/translated/stock.js:435
msgid "New Stock Item"
msgstr "Nowy towar"
-#: company/templates/company/supplier_part.html:182
+#: company/templates/company/supplier_part.html:194
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr ""
-#: company/templates/company/supplier_part.html:207
+#: company/templates/company/supplier_part.html:219
#: part/templates/part/prices.html:10
msgid "Pricing Information"
msgstr "Informacja cenowa"
-#: company/templates/company/supplier_part.html:212
-#: company/templates/company/supplier_part.html:326
-#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253
+#: company/templates/company/supplier_part.html:224
+#: company/templates/company/supplier_part.html:338
+#: part/templates/part/prices.html:276 templates/js/translated/part.js:2282
msgid "Add Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:250
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:252
-#: templates/js/translated/part.js:2263
+#: company/templates/company/supplier_part.html:264
+#: templates/js/translated/part.js:2292
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:266
-#: templates/js/translated/part.js:2277
+#: company/templates/company/supplier_part.html:278
+#: templates/js/translated/part.js:2306
msgid "Edit Price Break"
msgstr "Edytuj przedział cenowy"
-#: company/templates/company/supplier_part.html:291
+#: company/templates/company/supplier_part.html:303
msgid "Edit price break"
msgstr "Edytuj przedział cenowy"
-#: company/templates/company/supplier_part.html:292
+#: company/templates/company/supplier_part.html:304
msgid "Delete price break"
msgstr ""
-#: company/templates/company/supplier_part.html:301
+#: company/templates/company/supplier_part.html:313
msgid "Last updated"
msgstr "Ostatnio aktualizowane"
-#: company/templates/company/supplier_part.html:382
+#: company/templates/company/supplier_part.html:394
msgid "Update Part Availability"
msgstr ""
@@ -3404,8 +3424,8 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313
-#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959
+#: templates/js/translated/part.js:749 templates/js/translated/part.js:1334
+#: templates/js/translated/part.js:1495 templates/js/translated/stock.js:959
#: templates/js/translated/stock.js:1754 templates/navbar.html:31
msgid "Stock"
msgstr "Stan"
@@ -3432,7 +3452,7 @@ msgstr "Cennik"
#: stock/templates/stock/location.html:178
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2436 users/models.py:40
+#: templates/js/translated/stock.js:2432 users/models.py:40
msgid "Stock Items"
msgstr "Towary"
@@ -3534,7 +3554,7 @@ msgstr ""
msgid "Order description"
msgstr "Opis Zamówienia"
-#: order/models.py:84 order/models.py:1246
+#: order/models.py:84 order/models.py:1250
msgid "Link to external page"
msgstr "Link do zewnętrznej witryny"
@@ -3550,11 +3570,11 @@ msgstr "Użytkownik lub grupa odpowiedzialna za to zamówienie"
msgid "Order notes"
msgstr "Notatki do zamówienia"
-#: order/models.py:241 order/models.py:624
+#: order/models.py:241 order/models.py:628
msgid "Order reference"
msgstr "Odniesienie zamówienia"
-#: order/models.py:249 order/models.py:642
+#: order/models.py:249 order/models.py:646
msgid "Purchase order status"
msgstr "Status zamówienia zakupu"
@@ -3562,8 +3582,8 @@ msgstr "Status zamówienia zakupu"
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:262 order/templates/order/order_base.html:127
-#: templates/js/translated/order.js:1822
+#: order/models.py:262 order/templates/order/order_base.html:133
+#: templates/js/translated/order.js:1984
msgid "Supplier Reference"
msgstr ""
@@ -3603,245 +3623,245 @@ msgstr ""
msgid "Quantity must be a positive number"
msgstr "Wartość musi być liczbą dodatnią"
-#: order/models.py:638
+#: order/models.py:642
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer Reference "
msgstr ""
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:649
+#: order/models.py:653
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:652 order/models.py:1204
-#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828
+#: order/models.py:656 order/models.py:1208
+#: templates/js/translated/order.js:2860 templates/js/translated/order.js:3022
msgid "Shipment Date"
msgstr "Data wysyłki"
-#: order/models.py:659
+#: order/models.py:663
msgid "shipped by"
msgstr "wysłane przez"
-#: order/models.py:714
+#: order/models.py:718
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:718
+#: order/models.py:722
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:721
+#: order/models.py:725 templates/js/translated/order.js:419
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:724
+#: order/models.py:728
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:898
+#: order/models.py:902
msgid "Item quantity"
msgstr "Ilość elementów"
-#: order/models.py:904
+#: order/models.py:908
msgid "Line item reference"
msgstr ""
-#: order/models.py:906
+#: order/models.py:910
msgid "Line item notes"
msgstr ""
-#: order/models.py:911
+#: order/models.py:915
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:929
+#: order/models.py:933
msgid "Context"
msgstr ""
-#: order/models.py:930
+#: order/models.py:934
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:939
+#: order/models.py:943
msgid "Unit price"
msgstr ""
-#: order/models.py:969
+#: order/models.py:973
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:977
+#: order/models.py:981
msgid "deleted"
msgstr ""
-#: order/models.py:983 order/models.py:1063 order/models.py:1104
-#: order/models.py:1198 order/models.py:1330
-#: templates/js/translated/order.js:3284
+#: order/models.py:987 order/models.py:1067 order/models.py:1108
+#: order/models.py:1202 order/models.py:1334
+#: templates/js/translated/order.js:3478
msgid "Order"
msgstr "Zamówienie"
-#: order/models.py:984 order/models.py:1063
+#: order/models.py:988 order/models.py:1067
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:179
+#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
-#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042
-#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972
-#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540
+#: templates/js/translated/order.js:619 templates/js/translated/order.js:1136
+#: templates/js/translated/order.js:1959 templates/js/translated/part.js:970
+#: templates/js/translated/stock.js:1909 templates/js/translated/stock.js:2536
msgid "Purchase Order"
msgstr "Zlecenie zakupu"
-#: order/models.py:1002
+#: order/models.py:1006
msgid "Supplier part"
msgstr ""
-#: order/models.py:1009 order/templates/order/order_base.html:172
-#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105
+#: order/models.py:1013 order/templates/order/order_base.html:178
+#: templates/js/translated/order.js:1641 templates/js/translated/order.js:2373
+#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1125
#: templates/js/translated/table_filters.js:338
msgid "Received"
msgstr "Odebrane"
-#: order/models.py:1010
+#: order/models.py:1014
msgid "Number of items received"
msgstr ""
-#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734
-#: stock/serializers.py:169 stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1964
+#: order/models.py:1021 part/templates/part/prices.html:181 stock/models.py:734
+#: stock/serializers.py:169 stock/templates/stock/item_base.html:189
+#: templates/js/translated/stock.js:1960
msgid "Purchase Price"
msgstr "Cena zakupu"
-#: order/models.py:1018
+#: order/models.py:1022
msgid "Unit purchase price"
msgstr "Cena zakupu jednostkowego"
-#: order/models.py:1026
+#: order/models.py:1030
msgid "Where does the Purchaser want this item to be stored?"
msgstr "Gdzie kupujący chce przechowywać ten przedmiot?"
-#: order/models.py:1092
+#: order/models.py:1096
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1097
+#: order/models.py:1101
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1123 part/templates/part/part_pricing.html:115
+#: order/models.py:1127 part/templates/part/part_pricing.html:115
#: part/templates/part/prices.html:121 part/templates/part/prices.html:290
msgid "Sale Price"
msgstr "Cena sprzedaży"
-#: order/models.py:1124
+#: order/models.py:1128
msgid "Unit sale price"
msgstr "Jednostkowa cena sprzedaży"
-#: order/models.py:1129
+#: order/models.py:1133
msgid "Shipped quantity"
msgstr "Wysłana ilość"
-#: order/models.py:1205
+#: order/models.py:1209
msgid "Date of shipment"
msgstr "Data wysyłki"
-#: order/models.py:1212
+#: order/models.py:1216
msgid "Checked By"
msgstr "Sprawdzone przez"
-#: order/models.py:1213
+#: order/models.py:1217
msgid "User who checked this shipment"
msgstr "Użytkownik, który sprawdził tę wysyłkę"
-#: order/models.py:1220 order/models.py:1405 order/serializers.py:1170
-#: order/serializers.py:1294 templates/js/translated/model_renderers.js:314
+#: order/models.py:1224 order/models.py:1409 order/serializers.py:1224
+#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314
msgid "Shipment"
msgstr "Przesyłka"
-#: order/models.py:1221
+#: order/models.py:1225
msgid "Shipment number"
msgstr "Numer przesyłki"
-#: order/models.py:1225
+#: order/models.py:1229
msgid "Shipment notes"
msgstr "Notatki do przesyłki"
-#: order/models.py:1231
+#: order/models.py:1235
msgid "Tracking Number"
msgstr "Numer śledzenia"
-#: order/models.py:1232
+#: order/models.py:1236
msgid "Shipment tracking information"
msgstr "Informacje o śledzeniu przesyłki"
-#: order/models.py:1239
+#: order/models.py:1243
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1240
+#: order/models.py:1244
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1258
+#: order/models.py:1262
msgid "Shipment has already been sent"
msgstr "Przesyłka została już wysłana"
-#: order/models.py:1261
+#: order/models.py:1265
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1364 order/models.py:1366
+#: order/models.py:1368 order/models.py:1370
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1370
+#: order/models.py:1374
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1372
+#: order/models.py:1376
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1375
+#: order/models.py:1379
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Zarezerwowana ilość nie może przekraczać ilości na stanie"
-#: order/models.py:1385 order/serializers.py:1066
+#: order/models.py:1389 order/serializers.py:1086
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1388
+#: order/models.py:1392
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1389
+#: order/models.py:1393
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1397
+#: order/models.py:1401
msgid "Line"
msgstr "Linia"
-#: order/models.py:1406
+#: order/models.py:1410
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1419 templates/js/translated/notification.js:55
+#: order/models.py:1423 templates/js/translated/notification.js:55
msgid "Item"
msgstr "Komponent"
-#: order/models.py:1420
+#: order/models.py:1424
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1423
+#: order/models.py:1427
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3853,111 +3873,119 @@ msgstr ""
msgid "Order cannot be cancelled"
msgstr "Zamówienie nie może zostać anulowane"
-#: order/serializers.py:294
+#: order/serializers.py:209 order/serializers.py:1104
+msgid "Allow order to be closed with incomplete line items"
+msgstr ""
+
+#: order/serializers.py:220 order/serializers.py:1115
+msgid "Order has incomplete line items"
+msgstr ""
+
+#: order/serializers.py:311
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:318
+#: order/serializers.py:335
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:354
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:342
+#: order/serializers.py:359
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:348
+#: order/serializers.py:365
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:349
+#: order/serializers.py:366
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:413 order/serializers.py:1138
+#: order/serializers.py:430 order/serializers.py:1192
msgid "Line Item"
msgstr ""
-#: order/serializers.py:419
+#: order/serializers.py:436
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:429 order/serializers.py:533
+#: order/serializers.py:446 order/serializers.py:553
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:448 templates/js/translated/order.js:1354
+#: order/serializers.py:465 templates/js/translated/order.js:1497
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:456 templates/js/translated/order.js:1365
+#: order/serializers.py:473 templates/js/translated/order.js:1508
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:469
+#: order/serializers.py:486
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:470
+#: order/serializers.py:487
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:484
+#: order/serializers.py:501
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:507
+#: order/serializers.py:527
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:549
+#: order/serializers.py:569
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:566
+#: order/serializers.py:586
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:577
+#: order/serializers.py:597
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:883
+#: order/serializers.py:903
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:964
+#: order/serializers.py:984
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1027 order/serializers.py:1147
+#: order/serializers.py:1047 order/serializers.py:1201
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1049
+#: order/serializers.py:1069
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1160
+#: order/serializers.py:1214
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1182 order/serializers.py:1302
+#: order/serializers.py:1236 order/serializers.py:1356
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1185 order/serializers.py:1305
+#: order/serializers.py:1239 order/serializers.py:1359
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1235
+#: order/serializers.py:1289
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1245
+#: order/serializers.py:1299
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3993,83 +4021,83 @@ msgstr "Eksportuj zamówienie do pliku"
msgid "Order actions"
msgstr ""
-#: order/templates/order/order_base.html:45
+#: order/templates/order/order_base.html:46
#: order/templates/order/sales_order_base.html:58
msgid "Edit order"
msgstr "Edytuj zamówienie"
-#: order/templates/order/order_base.html:47
+#: order/templates/order/order_base.html:50
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr "Anuluj zamówienie"
-#: order/templates/order/order_base.html:50
+#: order/templates/order/order_base.html:55
msgid "Duplicate order"
msgstr ""
-#: order/templates/order/order_base.html:55
+#: order/templates/order/order_base.html:61
msgid "Place order"
msgstr "Złóż zamówienie"
-#: order/templates/order/order_base.html:59
+#: order/templates/order/order_base.html:65
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:61
+#: order/templates/order/order_base.html:67
#: order/templates/order/purchase_order_detail.html:30
msgid "Receive Items"
msgstr ""
-#: order/templates/order/order_base.html:63
+#: order/templates/order/order_base.html:69
msgid "Mark order as complete"
msgstr "Oznacz zamówienie jako zakończone"
-#: order/templates/order/order_base.html:65
+#: order/templates/order/order_base.html:71
#: order/templates/order/sales_order_base.html:68
msgid "Complete Order"
msgstr "Kompletne zamówienie"
-#: order/templates/order/order_base.html:87
+#: order/templates/order/order_base.html:93
#: order/templates/order/sales_order_base.html:80
msgid "Order Reference"
msgstr "Numer zamówienia"
-#: order/templates/order/order_base.html:92
+#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:85
msgid "Order Description"
msgstr "Opis zamówienia"
-#: order/templates/order/order_base.html:97
+#: order/templates/order/order_base.html:103
#: order/templates/order/sales_order_base.html:90
msgid "Order Status"
msgstr "Status zamówienia"
-#: order/templates/order/order_base.html:120
+#: order/templates/order/order_base.html:126
msgid "No suppplier information available"
msgstr ""
-#: order/templates/order/order_base.html:133
+#: order/templates/order/order_base.html:139
#: order/templates/order/sales_order_base.html:129
msgid "Completed Line Items"
msgstr ""
-#: order/templates/order/order_base.html:139
+#: order/templates/order/order_base.html:145
#: order/templates/order/sales_order_base.html:135
#: order/templates/order/sales_order_base.html:145
msgid "Incomplete"
msgstr "Niekompletny"
-#: order/templates/order/order_base.html:158
+#: order/templates/order/order_base.html:164
#: report/templates/report/inventree_build_order_base.html:121
msgid "Issued"
msgstr "Wydany"
-#: order/templates/order/order_base.html:186
+#: order/templates/order/order_base.html:192
#: order/templates/order/sales_order_base.html:190
msgid "Total cost"
msgstr ""
-#: order/templates/order/order_base.html:190
+#: order/templates/order/order_base.html:196
#: order/templates/order/sales_order_base.html:194
msgid "Total cost could not be calculated"
msgstr ""
@@ -4102,8 +4130,8 @@ msgstr "Wybierz dostawcę części"
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463
#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015
-#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443
-#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625
+#: templates/js/translated/order.js:1084 templates/js/translated/order.js:1586
+#: templates/js/translated/order.js:3097 templates/js/translated/stock.js:625
#: templates/js/translated/stock.js:793
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
@@ -4139,7 +4167,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:26
#: order/templates/order/sales_order_detail.html:22
#: order/templates/order/sales_order_detail.html:255
-#: templates/js/translated/order.js:663
+#: templates/js/translated/order.js:728
msgid "Add Line Item"
msgstr "Dodaj element zamówienia"
@@ -4167,7 +4195,7 @@ msgstr "Otrzymane elementy"
msgid "Order Notes"
msgstr "Notatki zamówień"
-#: order/templates/order/purchase_order_detail.html:228
+#: order/templates/order/purchase_order_detail.html:232
msgid "Add Order Line"
msgstr ""
@@ -4185,12 +4213,12 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:231
+#: templates/js/translated/order.js:232
msgid "Complete Shipments"
msgstr ""
#: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:258
+#: templates/js/translated/order.js:397
msgid "Complete Sales Order"
msgstr ""
@@ -4199,7 +4227,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2632
+#: templates/js/translated/order.js:2826
msgid "Customer Reference"
msgstr ""
@@ -4223,7 +4251,7 @@ msgid "Pending Shipments"
msgstr "Oczekujące przesyłki"
#: order/templates/order/sales_order_detail.html:72
-#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1116
#: templates/js/translated/build.js:1923
msgid "Actions"
msgstr "Akcje"
@@ -4308,14 +4336,14 @@ msgid "Total Stock"
msgstr ""
#: part/bom.py:129 part/templates/part/part_base.html:189
-#: templates/js/translated/order.js:3724
+#: templates/js/translated/order.js:3918
msgid "Available Stock"
msgstr "Dostępna ilość"
#: part/bom.py:130 part/templates/part/part_base.html:207
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853
-#: templates/js/translated/part.js:590 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503
+#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1853
+#: templates/js/translated/part.js:588 templates/js/translated/part.js:608
+#: templates/js/translated/part.js:1337 templates/js/translated/part.js:1520
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr "W Zamówieniu"
@@ -4344,7 +4372,7 @@ msgstr ""
msgid "Icon (optional)"
msgstr ""
-#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16
+#: part/models.py:122 part/models.py:2516 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Kategoria komponentu"
@@ -4361,7 +4389,7 @@ msgstr "Kategorie części"
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146
+#: templates/js/translated/part.js:2004 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr "Części"
@@ -4391,7 +4419,7 @@ msgstr ""
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:745 part/models.py:2562
+#: part/models.py:745 part/models.py:2570
msgid "Part name"
msgstr "Nazwa komponentu"
@@ -4424,11 +4452,11 @@ msgstr "Słowa kluczowe"
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:783 part/models.py:2257 part/models.py:2507
+#: part/models.py:783 part/models.py:2265 part/models.py:2515
#: part/templates/part/part_base.html:257
#: templates/InvenTree/settings/settings.html:232
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688
+#: templates/js/translated/part.js:1477 templates/js/translated/part.js:1717
msgid "Category"
msgstr "Kategoria"
@@ -4437,7 +4465,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:789 part/templates/part/part_base.html:266
-#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:1430
#: templates/js/translated/stock.js:1726
msgid "IPN"
msgstr ""
@@ -4451,7 +4479,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:797 part/templates/part/part_base.html:273
-#: report/models.py:171 templates/js/translated/part.js:743
+#: report/models.py:171 templates/js/translated/part.js:741
msgid "Revision"
msgstr "Wersja"
@@ -4543,245 +4571,245 @@ msgstr "Tworzenie użytkownika"
msgid "Sell multiple"
msgstr "Sprzedaj wiele"
-#: part/models.py:2304
+#: part/models.py:2312
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2321
+#: part/models.py:2329
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2341 templates/js/translated/part.js:2026
+#: part/models.py:2349 templates/js/translated/part.js:2055
#: templates/js/translated/stock.js:1340
msgid "Test Name"
msgstr "Nazwa testu"
-#: part/models.py:2342
+#: part/models.py:2350
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2347
+#: part/models.py:2355
msgid "Test Description"
msgstr "Testowy opis"
-#: part/models.py:2348
+#: part/models.py:2356
msgid "Enter description for this test"
msgstr "Wprowadź opis do tego testu"
-#: part/models.py:2353 templates/js/translated/part.js:2035
+#: part/models.py:2361 templates/js/translated/part.js:2064
#: templates/js/translated/table_filters.js:302
msgid "Required"
msgstr "Wymagane"
-#: part/models.py:2354
+#: part/models.py:2362
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2359 templates/js/translated/part.js:2043
+#: part/models.py:2367 templates/js/translated/part.js:2072
msgid "Requires Value"
msgstr "Wymaga wartości"
-#: part/models.py:2360
+#: part/models.py:2368
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2365 templates/js/translated/part.js:2050
+#: part/models.py:2373 templates/js/translated/part.js:2079
msgid "Requires Attachment"
msgstr "Wymaga załącznika"
-#: part/models.py:2366
+#: part/models.py:2374
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2374
+#: part/models.py:2382
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2410
+#: part/models.py:2418
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2418
+#: part/models.py:2426
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2433
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2430
+#: part/models.py:2438
msgid "Parameter description"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2471
msgid "Parent Part"
msgstr "Część nadrzędna"
-#: part/models.py:2465 part/models.py:2513 part/models.py:2514
+#: part/models.py:2473 part/models.py:2521 part/models.py:2522
#: templates/InvenTree/settings/settings.html:227
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Data"
msgstr "Dane"
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Parameter Value"
msgstr "Wartość parametru"
-#: part/models.py:2518 templates/InvenTree/settings/settings.html:236
+#: part/models.py:2526 templates/InvenTree/settings/settings.html:236
msgid "Default Value"
msgstr "Wartość domyślna"
-#: part/models.py:2519
+#: part/models.py:2527
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2554
+#: part/models.py:2562
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2557 templates/js/translated/model_renderers.js:212
+#: part/models.py:2565 templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr "ID komponentu"
-#: part/models.py:2558
+#: part/models.py:2566
msgid "Unique part ID value"
msgstr "Unikalny wartość ID komponentu"
-#: part/models.py:2561
+#: part/models.py:2569
msgid "Part Name"
msgstr "Nazwa komponentu"
-#: part/models.py:2565
+#: part/models.py:2573
msgid "Part IPN"
msgstr "IPN komponentu"
-#: part/models.py:2566
+#: part/models.py:2574
msgid "Part IPN value"
msgstr "Wartość IPN części"
-#: part/models.py:2569
+#: part/models.py:2577
msgid "Level"
msgstr "Poziom"
-#: part/models.py:2570
+#: part/models.py:2578
msgid "BOM level"
msgstr ""
-#: part/models.py:2639
+#: part/models.py:2647
msgid "Select parent part"
msgstr "Wybierz część nadrzędną"
-#: part/models.py:2647
+#: part/models.py:2655
msgid "Sub part"
msgstr "Podczęść"
-#: part/models.py:2648
+#: part/models.py:2656
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2654
+#: part/models.py:2662
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2656 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997
+#: part/models.py:2664 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:876 templates/js/translated/bom.js:1005
#: templates/js/translated/table_filters.js:100
msgid "Optional"
msgstr "Opcjonalne"
-#: part/models.py:2656
+#: part/models.py:2664
msgid "This BOM item is optional"
msgstr "Ten element BOM jest opcjonalny"
-#: part/models.py:2659 part/templates/part/upload_bom.html:55
+#: part/models.py:2667 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2660
+#: part/models.py:2668
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2671
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2666
+#: part/models.py:2674
msgid "BOM item notes"
msgstr "Notatki pozycji BOM"
-#: part/models.py:2668
+#: part/models.py:2676
msgid "Checksum"
msgstr "Suma kontrolna"
-#: part/models.py:2668
+#: part/models.py:2676
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2672 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1014
+#: part/models.py:2680 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:1022
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:96
msgid "Inherited"
msgstr "Dziedziczone"
-#: part/models.py:2673
+#: part/models.py:2681
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2678 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1006
+#: part/models.py:2686 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:1014
msgid "Allow Variants"
msgstr "Zezwalaj na warianty"
-#: part/models.py:2679
+#: part/models.py:2687
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2757 stock/models.py:468
+#: part/models.py:2765 stock/models.py:468
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2766 part/models.py:2768
+#: part/models.py:2774 part/models.py:2776
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2873
+#: part/models.py:2881
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2902
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2915
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2923
msgid "Substitute part"
msgstr "Część zastępcza"
-#: part/models.py:2930
+#: part/models.py:2938
msgid "Part 1"
msgstr "Część 1"
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Part 2"
msgstr "Część 2"
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Select Related Part"
msgstr "Wybierz powiązaną część"
-#: part/models.py:2952
+#: part/models.py:2960
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:2956
+#: part/models.py:2964
msgid "Duplicate relationship already exists"
msgstr ""
@@ -5309,10 +5337,10 @@ msgid "Part is virtual (not a physical part)"
msgstr "Część jest wirtualna (nie fizyczna)"
#: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:624
-#: templates/js/translated/company.js:884
+#: templates/js/translated/company.js:659
+#: templates/js/translated/company.js:920
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:654 templates/js/translated/part.js:731
+#: templates/js/translated/part.js:652 templates/js/translated/part.js:729
msgid "Inactive"
msgstr "Nieaktywny"
@@ -5327,28 +5355,28 @@ msgid "This part is a variant of %(link)s"
msgstr ""
#: part/templates/part/part_base.html:194
-#: templates/js/translated/company.js:974
+#: templates/js/translated/company.js:1027
#: templates/js/translated/table_filters.js:201
msgid "In Stock"
msgstr "Na stanie"
#: part/templates/part/part_base.html:215
-#: stock/templates/stock/item_base.html:379
+#: stock/templates/stock/item_base.html:382
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:224
-#: stock/templates/stock/item_base.html:372
+#: stock/templates/stock/item_base.html:375
msgid "Allocated to Sales Orders"
msgstr "Przypisane do zamówień sprzedaży"
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1043
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320
-#: templates/js/translated/part.js:1510
+#: part/templates/part/part_base.html:238 templates/js/translated/part.js:591
+#: templates/js/translated/part.js:611 templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1527
msgid "Building"
msgstr ""
@@ -5361,7 +5389,7 @@ msgid "Latest Serial Number"
msgstr "Ostatni numer seryjny"
#: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:328
+#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr "Szukaj numeru seryjnego"
@@ -5400,7 +5428,7 @@ msgid "Total Cost"
msgstr "Całkowity Koszt"
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:989
+#: templates/js/translated/bom.js:997
msgid "No supplier pricing available"
msgstr "Brak dostępnych cen dostawców"
@@ -5439,7 +5467,7 @@ msgstr "Brak dostępnych informacji o cenach dla tej części."
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:53
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468
+#: templates/js/translated/order.js:2001 templates/js/translated/stock.js:2464
msgid "Date"
msgstr "Data"
@@ -5495,7 +5523,7 @@ msgstr "Pokaż cenę sprzedaży"
msgid "Calculation parameters"
msgstr "Parametry obliczeniowe"
-#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983
+#: part/templates/part/prices.html:160 templates/js/translated/bom.js:991
msgid "Supplier Cost"
msgstr "Koszty dostawcy"
@@ -5533,8 +5561,8 @@ msgstr "Koszt sprzedaży"
msgid "No sale pice history available for this part."
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616
-#: templates/js/translated/part.js:1308
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:614
+#: templates/js/translated/part.js:1329 templates/js/translated/part.js:1331
msgid "No Stock"
msgstr "Brak w magazynie"
@@ -5735,19 +5763,19 @@ msgstr "Czy wtyczka jest aktywna"
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:186
+#: plugin/models.py:188
msgid "Plugin"
msgstr "Wtyczka"
-#: plugin/models.py:249
+#: plugin/models.py:253
msgid "Method"
msgstr ""
-#: plugin/plugin.py:251
+#: plugin/plugin.py:252
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:263
+#: plugin/plugin.py:264
msgid "No date found"
msgstr ""
@@ -5925,12 +5953,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:648 stock/templates/stock/item_base.html:317
+#: stock/models.py:648 stock/templates/stock/item_base.html:320
#: templates/js/translated/build.js:456 templates/js/translated/build.js:608
#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706
#: templates/js/translated/model_renderers.js:118
-#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403
-#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490
+#: templates/js/translated/order.js:121 templates/js/translated/order.js:3597
+#: templates/js/translated/order.js:3684 templates/js/translated/stock.js:490
msgid "Serial Number"
msgstr "Numer Seryjny"
@@ -5963,7 +5991,7 @@ msgstr "Zainstalowane elementy"
#: report/templates/report/inventree_test_report_base.html:137
#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780
-#: templates/js/translated/stock.js:2717
+#: templates/js/translated/stock.js:2713
msgid "Serial"
msgstr "Numer seryjny"
@@ -5980,7 +6008,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
#: stock/models.py:89 stock/models.py:739
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:250
msgid "Owner"
msgstr "Właściciel"
@@ -6046,7 +6074,7 @@ msgstr ""
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:631 stock/templates/stock/item_base.html:356
+#: stock/models.py:631 stock/templates/stock/item_base.html:359
msgid "Installed In"
msgstr "Zainstalowane w"
@@ -6086,8 +6114,8 @@ msgstr ""
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:706 stock/templates/stock/item_base.html:424
-#: templates/js/translated/stock.js:1883
+#: stock/models.py:706 stock/templates/stock/item_base.html:427
+#: templates/js/translated/stock.js:1879
msgid "Expiry Date"
msgstr "Data ważności"
@@ -6379,7 +6407,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2857
msgid "Install Stock Item"
msgstr ""
@@ -6479,134 +6507,135 @@ msgstr ""
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:158
+#: stock/templates/stock/item_base.html:161
msgid "Barcode Identifier"
msgstr "Skaner kodów"
-#: stock/templates/stock/item_base.html:193
+#: stock/templates/stock/item_base.html:196
msgid "Parent Item"
msgstr "Element nadrzędny"
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:214
msgid "No manufacturer set"
msgstr "Nie ustawiono producenta"
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:254
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/location.html:132
msgid "Read only"
msgstr "Tylko do odczytu"
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:268
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:266
+#: stock/templates/stock/item_base.html:269
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:279
+#: stock/templates/stock/item_base.html:282
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:290
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:298
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:301
+#: stock/templates/stock/item_base.html:304
msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
msgstr ""
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "previous page"
msgstr "poprzednia strona"
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "next page"
msgstr "następna strona"
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:345
+#: stock/templates/stock/item_base.html:348
msgid "Available Quantity"
msgstr ""
-#: stock/templates/stock/item_base.html:389
+#: stock/templates/stock/item_base.html:392
#: templates/js/translated/build.js:1729
msgid "No location set"
msgstr "Lokacje nie są ustawione"
-#: stock/templates/stock/item_base.html:404
+#: stock/templates/stock/item_base.html:407
msgid "Tests"
msgstr "Testy"
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#: templates/js/translated/table_filters.js:269
msgid "Expired"
msgstr "Termin minął"
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:275
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:437
-#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899
+#: stock/templates/stock/item_base.html:440
+#: templates/js/translated/company.js:1038
+#: templates/js/translated/stock.js:1895
msgid "Last Updated"
msgstr "Ostatnia aktualizacja"
-#: stock/templates/stock/item_base.html:442
+#: stock/templates/stock/item_base.html:445
msgid "Last Stocktake"
msgstr "Ostatnia inwentaryzacja"
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:516
+#: stock/templates/stock/item_base.html:519
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:589
+#: stock/templates/stock/item_base.html:592
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:592
+#: stock/templates/stock/item_base.html:595
msgid "Warning"
msgstr "Ostrzeżenie"
-#: stock/templates/stock/item_base.html:593
+#: stock/templates/stock/item_base.html:596
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:601
+#: stock/templates/stock/item_base.html:604
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:629
+#: stock/templates/stock/item_base.html:632
msgid "Return to Stock"
msgstr "Wróć do stanu magazynowego"
@@ -6739,11 +6768,11 @@ msgstr ""
msgid "Refer to the error log in the admin interface for further details"
msgstr ""
-#: templates/503.html:11 templates/503.html:36
+#: templates/503.html:11 templates/503.html:34
msgid "Site is in Maintenance"
msgstr ""
-#: templates/503.html:42
+#: templates/503.html:40
msgid "The site is currently in maintenance and should be up again soon!"
msgstr ""
@@ -7509,7 +7538,7 @@ msgstr "Potwierdź adres e-mail"
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr "Proszę potwierdzić że %(email)s jest adresem e-mail dla użytkownika %(user_display)s."
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:644
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "Potwierdź"
@@ -7731,7 +7760,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1481
+#: templates/js/translated/bom.js:1489
msgid "Required Quantity"
msgstr "Wymagana ilość"
@@ -7745,7 +7774,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2522
+#: templates/js/translated/part.js:2551
msgid "Minimum Quantity"
msgstr "Minimalna ilość"
@@ -7950,7 +7979,7 @@ msgstr "Dane wiersza"
#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620
#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601
#: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003
-#: templates/js/translated/order.js:1085 templates/modals.html:15
+#: templates/js/translated/order.js:1179 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr "Zamknij"
@@ -7960,12 +7989,12 @@ msgid "Download BOM Template"
msgstr "Pobierz szablon BOM-u"
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145
+#: templates/js/translated/order.js:960 templates/js/translated/tables.js:145
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:867
+#: templates/js/translated/order.js:961
msgid "Select file format"
msgstr "Wybierz format pliku"
@@ -8061,73 +8090,73 @@ msgstr ""
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857
-#: templates/js/translated/order.js:3738
+#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1857
+#: templates/js/translated/order.js:3932
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861
+#: templates/js/translated/bom.js:940 templates/js/translated/build.js:1861
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516
+#: templates/js/translated/bom.js:942 templates/js/translated/build.js:1863
+#: templates/js/translated/part.js:761 templates/js/translated/part.js:1533
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865
+#: templates/js/translated/bom.js:944 templates/js/translated/build.js:1865
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:954
+#: templates/js/translated/bom.js:962
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:969
+#: templates/js/translated/bom.js:977
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:976
+#: templates/js/translated/bom.js:984
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145
+#: templates/js/translated/bom.js:1033 templates/js/translated/bom.js:1153
msgid "View BOM"
msgstr "Zobacz BOM"
-#: templates/js/translated/bom.js:1052
+#: templates/js/translated/bom.js:1060
msgid "Including On Order"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1124
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1118
+#: templates/js/translated/bom.js:1126
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1120
+#: templates/js/translated/bom.js:1128
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284
+#: templates/js/translated/bom.js:1130 templates/js/translated/bom.js:1292
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1124
+#: templates/js/translated/bom.js:1132
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650
+#: templates/js/translated/bom.js:1228 templates/js/translated/build.js:1650
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789
+#: templates/js/translated/bom.js:1472 templates/js/translated/build.js:1789
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1486
+#: templates/js/translated/bom.js:1498
msgid "Inherited from parent BOM"
msgstr ""
@@ -8270,12 +8299,12 @@ msgid "No required tests for this build"
msgstr ""
#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697
-#: templates/js/translated/order.js:3438
+#: templates/js/translated/order.js:3632
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698
-#: templates/js/translated/order.js:3439
+#: templates/js/translated/order.js:3633
msgid "Delete stock allocation"
msgstr ""
@@ -8295,20 +8324,20 @@ msgstr ""
msgid "Quantity Per"
msgstr "Ilość za"
-#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745
+#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3939
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743
+#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3937
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127
-#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757
+#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3951
msgid "Allocated"
msgstr "Przydzielono"
-#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837
+#: templates/js/translated/build.js:1930 templates/js/translated/order.js:4031
msgid "Build stock"
msgstr ""
@@ -8316,21 +8345,21 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830
+#: templates/js/translated/build.js:1937 templates/js/translated/order.js:4024
msgid "Allocate stock"
msgstr ""
#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965
+#: templates/js/translated/order.js:1007 templates/js/translated/order.js:3159
#: templates/js/translated/report.js:225
msgid "Select Parts"
msgstr "Wybierz części"
-#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966
+#: templates/js/translated/build.js:1977 templates/js/translated/order.js:3160
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914
+#: templates/js/translated/build.js:2026 templates/js/translated/order.js:3108
msgid "Specify stock allocation quantity"
msgstr ""
@@ -8342,7 +8371,7 @@ msgstr ""
msgid "All selected parts have been fully allocated"
msgstr ""
-#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980
+#: templates/js/translated/build.js:2115 templates/js/translated/order.js:3174
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
@@ -8350,11 +8379,11 @@ msgstr ""
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077
+#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3271
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154
+#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3348
msgid "No matching stock items"
msgstr ""
@@ -8386,9 +8415,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401
-#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1422
+#: templates/js/translated/part.js:1948 templates/js/translated/stock.js:1686
+#: templates/js/translated/stock.js:2382
msgid "Select"
msgstr "Wybierz"
@@ -8400,7 +8429,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647
+#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2643
msgid "No user information"
msgstr "Brak informacji o użytkowniku"
@@ -8408,111 +8437,115 @@ msgstr "Brak informacji o użytkowniku"
msgid "No parts allocated for"
msgstr ""
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
msgid "Add Manufacturer"
msgstr "Dodaj producenta"
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:179
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:181
msgid "Add Manufacturer Part"
msgstr "Dodaj część producenta"
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
msgid "Edit Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:167 templates/js/translated/order.js:511
+#: templates/js/translated/company.js:169 templates/js/translated/order.js:576
msgid "Add Supplier"
msgstr "Dodaj dostawcę"
-#: templates/js/translated/company.js:195 templates/js/translated/order.js:734
+#: templates/js/translated/company.js:197 templates/js/translated/order.js:828
msgid "Add Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:262
+#: templates/js/translated/company.js:297
msgid "All selected supplier parts will be deleted"
msgstr "Wszystkie wybrane komponenty dostawcy zostaną usunięte"
-#: templates/js/translated/company.js:278
+#: templates/js/translated/company.js:313
msgid "Delete Supplier Parts"
msgstr ""
-#: templates/js/translated/company.js:350
+#: templates/js/translated/company.js:385
msgid "Add new Company"
msgstr "Dodaj nową firmę"
-#: templates/js/translated/company.js:427
+#: templates/js/translated/company.js:462
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:471
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:451
+#: templates/js/translated/company.js:486
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:492
+#: templates/js/translated/company.js:527
msgid "All selected manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:507
+#: templates/js/translated/company.js:542
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:541
+#: templates/js/translated/company.js:576
msgid "All selected parameters will be deleted"
msgstr ""
-#: templates/js/translated/company.js:555
+#: templates/js/translated/company.js:590
msgid "Delete Parameters"
msgstr "Usuń parametry"
-#: templates/js/translated/company.js:596
+#: templates/js/translated/company.js:631
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:616
-#: templates/js/translated/company.js:876 templates/js/translated/part.js:638
-#: templates/js/translated/part.js:723
+#: templates/js/translated/company.js:651
+#: templates/js/translated/company.js:912 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:721
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:620
-#: templates/js/translated/company.js:880 templates/js/translated/part.js:642
-#: templates/js/translated/part.js:727
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:916 templates/js/translated/part.js:640
+#: templates/js/translated/part.js:725
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:748 templates/js/translated/part.js:830
+#: templates/js/translated/company.js:783 templates/js/translated/part.js:828
msgid "No parameters found"
msgstr "Nie znaleziono parametrów"
-#: templates/js/translated/company.js:785 templates/js/translated/part.js:872
+#: templates/js/translated/company.js:820 templates/js/translated/part.js:870
msgid "Edit parameter"
msgstr "Edytuj Parametr"
-#: templates/js/translated/company.js:786 templates/js/translated/part.js:873
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:871
msgid "Delete parameter"
msgstr "Usuń parametr"
-#: templates/js/translated/company.js:805 templates/js/translated/part.js:890
+#: templates/js/translated/company.js:840 templates/js/translated/part.js:888
msgid "Edit Parameter"
msgstr "Edytuj Parametr"
-#: templates/js/translated/company.js:816 templates/js/translated/part.js:902
+#: templates/js/translated/company.js:851 templates/js/translated/part.js:900
msgid "Delete Parameter"
msgstr "Usuń parametr"
-#: templates/js/translated/company.js:856
+#: templates/js/translated/company.js:891
msgid "No supplier parts found"
msgstr ""
-#: templates/js/translated/company.js:1002
+#: templates/js/translated/company.js:1032
+msgid "Availability"
+msgstr ""
+
+#: templates/js/translated/company.js:1055
msgid "Edit supplier part"
msgstr ""
-#: templates/js/translated/company.js:1003
+#: templates/js/translated/company.js:1056
msgid "Delete supplier part"
msgstr ""
@@ -8550,61 +8583,61 @@ msgstr "Wyczyść wszystkie filtry"
msgid "Create filter"
msgstr "Utwórz filtr"
-#: templates/js/translated/forms.js:367 templates/js/translated/forms.js:382
-#: templates/js/translated/forms.js:396 templates/js/translated/forms.js:410
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr "Działanie zabronione"
-#: templates/js/translated/forms.js:369
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr "Operacja utworzenia nie jest dozwolona"
-#: templates/js/translated/forms.js:384
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr "Operacja aktualizacji nie jest dozwolona"
-#: templates/js/translated/forms.js:398
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr "Operacja usuwania nie jest dozwolona"
-#: templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr "Operacja przeglądania nie jest dozwolona"
-#: templates/js/translated/forms.js:670
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr "Pozostaw ten formularz otwarty"
-#: templates/js/translated/forms.js:771
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr "Wprowadź poprawny numer"
-#: templates/js/translated/forms.js:1269 templates/modals.html:19
+#: templates/js/translated/forms.js:1274 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr "Istnieją błędy formularza"
-#: templates/js/translated/forms.js:1702
+#: templates/js/translated/forms.js:1707
msgid "No results found"
msgstr "Nie znaleziono wyników"
-#: templates/js/translated/forms.js:1917 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr "Wyszukiwanie"
-#: templates/js/translated/forms.js:2170
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr "Wyczyść wejście"
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "File Column"
msgstr "Kolumna pliku"
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "Field Name"
msgstr "Nazwa pola"
-#: templates/js/translated/forms.js:2648
+#: templates/js/translated/forms.js:2653
msgid "Select Columns"
msgstr "Wybór Kolumn"
@@ -8795,409 +8828,422 @@ msgstr ""
msgid "Notifications will load here"
msgstr ""
-#: templates/js/translated/order.js:96
+#: templates/js/translated/order.js:97
msgid "No stock items have been allocated to this shipment"
msgstr ""
-#: templates/js/translated/order.js:101
+#: templates/js/translated/order.js:102
msgid "The following stock items will be shipped"
msgstr ""
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:142
msgid "Complete Shipment"
msgstr ""
-#: templates/js/translated/order.js:161
+#: templates/js/translated/order.js:162
msgid "Confirm Shipment"
msgstr ""
-#: templates/js/translated/order.js:217
+#: templates/js/translated/order.js:218
msgid "No pending shipments found"
msgstr ""
-#: templates/js/translated/order.js:221
+#: templates/js/translated/order.js:222
msgid "No stock items have been allocated to pending shipments"
msgstr ""
-#: templates/js/translated/order.js:253
+#: templates/js/translated/order.js:254
msgid "Skip"
msgstr ""
-#: templates/js/translated/order.js:283
+#: templates/js/translated/order.js:284
msgid "Complete Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:289
+#: templates/js/translated/order.js:301 templates/js/translated/order.js:413
msgid "Mark this order as complete?"
msgstr "Oznacz zamówienie jako zakończone?"
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:307
msgid "All line items have been received"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:312
msgid "This order has line items which have not been marked as received."
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:313 templates/js/translated/order.js:427
msgid "Completing this order means that the order and line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:324
+#: templates/js/translated/order.js:336
msgid "Cancel Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:329
+#: templates/js/translated/order.js:341
msgid "Are you sure you wish to cancel this purchase order?"
msgstr ""
-#: templates/js/translated/order.js:335
+#: templates/js/translated/order.js:347
msgid "This purchase order can not be cancelled"
msgstr ""
-#: templates/js/translated/order.js:358
+#: templates/js/translated/order.js:370
msgid "Issue Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:363
+#: templates/js/translated/order.js:375
msgid "After placing this purchase order, line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:385
+#: templates/js/translated/order.js:426
+msgid "This order has line items which have not been completed."
+msgstr ""
+
+#: templates/js/translated/order.js:450
msgid "Cancel Sales Order"
msgstr ""
-#: templates/js/translated/order.js:390
+#: templates/js/translated/order.js:455
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:444
+#: templates/js/translated/order.js:509
msgid "Create New Shipment"
msgstr ""
-#: templates/js/translated/order.js:469
+#: templates/js/translated/order.js:534
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:494
+#: templates/js/translated/order.js:559
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:555
+#: templates/js/translated/order.js:620
msgid "Select purchase order to duplicate"
msgstr ""
-#: templates/js/translated/order.js:562
+#: templates/js/translated/order.js:627
msgid "Duplicate Line Items"
msgstr ""
-#: templates/js/translated/order.js:563
+#: templates/js/translated/order.js:628
msgid "Duplicate all line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:570
+#: templates/js/translated/order.js:635
msgid "Duplicate Extra Lines"
msgstr ""
-#: templates/js/translated/order.js:571
+#: templates/js/translated/order.js:636
msgid "Duplicate extra line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:588
+#: templates/js/translated/order.js:653
msgid "Edit Purchase Order"
msgstr "Edytuj zamówienie zakupu"
-#: templates/js/translated/order.js:605
+#: templates/js/translated/order.js:670
msgid "Duplication Options"
msgstr ""
-#: templates/js/translated/order.js:863
+#: templates/js/translated/order.js:957
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:914
+#: templates/js/translated/order.js:1008
msgid "At least one purchaseable part must be selected"
msgstr ""
-#: templates/js/translated/order.js:939
+#: templates/js/translated/order.js:1033
msgid "Quantity to order"
msgstr ""
-#: templates/js/translated/order.js:948
+#: templates/js/translated/order.js:1042
msgid "New supplier part"
msgstr ""
-#: templates/js/translated/order.js:966
+#: templates/js/translated/order.js:1060
msgid "New purchase order"
msgstr ""
-#: templates/js/translated/order.js:999
+#: templates/js/translated/order.js:1093
msgid "Add to purchase order"
msgstr ""
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1233
msgid "No matching supplier parts"
msgstr ""
-#: templates/js/translated/order.js:1123
+#: templates/js/translated/order.js:1252
msgid "No matching purchase orders"
msgstr ""
-#: templates/js/translated/order.js:1300
+#: templates/js/translated/order.js:1429
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1430
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420
+#: templates/js/translated/order.js:1450 templates/js/translated/order.js:1563
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431
+#: templates/js/translated/order.js:1456 templates/js/translated/order.js:1574
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1339
+#: templates/js/translated/order.js:1471
+msgid "Received Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:1482
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144
+#: templates/js/translated/order.js:1546 templates/js/translated/stock.js:2140
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:1494
+#: templates/js/translated/order.js:1639
msgid "Order Code"
msgstr "Kod zamówienia"
-#: templates/js/translated/order.js:1495
+#: templates/js/translated/order.js:1640
msgid "Ordered"
msgstr "Zamówione"
-#: templates/js/translated/order.js:1497
+#: templates/js/translated/order.js:1642
msgid "Quantity to Receive"
msgstr "Ilość do otrzymania"
-#: templates/js/translated/order.js:1516
+#: templates/js/translated/order.js:1661
msgid "Confirm receipt of items"
msgstr "Potwierdź odbiór elementów"
-#: templates/js/translated/order.js:1517
+#: templates/js/translated/order.js:1662
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943
+#: templates/js/translated/order.js:1940 templates/js/translated/part.js:941
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2803
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674
-#: templates/js/translated/order.js:2815
+#: templates/js/translated/order.js:2017 templates/js/translated/order.js:2868
+#: templates/js/translated/order.js:3009
msgid "Items"
msgstr "Przedmioty"
-#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889
+#: templates/js/translated/order.js:2115 templates/js/translated/order.js:4083
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911
+#: templates/js/translated/order.js:2132 templates/js/translated/order.js:4105
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:4116
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:2026
+#: templates/js/translated/order.js:2188
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:2215 templates/js/translated/order.js:3817
msgid "Total"
msgstr "Razem"
-#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309
-#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156
-#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753
+#: templates/js/translated/order.js:2270 templates/js/translated/part.js:1043
+#: templates/js/translated/part.js:1095
+msgid "Total Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:2301 templates/js/translated/order.js:2503
+#: templates/js/translated/order.js:3842 templates/js/translated/order.js:4350
+#: templates/js/translated/part.js:2184 templates/js/translated/part.js:2782
msgid "Unit Price"
msgstr "Cena jednostkowa"
-#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325
-#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172
+#: templates/js/translated/order.js:2316 templates/js/translated/order.js:2519
+#: templates/js/translated/order.js:3858 templates/js/translated/order.js:4366
msgid "Total Price"
msgstr "Cena całkowita"
-#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706
-#: templates/js/translated/part.js:1070
+#: templates/js/translated/order.js:2357 templates/js/translated/order.js:3900
+#: templates/js/translated/part.js:1079
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110
+#: templates/js/translated/order.js:2416 templates/js/translated/part.js:1130
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2420 templates/js/translated/order.js:4037
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844
+#: templates/js/translated/order.js:2421 templates/js/translated/order.js:4038
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848
+#: templates/js/translated/order.js:2422 templates/js/translated/order.js:4042
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221
+#: templates/js/translated/order.js:2568 templates/js/translated/order.js:4415
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222
+#: templates/js/translated/order.js:2569 templates/js/translated/order.js:4416
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223
+#: templates/js/translated/order.js:2570 templates/js/translated/order.js:4417
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253
+#: templates/js/translated/order.js:2600 templates/js/translated/order.js:4447
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274
+#: templates/js/translated/order.js:2621 templates/js/translated/order.js:4468
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285
+#: templates/js/translated/order.js:2632 templates/js/translated/order.js:4479
msgid "Delete Line"
msgstr ""
-#: templates/js/translated/order.js:2449
+#: templates/js/translated/order.js:2643
msgid "No matching line"
msgstr ""
-#: templates/js/translated/order.js:2560
+#: templates/js/translated/order.js:2754
msgid "No sales orders found"
msgstr "Nie znaleziono zamówień sprzedaży"
-#: templates/js/translated/order.js:2623
+#: templates/js/translated/order.js:2817
msgid "Invalid Customer"
msgstr "Nieprawidłowy klient"
-#: templates/js/translated/order.js:2721
+#: templates/js/translated/order.js:2915
msgid "Edit shipment"
msgstr "Edytuj wysyłkę"
-#: templates/js/translated/order.js:2724
+#: templates/js/translated/order.js:2918
msgid "Complete shipment"
msgstr "Kompletna wysyłka"
-#: templates/js/translated/order.js:2729
+#: templates/js/translated/order.js:2923
msgid "Delete shipment"
msgstr "Usuń wysyłkę"
-#: templates/js/translated/order.js:2749
+#: templates/js/translated/order.js:2943
msgid "Edit Shipment"
msgstr "Edytuj wysyłkę"
-#: templates/js/translated/order.js:2766
+#: templates/js/translated/order.js:2960
msgid "Delete Shipment"
msgstr "Usuń wysyłkę"
-#: templates/js/translated/order.js:2800
+#: templates/js/translated/order.js:2994
msgid "No matching shipments found"
msgstr "Nie odnaleziono pasujących przesyłek"
-#: templates/js/translated/order.js:2810
+#: templates/js/translated/order.js:3004
msgid "Shipment Reference"
msgstr "Numer referencyjny przesyłki"
-#: templates/js/translated/order.js:2834
+#: templates/js/translated/order.js:3028
msgid "Not shipped"
msgstr "Nie wysłano"
-#: templates/js/translated/order.js:2840
+#: templates/js/translated/order.js:3034
msgid "Tracking"
msgstr "Śledzenie"
-#: templates/js/translated/order.js:2844
+#: templates/js/translated/order.js:3038
msgid "Invoice"
msgstr ""
-#: templates/js/translated/order.js:3013
+#: templates/js/translated/order.js:3207
msgid "Add Shipment"
msgstr ""
-#: templates/js/translated/order.js:3064
+#: templates/js/translated/order.js:3258
msgid "Confirm stock allocation"
msgstr "Potwierdź przydział zapasów"
-#: templates/js/translated/order.js:3065
+#: templates/js/translated/order.js:3259
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:3273
+#: templates/js/translated/order.js:3467
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:3352
+#: templates/js/translated/order.js:3546
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3369
+#: templates/js/translated/order.js:3563
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:3370
+#: templates/js/translated/order.js:3564
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504
+#: templates/js/translated/order.js:3609 templates/js/translated/order.js:3698
#: templates/js/translated/stock.js:1602
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513
+#: templates/js/translated/order.js:3617 templates/js/translated/order.js:3707
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3827
+#: templates/js/translated/order.js:4021
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3833
+#: templates/js/translated/order.js:4027
msgid "Purchase stock"
msgstr "Cena zakupu"
-#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038
+#: templates/js/translated/order.js:4034 templates/js/translated/order.js:4232
msgid "Calculate price"
msgstr "Oblicz cenę"
-#: templates/js/translated/order.js:3852
+#: templates/js/translated/order.js:4046
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3855
+#: templates/js/translated/order.js:4049
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3937
+#: templates/js/translated/order.js:4131
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:4046
+#: templates/js/translated/order.js:4240
msgid "Update Unit Price"
msgstr "Zaktualizuj cenę jednostkową"
-#: templates/js/translated/order.js:4060
+#: templates/js/translated/order.js:4254
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4296
+#: templates/js/translated/order.js:4490
msgid "No matching lines"
msgstr ""
@@ -9377,173 +9423,177 @@ msgstr ""
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498
+#: templates/js/translated/part.js:584 templates/js/translated/part.js:1515
#: templates/js/translated/table_filters.js:468
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:596
+#: templates/js/translated/part.js:594
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:715
+#: templates/js/translated/part.js:628 templates/js/translated/part.js:713
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:634 templates/js/translated/part.js:719
+#: templates/js/translated/part.js:632 templates/js/translated/part.js:717
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:646
+#: templates/js/translated/part.js:644
msgid "Subscribed part"
msgstr "Obserwowane części"
-#: templates/js/translated/part.js:650
+#: templates/js/translated/part.js:648
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:778
+#: templates/js/translated/part.js:776
msgid "No variants found"
msgstr "Nie znaleziono wariantów"
-#: templates/js/translated/part.js:1180
+#: templates/js/translated/part.js:1200
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1204
+#: templates/js/translated/part.js:1224
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573
+#: templates/js/translated/part.js:1291 templates/js/translated/part.js:1602
msgid "No parts found"
msgstr "Nie znaleziono części"
-#: templates/js/translated/part.js:1310
-msgid "Not available"
-msgstr ""
-
-#: templates/js/translated/part.js:1461
+#: templates/js/translated/part.js:1482
msgid "No category"
msgstr "Brak kategorii"
-#: templates/js/translated/part.js:1496
+#: templates/js/translated/part.js:1513
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840
-#: templates/js/translated/stock.js:2347
+#: templates/js/translated/part.js:1537
+msgid "Allocated to build orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1541
+msgid "Allocated to sales orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1626 templates/js/translated/part.js:1869
+#: templates/js/translated/stock.js:2343
msgid "Display as list"
msgstr "Wyświetl jako listę"
-#: templates/js/translated/part.js:1613
+#: templates/js/translated/part.js:1642
msgid "Display as grid"
msgstr "Wyświetl jako siatkę"
-#: templates/js/translated/part.js:1679
+#: templates/js/translated/part.js:1708
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1684
+#: templates/js/translated/part.js:1713
msgid "Set Part Category"
msgstr "Ustaw kategorię części"
-#: templates/js/translated/part.js:1689
+#: templates/js/translated/part.js:1718
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1702
+#: templates/js/translated/part.js:1731
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366
+#: templates/js/translated/part.js:1888 templates/js/translated/stock.js:2362
msgid "Display as tree"
msgstr "Wyświetl jako drzewo"
-#: templates/js/translated/part.js:1938
+#: templates/js/translated/part.js:1967
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:1954
+#: templates/js/translated/part.js:1983
msgid "Subscribed category"
msgstr "Obserwowana kategoria"
-#: templates/js/translated/part.js:2012
+#: templates/js/translated/part.js:2041
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299
+#: templates/js/translated/part.js:2092 templates/js/translated/stock.js:1299
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300
+#: templates/js/translated/part.js:2093 templates/js/translated/stock.js:1300
#: templates/js/translated/stock.js:1560
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2070
+#: templates/js/translated/part.js:2099
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2092
+#: templates/js/translated/part.js:2121
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2106
+#: templates/js/translated/part.js:2135
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2131
+#: templates/js/translated/part.js:2160
#, python-brace-format
msgid "No ${human_name} information found"
msgstr "Nie znaleziono informacji o ${human_name}"
-#: templates/js/translated/part.js:2188
+#: templates/js/translated/part.js:2217
#, python-brace-format
msgid "Edit ${human_name}"
msgstr "Edytuj ${human_name}"
-#: templates/js/translated/part.js:2189
+#: templates/js/translated/part.js:2218
#, python-brace-format
msgid "Delete ${human_name}"
msgstr "Usuń ${human_name}"
-#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355
+#: templates/js/translated/part.js:2383 templates/js/translated/part.js:2384
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2357
+#: templates/js/translated/part.js:2386
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2363
+#: templates/js/translated/part.js:2392
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2413
+#: templates/js/translated/part.js:2442
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2419
+#: templates/js/translated/part.js:2448
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2515
+#: templates/js/translated/part.js:2544
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2531
+#: templates/js/translated/part.js:2560
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2576
+#: templates/js/translated/part.js:2605
msgid "Minimum Stock Level"
msgstr ""
-#: templates/js/translated/part.js:2677
+#: templates/js/translated/part.js:2706
msgid "Single Price"
msgstr "Cena jednostkowa"
-#: templates/js/translated/part.js:2696
+#: templates/js/translated/part.js:2725
msgid "Single Price Difference"
msgstr ""
@@ -9781,7 +9831,7 @@ msgstr "Weź"
msgid "Add Stock"
msgstr "Dodaj stan"
-#: templates/js/translated/stock.js:942 users/models.py:216
+#: templates/js/translated/stock.js:942 users/models.py:218
msgid "Add"
msgstr "Dodaj"
@@ -9857,156 +9907,156 @@ msgstr ""
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1775
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1780
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1787
+#: templates/js/translated/stock.js:1783
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1790
+#: templates/js/translated/stock.js:1786
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1792
+#: templates/js/translated/stock.js:1788
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1794
+#: templates/js/translated/stock.js:1790
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1797
+#: templates/js/translated/stock.js:1793
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1797
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1803
+#: templates/js/translated/stock.js:1799
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1810
+#: templates/js/translated/stock.js:1806
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:1808
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1814
+#: templates/js/translated/stock.js:1810
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1818
+#: templates/js/translated/stock.js:1814
#: templates/js/translated/table_filters.js:196
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1869
+#: templates/js/translated/stock.js:1865
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1948
+#: templates/js/translated/stock.js:1944
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1986
+#: templates/js/translated/stock.js:1982
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2159
+#: templates/js/translated/stock.js:2155
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2173
+#: templates/js/translated/stock.js:2169
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2174
+#: templates/js/translated/stock.js:2170
msgid "Status code must be selected"
msgstr "Kod statusu musi być wybrany"
-#: templates/js/translated/stock.js:2404
+#: templates/js/translated/stock.js:2400
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2493
+#: templates/js/translated/stock.js:2489
msgid "Details"
msgstr "Szczegóły"
-#: templates/js/translated/stock.js:2509
+#: templates/js/translated/stock.js:2505
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2531
+#: templates/js/translated/stock.js:2527
msgid "Location no longer exists"
msgstr "Lokalizacja już nie istnieje"
-#: templates/js/translated/stock.js:2550
+#: templates/js/translated/stock.js:2546
msgid "Purchase order no longer exists"
msgstr "Zamówienie zakupu już nie istnieje"
-#: templates/js/translated/stock.js:2569
+#: templates/js/translated/stock.js:2565
msgid "Customer no longer exists"
msgstr "Klient już nie istnieje"
-#: templates/js/translated/stock.js:2587
+#: templates/js/translated/stock.js:2583
msgid "Stock item no longer exists"
msgstr "Element magazynowy już nie istnieje"
-#: templates/js/translated/stock.js:2610
+#: templates/js/translated/stock.js:2606
msgid "Added"
msgstr "Dodano"
-#: templates/js/translated/stock.js:2618
+#: templates/js/translated/stock.js:2614
msgid "Removed"
msgstr "Usunięto"
-#: templates/js/translated/stock.js:2694
+#: templates/js/translated/stock.js:2690
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781
+#: templates/js/translated/stock.js:2741 templates/js/translated/stock.js:2777
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2790
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2815
+#: templates/js/translated/stock.js:2811
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2816
+#: templates/js/translated/stock.js:2812
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2818
+#: templates/js/translated/stock.js:2814
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2819
+#: templates/js/translated/stock.js:2815
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2820
+#: templates/js/translated/stock.js:2816
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2821
+#: templates/js/translated/stock.js:2817
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2834
+#: templates/js/translated/stock.js:2830
msgid "Select part to install"
msgstr ""
@@ -10528,35 +10578,35 @@ msgstr "Uprawnienia"
msgid "Important dates"
msgstr "Ważne daty"
-#: users/models.py:203
+#: users/models.py:205
msgid "Permission set"
msgstr "Uprawnienia nadane"
-#: users/models.py:211
+#: users/models.py:213
msgid "Group"
msgstr "Grupa"
-#: users/models.py:214
+#: users/models.py:216
msgid "View"
msgstr "Widok"
-#: users/models.py:214
+#: users/models.py:216
msgid "Permission to view items"
msgstr "Uprawnienie do wyświetlania przedmiotów"
-#: users/models.py:216
+#: users/models.py:218
msgid "Permission to add items"
msgstr "Uprawnienie do dodawania przedmiotów"
-#: users/models.py:218
+#: users/models.py:220
msgid "Change"
msgstr "Zmień"
-#: users/models.py:218
+#: users/models.py:220
msgid "Permissions to edit items"
msgstr "Uprawnienie do edycji przedmiotów"
-#: users/models.py:220
+#: users/models.py:222
msgid "Permission to delete items"
msgstr "Uprawnienie do usuwania przedmiotów"
diff --git a/InvenTree/locale/pt/LC_MESSAGES/django.po b/InvenTree/locale/pt/LC_MESSAGES/django.po
index 3c5cc7d558..b58393822d 100644
--- a/InvenTree/locale/pt/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pt/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-08-25 10:08+0000\n"
-"PO-Revision-Date: 2022-08-26 01:55\n"
+"POT-Creation-Date: 2022-09-09 02:44+0000\n"
+"PO-Revision-Date: 2022-09-09 03:56\n"
"Last-Translator: \n"
"Language-Team: Portuguese, Brazilian\n"
"Language: pt_BR\n"
@@ -29,9 +29,9 @@ msgstr "Detalhes do erro podem ser encontrados no painel de administrador"
msgid "Enter date"
msgstr "Insira uma Data"
-#: InvenTree/fields.py:186 build/serializers.py:384
-#: build/templates/build/sidebar.html:21 company/models.py:523
-#: company/templates/company/sidebar.html:25 order/models.py:906
+#: InvenTree/fields.py:183 build/serializers.py:384
+#: build/templates/build/sidebar.html:21 company/models.py:524
+#: company/templates/company/sidebar.html:25 order/models.py:910
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17
#: part/templates/part/part_sidebar.html:59
@@ -40,11 +40,12 @@ msgstr "Insira uma Data"
#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823
#: stock/serializers.py:922 stock/serializers.py:1054
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099
-#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210
-#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859
-#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208
-#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1107
+#: templates/js/translated/company.js:1022
+#: templates/js/translated/order.js:2404 templates/js/translated/order.js:2555
+#: templates/js/translated/order.js:3053 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:4402 templates/js/translated/stock.js:1374
+#: templates/js/translated/stock.js:1976
msgid "Notes"
msgstr "Anotações"
@@ -210,12 +211,12 @@ msgid "Select file to attach"
msgstr "Selecione arquivo para anexar"
#: InvenTree/models.py:402 company/models.py:124 company/models.py:276
-#: company/models.py:510 order/models.py:84 order/models.py:1245
+#: company/models.py:511 order/models.py:84 order/models.py:1249
#: part/models.py:802 part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
-#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848
-#: templates/js/translated/part.js:1534
+#: templates/js/translated/company.js:691
+#: templates/js/translated/company.js:1011
+#: templates/js/translated/order.js:3042 templates/js/translated/part.js:1563
msgid "Link"
msgstr "Link"
@@ -233,12 +234,12 @@ msgstr "Comentario"
msgid "File comment"
msgstr "Comentario sobre arquivo"
-#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665
-#: common/models.py:1666 common/models.py:1889 common/models.py:1890
-#: common/models.py:2152 common/models.py:2153 part/models.py:2239
-#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257
+#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1669
+#: common/models.py:1670 common/models.py:1893 common/models.py:1894
+#: common/models.py:2156 common/models.py:2157 part/models.py:2247
+#: part/models.py:2267 plugin/models.py:260 plugin/models.py:261
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2641
+#: templates/js/translated/stock.js:2637
msgid "User"
msgstr "Usuario"
@@ -275,28 +276,28 @@ msgstr "Erro renomeando o arquivo"
msgid "Invalid choice"
msgstr "Escolha invalida"
-#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875
+#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1879
#: company/models.py:358 label/models.py:101 part/models.py:746
-#: part/models.py:2417 plugin/models.py:94 report/models.py:152
+#: part/models.py:2425 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin.html:134
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:347
-#: templates/js/translated/company.js:545
-#: templates/js/translated/company.js:758
+#: templates/js/translated/company.js:580
+#: templates/js/translated/company.js:793
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:688 templates/js/translated/part.js:840
-#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392
+#: templates/js/translated/part.js:686 templates/js/translated/part.js:838
+#: templates/js/translated/part.js:1955 templates/js/translated/stock.js:2388
msgid "Name"
msgstr "Nome"
#: InvenTree/models.py:544 build/models.py:174
#: build/templates/build/detail.html:24 company/models.py:282
-#: company/models.py:516 company/templates/company/company_base.html:71
+#: company/models.py:517 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:87 label/models.py:108
-#: order/models.py:82 part/models.py:769 part/models.py:2429
+#: company/templates/company/supplier_part.html:92 label/models.py:108
+#: order/models.py:82 part/models.py:769 part/models.py:2437
#: part/templates/part/category.html:80 part/templates/part/part_base.html:167
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
@@ -305,14 +306,14 @@ msgstr "Nome"
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/InvenTree/settings/settings.html:358
#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846
-#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409
-#: templates/js/translated/company.js:667
-#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637
-#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167
-#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962
-#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743
-#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478
+#: templates/js/translated/build.js:2512 templates/js/translated/company.js:444
+#: templates/js/translated/company.js:702
+#: templates/js/translated/company.js:986 templates/js/translated/order.js:1988
+#: templates/js/translated/order.js:2220 templates/js/translated/order.js:2831
+#: templates/js/translated/part.js:745 templates/js/translated/part.js:1187
+#: templates/js/translated/part.js:1463 templates/js/translated/part.js:1991
+#: templates/js/translated/part.js:2060 templates/js/translated/stock.js:1743
+#: templates/js/translated/stock.js:2420 templates/js/translated/stock.js:2474
msgid "Description"
msgstr "Descricao"
@@ -325,7 +326,7 @@ msgid "parent"
msgstr "parent"
#: InvenTree/models.py:560 InvenTree/models.py:561
-#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:2426
msgid "Path"
msgstr ""
@@ -337,7 +338,7 @@ msgstr "Erro de servidor"
msgid "An error has been logged by the server."
msgstr "Log de erro salvo pelo servidor."
-#: InvenTree/serializers.py:55 part/models.py:2745
+#: InvenTree/serializers.py:55 part/models.py:2753
msgid "Must be a valid number"
msgstr "Preicsa ser um numero valido"
@@ -522,7 +523,7 @@ msgid "Placed"
msgstr ""
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr ""
@@ -542,8 +543,8 @@ msgstr ""
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:141 order/models.py:1128
-#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785
+#: InvenTree/status_codes.py:141 order/models.py:1132
+#: templates/js/translated/order.js:3630 templates/js/translated/order.js:3979
msgid "Shipped"
msgstr ""
@@ -627,7 +628,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080
msgid "Merged stock items"
msgstr ""
@@ -717,7 +718,7 @@ msgstr ""
msgid "About InvenTree"
msgstr ""
-#: build/api.py:217
+#: build/api.py:219
msgid "Build must be cancelled before it can be deleted"
msgstr ""
@@ -748,15 +749,15 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:166 order/models.py:240 order/models.py:623
-#: order/models.py:904 part/models.py:2663
+#: build/models.py:166 order/models.py:240 order/models.py:627
+#: order/models.py:908 part/models.py:2671
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853
-#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089
-#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629
-#: templates/js/translated/order.js:4137
+#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2251
+#: templates/js/translated/order.js:2484 templates/js/translated/order.js:3823
+#: templates/js/translated/order.js:4331
msgid "Reference"
msgstr ""
@@ -774,12 +775,12 @@ msgid "BuildOrder to which this build is allocated"
msgstr ""
#: build/models.py:191 build/templates/build/build_base.html:80
-#: build/templates/build/detail.html:29 company/models.py:670
-#: order/models.py:1001 order/models.py:1112 order/models.py:1113
-#: part/models.py:343 part/models.py:2185 part/models.py:2200
-#: part/models.py:2219 part/models.py:2237 part/models.py:2336
-#: part/models.py:2463 part/models.py:2553 part/models.py:2638
-#: part/models.py:2914 part/serializers.py:814
+#: build/templates/build/detail.html:29 company/models.py:679
+#: order/models.py:1005 order/models.py:1116 order/models.py:1117
+#: part/models.py:343 part/models.py:2193 part/models.py:2208
+#: part/models.py:2227 part/models.py:2245 part/models.py:2344
+#: part/models.py:2471 part/models.py:2561 part/models.py:2646
+#: part/models.py:2922 part/serializers.py:814
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -795,18 +796,18 @@ msgstr ""
#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800
#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682
#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517
-#: templates/js/translated/company.js:266
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:608
-#: templates/js/translated/company.js:868 templates/js/translated/order.js:105
-#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493
-#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613
-#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224
-#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586
+#: templates/js/translated/company.js:301
+#: templates/js/translated/company.js:531
+#: templates/js/translated/company.js:643
+#: templates/js/translated/company.js:904 templates/js/translated/order.js:106
+#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1638
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:3185
+#: templates/js/translated/order.js:3581 templates/js/translated/order.js:3807
+#: templates/js/translated/part.js:1172 templates/js/translated/part.js:1244
+#: templates/js/translated/part.js:1441 templates/js/translated/stock.js:586
#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504
-#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833
+#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2500
+#: templates/js/translated/stock.js:2695 templates/js/translated/stock.js:2829
msgid "Part"
msgstr ""
@@ -823,7 +824,7 @@ msgid "SalesOrder to which this build is allocated"
msgstr ""
#: build/models.py:213 build/serializers.py:800
-#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979
+#: templates/js/translated/build.js:2114 templates/js/translated/order.js:3173
msgid "Source Location"
msgstr ""
@@ -863,8 +864,8 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:251 build/serializers.py:225 order/serializers.py:447
-#: stock/models.py:662 templates/js/translated/order.js:1353
+#: build/models.py:251 build/serializers.py:225 order/serializers.py:464
+#: stock/models.py:662 templates/js/translated/order.js:1496
msgid "Batch Code"
msgstr ""
@@ -873,11 +874,11 @@ msgid "Batch code for this build output"
msgstr ""
#: build/models.py:258 order/models.py:86 part/models.py:938
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2844
msgid "Creation Date"
msgstr ""
-#: build/models.py:262 order/models.py:648
+#: build/models.py:262 order/models.py:652
msgid "Target completion date"
msgstr ""
@@ -904,10 +905,10 @@ msgstr ""
#: build/models.py:289 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:100
-#: order/templates/order/order_base.html:179
+#: order/templates/order/order_base.html:185
#: order/templates/order/sales_order_base.html:183 part/models.py:942
#: report/templates/report/inventree_build_order_base.html:158
-#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860
+#: templates/js/translated/build.js:2574 templates/js/translated/order.js:2022
msgid "Responsible"
msgstr ""
@@ -917,9 +918,9 @@ msgstr ""
#: build/models.py:295 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
-#: company/templates/company/supplier_part.html:153
+#: company/templates/company/supplier_part.html:165
#: part/templates/part/part_base.html:346 stock/models.py:656
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr ""
@@ -957,11 +958,11 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1188 order/models.py:1379
+#: build/models.py:1188 order/models.py:1383
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1194 order/models.py:1382
+#: build/models.py:1194 order/models.py:1386
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -973,7 +974,7 @@ msgstr ""
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1326 stock/templates/stock/item_base.html:172
+#: build/models.py:1326 stock/templates/stock/item_base.html:175
#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496
#: templates/navbar.html:38
msgid "Build"
@@ -983,18 +984,18 @@ msgstr ""
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015
-#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754
+#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1035
+#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754
#: stock/serializers.py:880 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:197
#: templates/js/translated/build.js:774 templates/js/translated/build.js:779
#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679
-#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992
-#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299
-#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486
+#: templates/js/translated/order.js:107 templates/js/translated/order.js:3186
+#: templates/js/translated/order.js:3488 templates/js/translated/order.js:3493
+#: templates/js/translated/order.js:3588 templates/js/translated/order.js:3680
#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752
-#: templates/js/translated/stock.js:2577
+#: templates/js/translated/stock.js:2573
msgid "Stock Item"
msgstr ""
@@ -1004,11 +1005,11 @@ msgstr ""
#: build/models.py:1356 build/serializers.py:193
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1697
-#: company/templates/company/supplier_part.html:279 order/models.py:897
-#: order/models.py:1423 order/serializers.py:1155
+#: build/templates/build/detail.html:34 common/models.py:1701
+#: company/templates/company/supplier_part.html:291 order/models.py:901
+#: order/models.py:1427 order/serializers.py:1209
#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40
-#: part/models.py:2654 part/templates/part/detail.html:951
+#: part/models.py:2662 part/templates/part/detail.html:951
#: part/templates/part/detail.html:1037
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -1017,8 +1018,8 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:291 stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
+#: stock/serializers.py:291 stock/templates/stock/item_base.html:290
+#: stock/templates/stock/item_base.html:298
#: templates/email/build_order_completed.html:18
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691
#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458
@@ -1026,16 +1027,16 @@ msgstr ""
#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708
#: templates/js/translated/build.js:2129
#: templates/js/translated/model_renderers.js:120
-#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043
-#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313
-#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492
-#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143
-#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176
-#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686
-#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458
+#: templates/js/translated/order.js:123 templates/js/translated/order.js:1137
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:2490
+#: templates/js/translated/order.js:3187 templates/js/translated/order.js:3507
+#: templates/js/translated/order.js:3594 templates/js/translated/order.js:3686
+#: templates/js/translated/order.js:3829 templates/js/translated/order.js:4337
+#: templates/js/translated/part.js:1036 templates/js/translated/part.js:2205
+#: templates/js/translated/part.js:2674 templates/js/translated/part.js:2715
+#: templates/js/translated/part.js:2793 templates/js/translated/stock.js:458
#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782
-#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2707
msgid "Quantity"
msgstr ""
@@ -1077,7 +1078,7 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:208 build/serializers.py:665 order/models.py:318
-#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545
+#: order/serializers.py:304 order/serializers.py:459 part/serializers.py:545
#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251
#: stock/serializers.py:300
msgid "Quantity must be greater than zero"
@@ -1091,8 +1092,8 @@ msgstr ""
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159
-#: stock/serializers.py:309 templates/js/translated/order.js:1364
+#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213
+#: stock/serializers.py:309 templates/js/translated/order.js:1507
#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459
msgid "Serial Numbers"
msgstr ""
@@ -1117,18 +1118,18 @@ msgstr ""
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532
+#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552
#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532
#: stock/serializers.py:915 stock/serializers.py:1148
-#: stock/templates/stock/item_base.html:385
+#: stock/templates/stock/item_base.html:388
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786
-#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391
-#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411
-#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500
+#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1534
+#: templates/js/translated/order.js:3500 templates/js/translated/order.js:3605
+#: templates/js/translated/order.js:3613 templates/js/translated/order.js:3694
#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588
#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960
-#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2514
msgid "Location"
msgstr ""
@@ -1137,12 +1138,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:373 build/templates/build/build_base.html:145
-#: build/templates/build/detail.html:62 order/models.py:642
-#: order/serializers.py:465 stock/templates/stock/item_base.html:418
+#: build/templates/build/detail.html:62 order/models.py:646
+#: order/serializers.py:482 stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546
-#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830
-#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829
-#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727
+#: templates/js/translated/order.js:1643 templates/js/translated/order.js:1992
+#: templates/js/translated/order.js:2836 templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:2591 templates/js/translated/stock.js:2723
msgid "Status"
msgstr ""
@@ -1202,7 +1203,7 @@ msgstr ""
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:527
+#: build/serializers.py:527 order/serializers.py:208 order/serializers.py:1103
msgid "Accept Incomplete"
msgstr ""
@@ -1218,8 +1219,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772
-#: part/models.py:2906
+#: build/serializers.py:577 build/serializers.py:622 part/models.py:2780
+#: part/models.py:2914
msgid "BOM Item"
msgstr ""
@@ -1239,7 +1240,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:709 order/serializers.py:1073
+#: build/serializers.py:709 order/serializers.py:1093
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1256,7 +1257,7 @@ msgstr ""
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:750 order/serializers.py:1319
+#: build/serializers.py:750 order/serializers.py:1373
msgid "Allocation items must be provided"
msgstr ""
@@ -1371,13 +1372,13 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:154
-#: build/templates/build/detail.html:131 order/models.py:910
-#: order/templates/order/order_base.html:165
+#: build/templates/build/detail.html:131 order/models.py:914
+#: order/templates/order/order_base.html:171
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:125
-#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847
-#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658
-#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042
+#: templates/js/translated/build.js:2586 templates/js/translated/order.js:2009
+#: templates/js/translated/order.js:2351 templates/js/translated/order.js:2852
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1051
msgid "Target Date"
msgstr ""
@@ -1388,7 +1389,7 @@ msgstr ""
#: build/templates/build/build_base.html:159
#: build/templates/build/build_base.html:204
-#: order/templates/order/order_base.html:101
+#: order/templates/order/order_base.html:107
#: order/templates/order/sales_order_base.html:94
#: templates/js/translated/table_filters.js:320
#: templates/js/translated/table_filters.js:361
@@ -1404,15 +1405,15 @@ msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:179
-#: build/templates/build/detail.html:94 order/models.py:1105
-#: order/models.py:1199 order/models.py:1330
+#: build/templates/build/detail.html:94 order/models.py:1109
+#: order/models.py:1203 order/models.py:1334
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:365
+#: stock/templates/stock/item_base.html:368
#: templates/email/overdue_sales_order.html:15
-#: templates/js/translated/order.js:2604
+#: templates/js/translated/order.js:2798
msgid "Sales Order"
msgstr ""
@@ -1438,8 +1439,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1023
-#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199
+#: build/templates/build/detail.html:49 order/models.py:1027
+#: templates/js/translated/order.js:1644 templates/js/translated/order.js:2393
msgid "Destination"
msgstr ""
@@ -1452,18 +1453,18 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:165
+#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1215
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843
-#: templates/js/translated/stock.js:2734
+#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1839
+#: templates/js/translated/stock.js:2730
#: templates/js/translated/table_filters.js:159
#: templates/js/translated/table_filters.js:250
msgid "Batch"
msgstr ""
#: build/templates/build/detail.html:126
-#: order/templates/order/order_base.html:152
+#: order/templates/order/order_base.html:158
#: order/templates/order/sales_order_base.html:158
#: templates/js/translated/build.js:2554
msgid "Created"
@@ -1516,7 +1517,7 @@ msgstr ""
#: build/templates/build/detail.html:187
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:85
-#: part/templates/part/category.html:183 templates/js/translated/order.js:1083
+#: part/templates/part/category.html:183 templates/js/translated/order.js:1177
msgid "Order Parts"
msgstr ""
@@ -1851,7 +1852,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:951 part/models.py:2465 report/models.py:158
+#: common/models.py:951 part/models.py:2473 report/models.py:158
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:484
msgid "Template"
@@ -1861,7 +1862,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446
+#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1454
#: templates/js/translated/table_filters.js:176
#: templates/js/translated/table_filters.js:447
msgid "Assembly"
@@ -2275,349 +2276,349 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1342 common/models.py:1658
+#: common/models.py:1344 common/models.py:1662
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1364
+#: common/models.py:1366
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1365
+#: common/models.py:1367
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1371
+#: common/models.py:1373
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1372
+#: common/models.py:1374
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1378
+#: common/models.py:1380
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1379
+#: common/models.py:1381
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1385
+#: common/models.py:1387
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1386
+#: common/models.py:1388
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1392
+#: common/models.py:1394
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1393
+#: common/models.py:1395
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1399
+#: common/models.py:1401
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1400
+#: common/models.py:1402
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1406
+#: common/models.py:1408
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1407
+#: common/models.py:1409
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1413
+#: common/models.py:1415
msgid "Show low stock"
msgstr ""
-#: common/models.py:1414
+#: common/models.py:1416
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1420
+#: common/models.py:1422
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1421
+#: common/models.py:1423
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1427
+#: common/models.py:1429
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1430
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1434
+#: common/models.py:1436
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1435
+#: common/models.py:1437
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1441
+#: common/models.py:1443
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1442
+#: common/models.py:1444
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1448
+#: common/models.py:1450
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1449
+#: common/models.py:1451
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1455
+#: common/models.py:1457
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1456
+#: common/models.py:1458
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1462
+#: common/models.py:1464
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1463
+#: common/models.py:1465
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1469
+#: common/models.py:1471
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1470
+#: common/models.py:1472
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1476
+#: common/models.py:1478
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1477
+#: common/models.py:1479
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1483
+#: common/models.py:1485
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1484
+#: common/models.py:1486
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1490
+#: common/models.py:1492
msgid "Inline label display"
msgstr ""
-#: common/models.py:1491
+#: common/models.py:1493
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1499
msgid "Inline report display"
msgstr ""
-#: common/models.py:1498
+#: common/models.py:1500
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1506
msgid "Search Parts"
msgstr ""
-#: common/models.py:1505
+#: common/models.py:1507
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1513
msgid "Seach Supplier Parts"
msgstr ""
-#: common/models.py:1512
+#: common/models.py:1514
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1520
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:1519
+#: common/models.py:1521
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:1525
+#: common/models.py:1527
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1526
+#: common/models.py:1528
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1532
+#: common/models.py:1534
msgid "Search Categories"
msgstr ""
-#: common/models.py:1533
+#: common/models.py:1535
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1539
+#: common/models.py:1541
msgid "Search Stock"
msgstr ""
-#: common/models.py:1540
+#: common/models.py:1542
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1546
+#: common/models.py:1548
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1547
+#: common/models.py:1549
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1553
+#: common/models.py:1555
msgid "Search Locations"
msgstr ""
-#: common/models.py:1554
+#: common/models.py:1556
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1560
+#: common/models.py:1562
msgid "Search Companies"
msgstr ""
-#: common/models.py:1561
+#: common/models.py:1563
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1567
+#: common/models.py:1569
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1568
+#: common/models.py:1570
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1574
+#: common/models.py:1576
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1575
+#: common/models.py:1577
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1581
+#: common/models.py:1583
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1582
+#: common/models.py:1584
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1588
+#: common/models.py:1590
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1591
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1595
+#: common/models.py:1597
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1598
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1602
+#: common/models.py:1604
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1605
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1609
+#: common/models.py:1611
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1610
+#: common/models.py:1612
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1616
+#: common/models.py:1618
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1617
+#: common/models.py:1619
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1623
+#: common/models.py:1625
msgid "Date Format"
msgstr ""
-#: common/models.py:1624
+#: common/models.py:1626
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1638 part/templates/part/detail.html:41
+#: common/models.py:1640 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1641
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1698
+#: common/models.py:1702
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1705 company/serializers.py:366
-#: company/templates/company/supplier_part.html:284 order/models.py:938
-#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181
+#: common/models.py:1709 company/serializers.py:372
+#: company/templates/company/supplier_part.html:296 order/models.py:942
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:2210
msgid "Price"
msgstr ""
-#: common/models.py:1706
+#: common/models.py:1710
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1866 common/models.py:2044
+#: common/models.py:1870 common/models.py:2048
msgid "Endpoint"
msgstr ""
-#: common/models.py:1867
+#: common/models.py:1871
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1876
+#: common/models.py:1880
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1881 part/models.py:921 plugin/models.py:100
+#: common/models.py:1885 part/models.py:921 plugin/models.py:100
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:104
#: templates/js/translated/table_filters.js:316
@@ -2625,67 +2626,67 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1886
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1896
+#: common/models.py:1900
msgid "Token"
msgstr ""
-#: common/models.py:1897
+#: common/models.py:1901
msgid "Token for access"
msgstr ""
-#: common/models.py:1904
+#: common/models.py:1908
msgid "Secret"
msgstr ""
-#: common/models.py:1905
+#: common/models.py:1909
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2011
+#: common/models.py:2015
msgid "Message ID"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2016
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2020
+#: common/models.py:2024
msgid "Host"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2025
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2032
msgid "Header"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2033
msgid "Header of this message"
msgstr ""
-#: common/models.py:2035
+#: common/models.py:2039
msgid "Body"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2040
msgid "Body of this message"
msgstr ""
-#: common/models.py:2045
+#: common/models.py:2049
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2054
msgid "Worked on"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2055
msgid "Was the work on this message finished?"
msgstr ""
@@ -2747,7 +2748,7 @@ msgstr ""
#: company/models.py:105 company/templates/company/company_base.html:100
#: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:413
+#: templates/js/translated/company.js:448
msgid "Website"
msgstr ""
@@ -2824,7 +2825,7 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:148 company/serializers.py:372
+#: company/models.py:148 company/serializers.py:378
#: company/templates/company/company_base.html:106 part/serializers.py:153
#: part/serializers.py:184 stock/serializers.py:178
msgid "Currency"
@@ -2834,24 +2835,24 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:248 company/models.py:481 stock/models.py:598
+#: company/models.py:248 company/models.py:482 stock/models.py:598
#: stock/serializers.py:85 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:542
msgid "Base Part"
msgstr ""
-#: company/models.py:252 company/models.py:485
+#: company/models.py:252 company/models.py:486
msgid "Select part"
msgstr ""
#: company/models.py:263 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:124
-#: stock/templates/stock/item_base.html:207
-#: templates/js/translated/company.js:397
-#: templates/js/translated/company.js:498
-#: templates/js/translated/company.js:633
-#: templates/js/translated/company.js:919 templates/js/translated/part.js:236
+#: company/templates/company/supplier_part.html:129
+#: stock/templates/stock/item_base.html:210
+#: templates/js/translated/company.js:432
+#: templates/js/translated/company.js:533
+#: templates/js/translated/company.js:668
+#: templates/js/translated/company.js:956 templates/js/translated/part.js:236
#: templates/js/translated/table_filters.js:419
msgid "Manufacturer"
msgstr ""
@@ -2861,12 +2862,12 @@ msgid "Select manufacturer"
msgstr ""
#: company/models.py:270 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:132
-#: templates/js/translated/company.js:269
-#: templates/js/translated/company.js:497
-#: templates/js/translated/company.js:649
-#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077
-#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027
+#: company/templates/company/supplier_part.html:137
+#: templates/js/translated/company.js:304
+#: templates/js/translated/company.js:532
+#: templates/js/translated/company.js:684
+#: templates/js/translated/company.js:975 templates/js/translated/order.js:2239
+#: templates/js/translated/part.js:247 templates/js/translated/part.js:1025
msgid "MPN"
msgstr ""
@@ -2882,10 +2883,10 @@ msgstr ""
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:328 company/models.py:352 company/models.py:504
+#: company/models.py:328 company/models.py:352 company/models.py:505
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:220
msgid "Manufacturer Part"
msgstr ""
@@ -2895,8 +2896,8 @@ msgstr ""
#: company/models.py:365
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2095 templates/js/translated/company.js:546
-#: templates/js/translated/company.js:764 templates/js/translated/part.js:849
+#: stock/models.py:2095 templates/js/translated/company.js:581
+#: templates/js/translated/company.js:799 templates/js/translated/part.js:847
#: templates/js/translated/stock.js:1360
msgid "Value"
msgstr ""
@@ -2905,10 +2906,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:372 part/models.py:888 part/models.py:2425
+#: company/models.py:372 part/models.py:888 part/models.py:2433
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:352
-#: templates/js/translated/company.js:770 templates/js/translated/part.js:855
+#: templates/js/translated/company.js:805 templates/js/translated/part.js:853
msgid "Units"
msgstr ""
@@ -2916,106 +2917,119 @@ msgstr ""
msgid "Parameter units"
msgstr ""
-#: company/models.py:449
+#: company/models.py:450
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:491 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:108 order/models.py:258
-#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:224
+#: company/models.py:492 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:113 order/models.py:258
+#: order/templates/order/order_base.html:121 part/bom.py:237 part/bom.py:265
+#: stock/templates/stock/item_base.html:227
#: templates/email/overdue_purchase_order.html:16
-#: templates/js/translated/company.js:268
-#: templates/js/translated/company.js:401
-#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813
-#: templates/js/translated/part.js:217 templates/js/translated/part.js:995
+#: templates/js/translated/company.js:303
+#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:929 templates/js/translated/order.js:1975
+#: templates/js/translated/part.js:217 templates/js/translated/part.js:993
#: templates/js/translated/table_filters.js:423
msgid "Supplier"
msgstr ""
-#: company/models.py:492 templates/js/translated/part.js:218
+#: company/models.py:493 templates/js/translated/part.js:218
msgid "Select supplier"
msgstr ""
-#: company/models.py:497 company/templates/company/supplier_part.html:118
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267
-#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228
-#: templates/js/translated/part.js:1013
+#: company/models.py:498 company/templates/company/supplier_part.html:123
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:302
+#: templates/js/translated/order.js:2226 templates/js/translated/part.js:228
+#: templates/js/translated/part.js:1011
msgid "SKU"
msgstr ""
-#: company/models.py:498 templates/js/translated/part.js:229
+#: company/models.py:499 templates/js/translated/part.js:229
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:505
+#: company/models.py:506
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:511
+#: company/models.py:512
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:517
+#: company/models.py:518
msgid "Supplier part description"
msgstr ""
-#: company/models.py:522 company/templates/company/supplier_part.html:146
-#: part/models.py:2666 part/templates/part/upload_bom.html:59
+#: company/models.py:523 company/templates/company/supplier_part.html:158
+#: part/models.py:2674 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399
msgid "Note"
msgstr ""
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "base cost"
msgstr ""
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:528 company/templates/company/supplier_part.html:139
-#: stock/models.py:624 stock/templates/stock/item_base.html:240
-#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976
+#: company/models.py:529 company/templates/company/supplier_part.html:144
+#: stock/models.py:624 stock/templates/stock/item_base.html:243
+#: templates/js/translated/company.js:991 templates/js/translated/stock.js:1972
msgid "Packaging"
msgstr ""
-#: company/models.py:528
+#: company/models.py:529
msgid "Part packaging"
msgstr ""
-#: company/models.py:530 part/models.py:1783
+#: company/models.py:532 company/serializers.py:242
+#: company/templates/company/supplier_part.html:151
+#: templates/js/translated/company.js:996 templates/js/translated/order.js:820
+#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:2270 templates/js/translated/order.js:2287
+#: templates/js/translated/part.js:1043 templates/js/translated/part.js:1095
+msgid "Pack Quantity"
+msgstr ""
+
+#: company/models.py:533
+msgid "Unit quantity supplied in a single pack"
+msgstr ""
+
+#: company/models.py:539 part/models.py:1783
msgid "multiple"
msgstr ""
-#: company/models.py:530
+#: company/models.py:539
msgid "Order multiple"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part.html:94
+#: company/models.py:547 company/templates/company/supplier_part.html:99
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823
-#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979
-#: templates/js/translated/part.js:600 templates/js/translated/part.js:603
+#: templates/js/translated/bom.js:915 templates/js/translated/build.js:1823
+#: templates/js/translated/build.js:2686 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:601
#: templates/js/translated/table_filters.js:186
msgid "Available"
msgstr ""
-#: company/models.py:539
+#: company/models.py:548
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:543
+#: company/models.py:552
msgid "Availability Updated"
msgstr ""
-#: company/models.py:544
+#: company/models.py:553
msgid "Date of last update of availability data"
msgstr ""
-#: company/models.py:672
+#: company/models.py:681
msgid "last updated"
msgstr ""
@@ -3029,12 +3043,12 @@ msgstr ""
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386
+#: templates/InvenTree/search.html:179 templates/js/translated/company.js:421
msgid "Company"
msgstr ""
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:624
+#: templates/js/translated/order.js:689
msgid "Create Purchase Order"
msgstr ""
@@ -3047,7 +3061,7 @@ msgid "Edit company information"
msgstr ""
#: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:329
+#: templates/js/translated/company.js:364
msgid "Edit Company"
msgstr ""
@@ -3070,13 +3084,13 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:86 order/models.py:637
+#: company/templates/company/company_base.html:86 order/models.py:641
#: order/templates/order/sales_order_base.html:116 stock/models.py:643
#: stock/models.py:644 stock/serializers.py:809
-#: stock/templates/stock/item_base.html:396
+#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
-#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619
-#: templates/js/translated/stock.js:2559
+#: templates/js/translated/company.js:428 templates/js/translated/order.js:2813
+#: templates/js/translated/stock.js:2555
#: templates/js/translated/table_filters.js:427
msgid "Customer"
msgstr ""
@@ -3211,23 +3225,23 @@ msgid "Manufacturers"
msgstr ""
#: company/templates/company/manufacturer_part.html:35
-#: company/templates/company/supplier_part.html:186
+#: company/templates/company/supplier_part.html:198
#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80
msgid "Order part"
msgstr ""
#: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:681
+#: templates/js/translated/company.js:716
msgid "Edit manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:682
+#: templates/js/translated/company.js:717
msgid "Delete manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:65
-#: company/templates/company/supplier_part.html:77
+#: company/templates/company/supplier_part.html:82
msgid "Internal Part"
msgstr ""
@@ -3250,8 +3264,8 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:371 part/templates/part/detail.html:401
-#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34
-#: users/models.py:220
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:34
+#: users/models.py:222
msgid "Delete"
msgstr ""
@@ -3296,9 +3310,9 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:607
-#: stock/templates/stock/item_base.html:233
-#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041
-#: templates/js/translated/stock.js:1933
+#: stock/templates/stock/item_base.html:236
+#: templates/js/translated/company.js:945 templates/js/translated/order.js:1135
+#: templates/js/translated/stock.js:1929
msgid "Supplier Part"
msgstr ""
@@ -3308,7 +3322,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:40
#: company/templates/company/supplier_part.html:41
-#: company/templates/company/supplier_part.html:187
+#: company/templates/company/supplier_part.html:199
#: part/templates/part/detail.html:88
msgid "Order Part"
msgstr ""
@@ -3320,81 +3334,87 @@ msgstr ""
#: company/templates/company/supplier_part.html:48
#: company/templates/company/supplier_part.html:49
-#: templates/js/translated/company.js:212
+#: templates/js/translated/company.js:247
msgid "Edit Supplier Part"
msgstr ""
#: company/templates/company/supplier_part.html:53
+#: company/templates/company/supplier_part.html:54
+#: templates/js/translated/company.js:222
+msgid "Duplicate Supplier Part"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:58
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:54
+#: company/templates/company/supplier_part.html:59
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:112
+#: company/templates/company/supplier_part.html:117
msgid "No supplier information available"
msgstr ""
-#: company/templates/company/supplier_part.html:165
+#: company/templates/company/supplier_part.html:177
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr ""
-#: company/templates/company/supplier_part.html:168
+#: company/templates/company/supplier_part.html:180
#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181
msgid "Create new stock item"
msgstr ""
-#: company/templates/company/supplier_part.html:169
+#: company/templates/company/supplier_part.html:181
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182
#: templates/js/translated/stock.js:435
msgid "New Stock Item"
msgstr ""
-#: company/templates/company/supplier_part.html:182
+#: company/templates/company/supplier_part.html:194
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr ""
-#: company/templates/company/supplier_part.html:207
+#: company/templates/company/supplier_part.html:219
#: part/templates/part/prices.html:10
msgid "Pricing Information"
msgstr ""
-#: company/templates/company/supplier_part.html:212
-#: company/templates/company/supplier_part.html:326
-#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253
+#: company/templates/company/supplier_part.html:224
+#: company/templates/company/supplier_part.html:338
+#: part/templates/part/prices.html:276 templates/js/translated/part.js:2282
msgid "Add Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:250
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:252
-#: templates/js/translated/part.js:2263
+#: company/templates/company/supplier_part.html:264
+#: templates/js/translated/part.js:2292
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:266
-#: templates/js/translated/part.js:2277
+#: company/templates/company/supplier_part.html:278
+#: templates/js/translated/part.js:2306
msgid "Edit Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:291
+#: company/templates/company/supplier_part.html:303
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part.html:292
+#: company/templates/company/supplier_part.html:304
msgid "Delete price break"
msgstr ""
-#: company/templates/company/supplier_part.html:301
+#: company/templates/company/supplier_part.html:313
msgid "Last updated"
msgstr ""
-#: company/templates/company/supplier_part.html:382
+#: company/templates/company/supplier_part.html:394
msgid "Update Part Availability"
msgstr ""
@@ -3404,8 +3424,8 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313
-#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959
+#: templates/js/translated/part.js:749 templates/js/translated/part.js:1334
+#: templates/js/translated/part.js:1495 templates/js/translated/stock.js:959
#: templates/js/translated/stock.js:1754 templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -3432,7 +3452,7 @@ msgstr ""
#: stock/templates/stock/location.html:178
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2436 users/models.py:40
+#: templates/js/translated/stock.js:2432 users/models.py:40
msgid "Stock Items"
msgstr ""
@@ -3534,7 +3554,7 @@ msgstr ""
msgid "Order description"
msgstr ""
-#: order/models.py:84 order/models.py:1246
+#: order/models.py:84 order/models.py:1250
msgid "Link to external page"
msgstr ""
@@ -3550,11 +3570,11 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:241 order/models.py:624
+#: order/models.py:241 order/models.py:628
msgid "Order reference"
msgstr ""
-#: order/models.py:249 order/models.py:642
+#: order/models.py:249 order/models.py:646
msgid "Purchase order status"
msgstr ""
@@ -3562,8 +3582,8 @@ msgstr ""
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:262 order/templates/order/order_base.html:127
-#: templates/js/translated/order.js:1822
+#: order/models.py:262 order/templates/order/order_base.html:133
+#: templates/js/translated/order.js:1984
msgid "Supplier Reference"
msgstr ""
@@ -3603,245 +3623,245 @@ msgstr ""
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:638
+#: order/models.py:642
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer Reference "
msgstr ""
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:649
+#: order/models.py:653
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:652 order/models.py:1204
-#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828
+#: order/models.py:656 order/models.py:1208
+#: templates/js/translated/order.js:2860 templates/js/translated/order.js:3022
msgid "Shipment Date"
msgstr ""
-#: order/models.py:659
+#: order/models.py:663
msgid "shipped by"
msgstr ""
-#: order/models.py:714
+#: order/models.py:718
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:718
+#: order/models.py:722
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:721
+#: order/models.py:725 templates/js/translated/order.js:419
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:724
+#: order/models.py:728
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:898
+#: order/models.py:902
msgid "Item quantity"
msgstr ""
-#: order/models.py:904
+#: order/models.py:908
msgid "Line item reference"
msgstr ""
-#: order/models.py:906
+#: order/models.py:910
msgid "Line item notes"
msgstr ""
-#: order/models.py:911
+#: order/models.py:915
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:929
+#: order/models.py:933
msgid "Context"
msgstr ""
-#: order/models.py:930
+#: order/models.py:934
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:939
+#: order/models.py:943
msgid "Unit price"
msgstr ""
-#: order/models.py:969
+#: order/models.py:973
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:977
+#: order/models.py:981
msgid "deleted"
msgstr ""
-#: order/models.py:983 order/models.py:1063 order/models.py:1104
-#: order/models.py:1198 order/models.py:1330
-#: templates/js/translated/order.js:3284
+#: order/models.py:987 order/models.py:1067 order/models.py:1108
+#: order/models.py:1202 order/models.py:1334
+#: templates/js/translated/order.js:3478
msgid "Order"
msgstr ""
-#: order/models.py:984 order/models.py:1063
+#: order/models.py:988 order/models.py:1067
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:179
+#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
-#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042
-#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972
-#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540
+#: templates/js/translated/order.js:619 templates/js/translated/order.js:1136
+#: templates/js/translated/order.js:1959 templates/js/translated/part.js:970
+#: templates/js/translated/stock.js:1909 templates/js/translated/stock.js:2536
msgid "Purchase Order"
msgstr ""
-#: order/models.py:1002
+#: order/models.py:1006
msgid "Supplier part"
msgstr ""
-#: order/models.py:1009 order/templates/order/order_base.html:172
-#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105
+#: order/models.py:1013 order/templates/order/order_base.html:178
+#: templates/js/translated/order.js:1641 templates/js/translated/order.js:2373
+#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1125
#: templates/js/translated/table_filters.js:338
msgid "Received"
msgstr ""
-#: order/models.py:1010
+#: order/models.py:1014
msgid "Number of items received"
msgstr ""
-#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734
-#: stock/serializers.py:169 stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1964
+#: order/models.py:1021 part/templates/part/prices.html:181 stock/models.py:734
+#: stock/serializers.py:169 stock/templates/stock/item_base.html:189
+#: templates/js/translated/stock.js:1960
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1018
+#: order/models.py:1022
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1026
+#: order/models.py:1030
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1092
+#: order/models.py:1096
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1097
+#: order/models.py:1101
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1123 part/templates/part/part_pricing.html:115
+#: order/models.py:1127 part/templates/part/part_pricing.html:115
#: part/templates/part/prices.html:121 part/templates/part/prices.html:290
msgid "Sale Price"
msgstr ""
-#: order/models.py:1124
+#: order/models.py:1128
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1129
+#: order/models.py:1133
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1205
+#: order/models.py:1209
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1212
+#: order/models.py:1216
msgid "Checked By"
msgstr ""
-#: order/models.py:1213
+#: order/models.py:1217
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1220 order/models.py:1405 order/serializers.py:1170
-#: order/serializers.py:1294 templates/js/translated/model_renderers.js:314
+#: order/models.py:1224 order/models.py:1409 order/serializers.py:1224
+#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314
msgid "Shipment"
msgstr ""
-#: order/models.py:1221
+#: order/models.py:1225
msgid "Shipment number"
msgstr ""
-#: order/models.py:1225
+#: order/models.py:1229
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1231
+#: order/models.py:1235
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1232
+#: order/models.py:1236
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1239
+#: order/models.py:1243
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1240
+#: order/models.py:1244
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1258
+#: order/models.py:1262
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1261
+#: order/models.py:1265
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1364 order/models.py:1366
+#: order/models.py:1368 order/models.py:1370
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1370
+#: order/models.py:1374
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1372
+#: order/models.py:1376
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1375
+#: order/models.py:1379
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1385 order/serializers.py:1066
+#: order/models.py:1389 order/serializers.py:1086
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1388
+#: order/models.py:1392
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1389
+#: order/models.py:1393
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1397
+#: order/models.py:1401
msgid "Line"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1410
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1419 templates/js/translated/notification.js:55
+#: order/models.py:1423 templates/js/translated/notification.js:55
msgid "Item"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1424
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1423
+#: order/models.py:1427
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3853,111 +3873,119 @@ msgstr ""
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:294
+#: order/serializers.py:209 order/serializers.py:1104
+msgid "Allow order to be closed with incomplete line items"
+msgstr ""
+
+#: order/serializers.py:220 order/serializers.py:1115
+msgid "Order has incomplete line items"
+msgstr ""
+
+#: order/serializers.py:311
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:318
+#: order/serializers.py:335
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:354
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:342
+#: order/serializers.py:359
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:348
+#: order/serializers.py:365
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:349
+#: order/serializers.py:366
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:413 order/serializers.py:1138
+#: order/serializers.py:430 order/serializers.py:1192
msgid "Line Item"
msgstr ""
-#: order/serializers.py:419
+#: order/serializers.py:436
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:429 order/serializers.py:533
+#: order/serializers.py:446 order/serializers.py:553
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:448 templates/js/translated/order.js:1354
+#: order/serializers.py:465 templates/js/translated/order.js:1497
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:456 templates/js/translated/order.js:1365
+#: order/serializers.py:473 templates/js/translated/order.js:1508
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:469
+#: order/serializers.py:486
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:470
+#: order/serializers.py:487
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:484
+#: order/serializers.py:501
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:507
+#: order/serializers.py:527
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:549
+#: order/serializers.py:569
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:566
+#: order/serializers.py:586
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:577
+#: order/serializers.py:597
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:883
+#: order/serializers.py:903
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:964
+#: order/serializers.py:984
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1027 order/serializers.py:1147
+#: order/serializers.py:1047 order/serializers.py:1201
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1049
+#: order/serializers.py:1069
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1160
+#: order/serializers.py:1214
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1182 order/serializers.py:1302
+#: order/serializers.py:1236 order/serializers.py:1356
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1185 order/serializers.py:1305
+#: order/serializers.py:1239 order/serializers.py:1359
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1235
+#: order/serializers.py:1289
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1245
+#: order/serializers.py:1299
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3993,83 +4021,83 @@ msgstr ""
msgid "Order actions"
msgstr ""
-#: order/templates/order/order_base.html:45
+#: order/templates/order/order_base.html:46
#: order/templates/order/sales_order_base.html:58
msgid "Edit order"
msgstr ""
-#: order/templates/order/order_base.html:47
+#: order/templates/order/order_base.html:50
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr ""
-#: order/templates/order/order_base.html:50
+#: order/templates/order/order_base.html:55
msgid "Duplicate order"
msgstr ""
-#: order/templates/order/order_base.html:55
+#: order/templates/order/order_base.html:61
msgid "Place order"
msgstr ""
-#: order/templates/order/order_base.html:59
+#: order/templates/order/order_base.html:65
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:61
+#: order/templates/order/order_base.html:67
#: order/templates/order/purchase_order_detail.html:30
msgid "Receive Items"
msgstr ""
-#: order/templates/order/order_base.html:63
+#: order/templates/order/order_base.html:69
msgid "Mark order as complete"
msgstr ""
-#: order/templates/order/order_base.html:65
+#: order/templates/order/order_base.html:71
#: order/templates/order/sales_order_base.html:68
msgid "Complete Order"
msgstr ""
-#: order/templates/order/order_base.html:87
+#: order/templates/order/order_base.html:93
#: order/templates/order/sales_order_base.html:80
msgid "Order Reference"
msgstr ""
-#: order/templates/order/order_base.html:92
+#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:85
msgid "Order Description"
msgstr ""
-#: order/templates/order/order_base.html:97
+#: order/templates/order/order_base.html:103
#: order/templates/order/sales_order_base.html:90
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:120
+#: order/templates/order/order_base.html:126
msgid "No suppplier information available"
msgstr ""
-#: order/templates/order/order_base.html:133
+#: order/templates/order/order_base.html:139
#: order/templates/order/sales_order_base.html:129
msgid "Completed Line Items"
msgstr ""
-#: order/templates/order/order_base.html:139
+#: order/templates/order/order_base.html:145
#: order/templates/order/sales_order_base.html:135
#: order/templates/order/sales_order_base.html:145
msgid "Incomplete"
msgstr ""
-#: order/templates/order/order_base.html:158
+#: order/templates/order/order_base.html:164
#: report/templates/report/inventree_build_order_base.html:121
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:186
+#: order/templates/order/order_base.html:192
#: order/templates/order/sales_order_base.html:190
msgid "Total cost"
msgstr ""
-#: order/templates/order/order_base.html:190
+#: order/templates/order/order_base.html:196
#: order/templates/order/sales_order_base.html:194
msgid "Total cost could not be calculated"
msgstr ""
@@ -4102,8 +4130,8 @@ msgstr ""
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463
#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015
-#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443
-#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625
+#: templates/js/translated/order.js:1084 templates/js/translated/order.js:1586
+#: templates/js/translated/order.js:3097 templates/js/translated/stock.js:625
#: templates/js/translated/stock.js:793
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
@@ -4139,7 +4167,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:26
#: order/templates/order/sales_order_detail.html:22
#: order/templates/order/sales_order_detail.html:255
-#: templates/js/translated/order.js:663
+#: templates/js/translated/order.js:728
msgid "Add Line Item"
msgstr ""
@@ -4167,7 +4195,7 @@ msgstr ""
msgid "Order Notes"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:228
+#: order/templates/order/purchase_order_detail.html:232
msgid "Add Order Line"
msgstr ""
@@ -4185,12 +4213,12 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:231
+#: templates/js/translated/order.js:232
msgid "Complete Shipments"
msgstr ""
#: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:258
+#: templates/js/translated/order.js:397
msgid "Complete Sales Order"
msgstr ""
@@ -4199,7 +4227,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2632
+#: templates/js/translated/order.js:2826
msgid "Customer Reference"
msgstr ""
@@ -4223,7 +4251,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:72
-#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1116
#: templates/js/translated/build.js:1923
msgid "Actions"
msgstr ""
@@ -4308,14 +4336,14 @@ msgid "Total Stock"
msgstr ""
#: part/bom.py:129 part/templates/part/part_base.html:189
-#: templates/js/translated/order.js:3724
+#: templates/js/translated/order.js:3918
msgid "Available Stock"
msgstr ""
#: part/bom.py:130 part/templates/part/part_base.html:207
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853
-#: templates/js/translated/part.js:590 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503
+#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1853
+#: templates/js/translated/part.js:588 templates/js/translated/part.js:608
+#: templates/js/translated/part.js:1337 templates/js/translated/part.js:1520
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr ""
@@ -4344,7 +4372,7 @@ msgstr ""
msgid "Icon (optional)"
msgstr ""
-#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16
+#: part/models.py:122 part/models.py:2516 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -4361,7 +4389,7 @@ msgstr ""
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146
+#: templates/js/translated/part.js:2004 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr ""
@@ -4391,7 +4419,7 @@ msgstr ""
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:745 part/models.py:2562
+#: part/models.py:745 part/models.py:2570
msgid "Part name"
msgstr ""
@@ -4424,11 +4452,11 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:783 part/models.py:2257 part/models.py:2507
+#: part/models.py:783 part/models.py:2265 part/models.py:2515
#: part/templates/part/part_base.html:257
#: templates/InvenTree/settings/settings.html:232
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688
+#: templates/js/translated/part.js:1477 templates/js/translated/part.js:1717
msgid "Category"
msgstr ""
@@ -4437,7 +4465,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:789 part/templates/part/part_base.html:266
-#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:1430
#: templates/js/translated/stock.js:1726
msgid "IPN"
msgstr ""
@@ -4451,7 +4479,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:797 part/templates/part/part_base.html:273
-#: report/models.py:171 templates/js/translated/part.js:743
+#: report/models.py:171 templates/js/translated/part.js:741
msgid "Revision"
msgstr ""
@@ -4543,245 +4571,245 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2304
+#: part/models.py:2312
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2321
+#: part/models.py:2329
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2341 templates/js/translated/part.js:2026
+#: part/models.py:2349 templates/js/translated/part.js:2055
#: templates/js/translated/stock.js:1340
msgid "Test Name"
msgstr ""
-#: part/models.py:2342
+#: part/models.py:2350
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2347
+#: part/models.py:2355
msgid "Test Description"
msgstr ""
-#: part/models.py:2348
+#: part/models.py:2356
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2353 templates/js/translated/part.js:2035
+#: part/models.py:2361 templates/js/translated/part.js:2064
#: templates/js/translated/table_filters.js:302
msgid "Required"
msgstr ""
-#: part/models.py:2354
+#: part/models.py:2362
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2359 templates/js/translated/part.js:2043
+#: part/models.py:2367 templates/js/translated/part.js:2072
msgid "Requires Value"
msgstr ""
-#: part/models.py:2360
+#: part/models.py:2368
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2365 templates/js/translated/part.js:2050
+#: part/models.py:2373 templates/js/translated/part.js:2079
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2366
+#: part/models.py:2374
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2374
+#: part/models.py:2382
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2410
+#: part/models.py:2418
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2418
+#: part/models.py:2426
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2433
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2430
+#: part/models.py:2438
msgid "Parameter description"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2471
msgid "Parent Part"
msgstr ""
-#: part/models.py:2465 part/models.py:2513 part/models.py:2514
+#: part/models.py:2473 part/models.py:2521 part/models.py:2522
#: templates/InvenTree/settings/settings.html:227
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Data"
msgstr ""
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2518 templates/InvenTree/settings/settings.html:236
+#: part/models.py:2526 templates/InvenTree/settings/settings.html:236
msgid "Default Value"
msgstr ""
-#: part/models.py:2519
+#: part/models.py:2527
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2554
+#: part/models.py:2562
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2557 templates/js/translated/model_renderers.js:212
+#: part/models.py:2565 templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr ""
-#: part/models.py:2558
+#: part/models.py:2566
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2561
+#: part/models.py:2569
msgid "Part Name"
msgstr ""
-#: part/models.py:2565
+#: part/models.py:2573
msgid "Part IPN"
msgstr ""
-#: part/models.py:2566
+#: part/models.py:2574
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2569
+#: part/models.py:2577
msgid "Level"
msgstr ""
-#: part/models.py:2570
+#: part/models.py:2578
msgid "BOM level"
msgstr ""
-#: part/models.py:2639
+#: part/models.py:2647
msgid "Select parent part"
msgstr ""
-#: part/models.py:2647
+#: part/models.py:2655
msgid "Sub part"
msgstr ""
-#: part/models.py:2648
+#: part/models.py:2656
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2654
+#: part/models.py:2662
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2656 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997
+#: part/models.py:2664 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:876 templates/js/translated/bom.js:1005
#: templates/js/translated/table_filters.js:100
msgid "Optional"
msgstr ""
-#: part/models.py:2656
+#: part/models.py:2664
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2659 part/templates/part/upload_bom.html:55
+#: part/models.py:2667 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2660
+#: part/models.py:2668
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2671
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2666
+#: part/models.py:2674
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "Checksum"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2672 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1014
+#: part/models.py:2680 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:1022
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:96
msgid "Inherited"
msgstr ""
-#: part/models.py:2673
+#: part/models.py:2681
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2678 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1006
+#: part/models.py:2686 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:1014
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2679
+#: part/models.py:2687
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2757 stock/models.py:468
+#: part/models.py:2765 stock/models.py:468
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2766 part/models.py:2768
+#: part/models.py:2774 part/models.py:2776
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2873
+#: part/models.py:2881
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2902
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2915
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2923
msgid "Substitute part"
msgstr ""
-#: part/models.py:2930
+#: part/models.py:2938
msgid "Part 1"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Part 2"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2960
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:2956
+#: part/models.py:2964
msgid "Duplicate relationship already exists"
msgstr ""
@@ -5309,10 +5337,10 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:624
-#: templates/js/translated/company.js:884
+#: templates/js/translated/company.js:659
+#: templates/js/translated/company.js:920
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:654 templates/js/translated/part.js:731
+#: templates/js/translated/part.js:652 templates/js/translated/part.js:729
msgid "Inactive"
msgstr ""
@@ -5327,28 +5355,28 @@ msgid "This part is a variant of %(link)s"
msgstr ""
#: part/templates/part/part_base.html:194
-#: templates/js/translated/company.js:974
+#: templates/js/translated/company.js:1027
#: templates/js/translated/table_filters.js:201
msgid "In Stock"
msgstr ""
#: part/templates/part/part_base.html:215
-#: stock/templates/stock/item_base.html:379
+#: stock/templates/stock/item_base.html:382
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:224
-#: stock/templates/stock/item_base.html:372
+#: stock/templates/stock/item_base.html:375
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1043
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320
-#: templates/js/translated/part.js:1510
+#: part/templates/part/part_base.html:238 templates/js/translated/part.js:591
+#: templates/js/translated/part.js:611 templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1527
msgid "Building"
msgstr ""
@@ -5361,7 +5389,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:328
+#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
@@ -5400,7 +5428,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:989
+#: templates/js/translated/bom.js:997
msgid "No supplier pricing available"
msgstr ""
@@ -5439,7 +5467,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:53
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468
+#: templates/js/translated/order.js:2001 templates/js/translated/stock.js:2464
msgid "Date"
msgstr ""
@@ -5495,7 +5523,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983
+#: part/templates/part/prices.html:160 templates/js/translated/bom.js:991
msgid "Supplier Cost"
msgstr ""
@@ -5533,8 +5561,8 @@ msgstr ""
msgid "No sale pice history available for this part."
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616
-#: templates/js/translated/part.js:1308
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:614
+#: templates/js/translated/part.js:1329 templates/js/translated/part.js:1331
msgid "No Stock"
msgstr ""
@@ -5735,19 +5763,19 @@ msgstr ""
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:186
+#: plugin/models.py:188
msgid "Plugin"
msgstr ""
-#: plugin/models.py:249
+#: plugin/models.py:253
msgid "Method"
msgstr ""
-#: plugin/plugin.py:251
+#: plugin/plugin.py:252
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:263
+#: plugin/plugin.py:264
msgid "No date found"
msgstr ""
@@ -5925,12 +5953,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:648 stock/templates/stock/item_base.html:317
+#: stock/models.py:648 stock/templates/stock/item_base.html:320
#: templates/js/translated/build.js:456 templates/js/translated/build.js:608
#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706
#: templates/js/translated/model_renderers.js:118
-#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403
-#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490
+#: templates/js/translated/order.js:121 templates/js/translated/order.js:3597
+#: templates/js/translated/order.js:3684 templates/js/translated/stock.js:490
msgid "Serial Number"
msgstr ""
@@ -5963,7 +5991,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780
-#: templates/js/translated/stock.js:2717
+#: templates/js/translated/stock.js:2713
msgid "Serial"
msgstr ""
@@ -5980,7 +6008,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
#: stock/models.py:89 stock/models.py:739
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:250
msgid "Owner"
msgstr ""
@@ -6046,7 +6074,7 @@ msgstr ""
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:631 stock/templates/stock/item_base.html:356
+#: stock/models.py:631 stock/templates/stock/item_base.html:359
msgid "Installed In"
msgstr ""
@@ -6086,8 +6114,8 @@ msgstr ""
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:706 stock/templates/stock/item_base.html:424
-#: templates/js/translated/stock.js:1883
+#: stock/models.py:706 stock/templates/stock/item_base.html:427
+#: templates/js/translated/stock.js:1879
msgid "Expiry Date"
msgstr ""
@@ -6379,7 +6407,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2857
msgid "Install Stock Item"
msgstr ""
@@ -6479,134 +6507,135 @@ msgstr ""
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:158
+#: stock/templates/stock/item_base.html:161
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:193
+#: stock/templates/stock/item_base.html:196
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:214
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:254
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/location.html:132
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:268
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:266
+#: stock/templates/stock/item_base.html:269
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:279
+#: stock/templates/stock/item_base.html:282
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:290
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:298
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:301
+#: stock/templates/stock/item_base.html:304
msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
msgstr ""
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:345
+#: stock/templates/stock/item_base.html:348
msgid "Available Quantity"
msgstr ""
-#: stock/templates/stock/item_base.html:389
+#: stock/templates/stock/item_base.html:392
#: templates/js/translated/build.js:1729
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:404
+#: stock/templates/stock/item_base.html:407
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#: templates/js/translated/table_filters.js:269
msgid "Expired"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:275
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:437
-#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899
+#: stock/templates/stock/item_base.html:440
+#: templates/js/translated/company.js:1038
+#: templates/js/translated/stock.js:1895
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:442
+#: stock/templates/stock/item_base.html:445
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:516
+#: stock/templates/stock/item_base.html:519
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:589
+#: stock/templates/stock/item_base.html:592
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:592
+#: stock/templates/stock/item_base.html:595
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:593
+#: stock/templates/stock/item_base.html:596
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:601
+#: stock/templates/stock/item_base.html:604
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:629
+#: stock/templates/stock/item_base.html:632
msgid "Return to Stock"
msgstr ""
@@ -6739,11 +6768,11 @@ msgstr ""
msgid "Refer to the error log in the admin interface for further details"
msgstr ""
-#: templates/503.html:11 templates/503.html:36
+#: templates/503.html:11 templates/503.html:34
msgid "Site is in Maintenance"
msgstr ""
-#: templates/503.html:42
+#: templates/503.html:40
msgid "The site is currently in maintenance and should be up again soon!"
msgstr ""
@@ -7509,7 +7538,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:644
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "Confirmar"
@@ -7728,7 +7757,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1481
+#: templates/js/translated/bom.js:1489
msgid "Required Quantity"
msgstr ""
@@ -7742,7 +7771,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2522
+#: templates/js/translated/part.js:2551
msgid "Minimum Quantity"
msgstr ""
@@ -7947,7 +7976,7 @@ msgstr ""
#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620
#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601
#: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003
-#: templates/js/translated/order.js:1085 templates/modals.html:15
+#: templates/js/translated/order.js:1179 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -7957,12 +7986,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145
+#: templates/js/translated/order.js:960 templates/js/translated/tables.js:145
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:867
+#: templates/js/translated/order.js:961
msgid "Select file format"
msgstr ""
@@ -8058,73 +8087,73 @@ msgstr ""
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857
-#: templates/js/translated/order.js:3738
+#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1857
+#: templates/js/translated/order.js:3932
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861
+#: templates/js/translated/bom.js:940 templates/js/translated/build.js:1861
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516
+#: templates/js/translated/bom.js:942 templates/js/translated/build.js:1863
+#: templates/js/translated/part.js:761 templates/js/translated/part.js:1533
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865
+#: templates/js/translated/bom.js:944 templates/js/translated/build.js:1865
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:954
+#: templates/js/translated/bom.js:962
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:969
+#: templates/js/translated/bom.js:977
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:976
+#: templates/js/translated/bom.js:984
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145
+#: templates/js/translated/bom.js:1033 templates/js/translated/bom.js:1153
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1052
+#: templates/js/translated/bom.js:1060
msgid "Including On Order"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1124
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1118
+#: templates/js/translated/bom.js:1126
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1120
+#: templates/js/translated/bom.js:1128
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284
+#: templates/js/translated/bom.js:1130 templates/js/translated/bom.js:1292
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1124
+#: templates/js/translated/bom.js:1132
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650
+#: templates/js/translated/bom.js:1228 templates/js/translated/build.js:1650
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789
+#: templates/js/translated/bom.js:1472 templates/js/translated/build.js:1789
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1486
+#: templates/js/translated/bom.js:1498
msgid "Inherited from parent BOM"
msgstr ""
@@ -8267,12 +8296,12 @@ msgid "No required tests for this build"
msgstr ""
#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697
-#: templates/js/translated/order.js:3438
+#: templates/js/translated/order.js:3632
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698
-#: templates/js/translated/order.js:3439
+#: templates/js/translated/order.js:3633
msgid "Delete stock allocation"
msgstr ""
@@ -8292,20 +8321,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745
+#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3939
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743
+#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3937
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127
-#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757
+#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3951
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837
+#: templates/js/translated/build.js:1930 templates/js/translated/order.js:4031
msgid "Build stock"
msgstr ""
@@ -8313,21 +8342,21 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830
+#: templates/js/translated/build.js:1937 templates/js/translated/order.js:4024
msgid "Allocate stock"
msgstr ""
#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965
+#: templates/js/translated/order.js:1007 templates/js/translated/order.js:3159
#: templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966
+#: templates/js/translated/build.js:1977 templates/js/translated/order.js:3160
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914
+#: templates/js/translated/build.js:2026 templates/js/translated/order.js:3108
msgid "Specify stock allocation quantity"
msgstr ""
@@ -8339,7 +8368,7 @@ msgstr ""
msgid "All selected parts have been fully allocated"
msgstr ""
-#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980
+#: templates/js/translated/build.js:2115 templates/js/translated/order.js:3174
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
@@ -8347,11 +8376,11 @@ msgstr ""
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077
+#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3271
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154
+#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3348
msgid "No matching stock items"
msgstr ""
@@ -8383,9 +8412,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401
-#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1422
+#: templates/js/translated/part.js:1948 templates/js/translated/stock.js:1686
+#: templates/js/translated/stock.js:2382
msgid "Select"
msgstr ""
@@ -8397,7 +8426,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647
+#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2643
msgid "No user information"
msgstr ""
@@ -8405,111 +8434,115 @@ msgstr ""
msgid "No parts allocated for"
msgstr ""
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:179
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:181
msgid "Add Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
msgid "Edit Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:167 templates/js/translated/order.js:511
+#: templates/js/translated/company.js:169 templates/js/translated/order.js:576
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:195 templates/js/translated/order.js:734
+#: templates/js/translated/company.js:197 templates/js/translated/order.js:828
msgid "Add Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:262
+#: templates/js/translated/company.js:297
msgid "All selected supplier parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:278
+#: templates/js/translated/company.js:313
msgid "Delete Supplier Parts"
msgstr ""
-#: templates/js/translated/company.js:350
+#: templates/js/translated/company.js:385
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:427
+#: templates/js/translated/company.js:462
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:471
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:451
+#: templates/js/translated/company.js:486
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:492
+#: templates/js/translated/company.js:527
msgid "All selected manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:507
+#: templates/js/translated/company.js:542
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:541
+#: templates/js/translated/company.js:576
msgid "All selected parameters will be deleted"
msgstr ""
-#: templates/js/translated/company.js:555
+#: templates/js/translated/company.js:590
msgid "Delete Parameters"
msgstr ""
-#: templates/js/translated/company.js:596
+#: templates/js/translated/company.js:631
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:616
-#: templates/js/translated/company.js:876 templates/js/translated/part.js:638
-#: templates/js/translated/part.js:723
+#: templates/js/translated/company.js:651
+#: templates/js/translated/company.js:912 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:721
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:620
-#: templates/js/translated/company.js:880 templates/js/translated/part.js:642
-#: templates/js/translated/part.js:727
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:916 templates/js/translated/part.js:640
+#: templates/js/translated/part.js:725
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:748 templates/js/translated/part.js:830
+#: templates/js/translated/company.js:783 templates/js/translated/part.js:828
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:785 templates/js/translated/part.js:872
+#: templates/js/translated/company.js:820 templates/js/translated/part.js:870
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:786 templates/js/translated/part.js:873
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:871
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:805 templates/js/translated/part.js:890
+#: templates/js/translated/company.js:840 templates/js/translated/part.js:888
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:816 templates/js/translated/part.js:902
+#: templates/js/translated/company.js:851 templates/js/translated/part.js:900
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:856
+#: templates/js/translated/company.js:891
msgid "No supplier parts found"
msgstr ""
-#: templates/js/translated/company.js:1002
+#: templates/js/translated/company.js:1032
+msgid "Availability"
+msgstr ""
+
+#: templates/js/translated/company.js:1055
msgid "Edit supplier part"
msgstr ""
-#: templates/js/translated/company.js:1003
+#: templates/js/translated/company.js:1056
msgid "Delete supplier part"
msgstr ""
@@ -8547,61 +8580,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:367 templates/js/translated/forms.js:382
-#: templates/js/translated/forms.js:396 templates/js/translated/forms.js:410
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:369
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:384
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:398
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:670
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:771
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1269 templates/modals.html:19
+#: templates/js/translated/forms.js:1274 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1702
+#: templates/js/translated/forms.js:1707
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1917 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2170
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2648
+#: templates/js/translated/forms.js:2653
msgid "Select Columns"
msgstr ""
@@ -8792,409 +8825,422 @@ msgstr ""
msgid "Notifications will load here"
msgstr ""
-#: templates/js/translated/order.js:96
+#: templates/js/translated/order.js:97
msgid "No stock items have been allocated to this shipment"
msgstr ""
-#: templates/js/translated/order.js:101
+#: templates/js/translated/order.js:102
msgid "The following stock items will be shipped"
msgstr ""
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:142
msgid "Complete Shipment"
msgstr ""
-#: templates/js/translated/order.js:161
+#: templates/js/translated/order.js:162
msgid "Confirm Shipment"
msgstr ""
-#: templates/js/translated/order.js:217
+#: templates/js/translated/order.js:218
msgid "No pending shipments found"
msgstr ""
-#: templates/js/translated/order.js:221
+#: templates/js/translated/order.js:222
msgid "No stock items have been allocated to pending shipments"
msgstr ""
-#: templates/js/translated/order.js:253
+#: templates/js/translated/order.js:254
msgid "Skip"
msgstr ""
-#: templates/js/translated/order.js:283
+#: templates/js/translated/order.js:284
msgid "Complete Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:289
+#: templates/js/translated/order.js:301 templates/js/translated/order.js:413
msgid "Mark this order as complete?"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:307
msgid "All line items have been received"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:312
msgid "This order has line items which have not been marked as received."
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:313 templates/js/translated/order.js:427
msgid "Completing this order means that the order and line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:324
+#: templates/js/translated/order.js:336
msgid "Cancel Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:329
+#: templates/js/translated/order.js:341
msgid "Are you sure you wish to cancel this purchase order?"
msgstr ""
-#: templates/js/translated/order.js:335
+#: templates/js/translated/order.js:347
msgid "This purchase order can not be cancelled"
msgstr ""
-#: templates/js/translated/order.js:358
+#: templates/js/translated/order.js:370
msgid "Issue Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:363
+#: templates/js/translated/order.js:375
msgid "After placing this purchase order, line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:385
+#: templates/js/translated/order.js:426
+msgid "This order has line items which have not been completed."
+msgstr ""
+
+#: templates/js/translated/order.js:450
msgid "Cancel Sales Order"
msgstr ""
-#: templates/js/translated/order.js:390
+#: templates/js/translated/order.js:455
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:444
+#: templates/js/translated/order.js:509
msgid "Create New Shipment"
msgstr ""
-#: templates/js/translated/order.js:469
+#: templates/js/translated/order.js:534
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:494
+#: templates/js/translated/order.js:559
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:555
+#: templates/js/translated/order.js:620
msgid "Select purchase order to duplicate"
msgstr ""
-#: templates/js/translated/order.js:562
+#: templates/js/translated/order.js:627
msgid "Duplicate Line Items"
msgstr ""
-#: templates/js/translated/order.js:563
+#: templates/js/translated/order.js:628
msgid "Duplicate all line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:570
+#: templates/js/translated/order.js:635
msgid "Duplicate Extra Lines"
msgstr ""
-#: templates/js/translated/order.js:571
+#: templates/js/translated/order.js:636
msgid "Duplicate extra line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:588
+#: templates/js/translated/order.js:653
msgid "Edit Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:605
+#: templates/js/translated/order.js:670
msgid "Duplication Options"
msgstr ""
-#: templates/js/translated/order.js:863
+#: templates/js/translated/order.js:957
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:914
+#: templates/js/translated/order.js:1008
msgid "At least one purchaseable part must be selected"
msgstr ""
-#: templates/js/translated/order.js:939
+#: templates/js/translated/order.js:1033
msgid "Quantity to order"
msgstr ""
-#: templates/js/translated/order.js:948
+#: templates/js/translated/order.js:1042
msgid "New supplier part"
msgstr ""
-#: templates/js/translated/order.js:966
+#: templates/js/translated/order.js:1060
msgid "New purchase order"
msgstr ""
-#: templates/js/translated/order.js:999
+#: templates/js/translated/order.js:1093
msgid "Add to purchase order"
msgstr ""
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1233
msgid "No matching supplier parts"
msgstr ""
-#: templates/js/translated/order.js:1123
+#: templates/js/translated/order.js:1252
msgid "No matching purchase orders"
msgstr ""
-#: templates/js/translated/order.js:1300
+#: templates/js/translated/order.js:1429
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1430
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420
+#: templates/js/translated/order.js:1450 templates/js/translated/order.js:1563
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431
+#: templates/js/translated/order.js:1456 templates/js/translated/order.js:1574
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1339
+#: templates/js/translated/order.js:1471
+msgid "Received Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:1482
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144
+#: templates/js/translated/order.js:1546 templates/js/translated/stock.js:2140
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:1494
+#: templates/js/translated/order.js:1639
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:1495
+#: templates/js/translated/order.js:1640
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:1497
+#: templates/js/translated/order.js:1642
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:1516
+#: templates/js/translated/order.js:1661
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:1517
+#: templates/js/translated/order.js:1662
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943
+#: templates/js/translated/order.js:1940 templates/js/translated/part.js:941
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2803
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674
-#: templates/js/translated/order.js:2815
+#: templates/js/translated/order.js:2017 templates/js/translated/order.js:2868
+#: templates/js/translated/order.js:3009
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889
+#: templates/js/translated/order.js:2115 templates/js/translated/order.js:4083
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911
+#: templates/js/translated/order.js:2132 templates/js/translated/order.js:4105
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:4116
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:2026
+#: templates/js/translated/order.js:2188
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:2215 templates/js/translated/order.js:3817
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309
-#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156
-#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753
+#: templates/js/translated/order.js:2270 templates/js/translated/part.js:1043
+#: templates/js/translated/part.js:1095
+msgid "Total Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:2301 templates/js/translated/order.js:2503
+#: templates/js/translated/order.js:3842 templates/js/translated/order.js:4350
+#: templates/js/translated/part.js:2184 templates/js/translated/part.js:2782
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325
-#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172
+#: templates/js/translated/order.js:2316 templates/js/translated/order.js:2519
+#: templates/js/translated/order.js:3858 templates/js/translated/order.js:4366
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706
-#: templates/js/translated/part.js:1070
+#: templates/js/translated/order.js:2357 templates/js/translated/order.js:3900
+#: templates/js/translated/part.js:1079
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110
+#: templates/js/translated/order.js:2416 templates/js/translated/part.js:1130
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2420 templates/js/translated/order.js:4037
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844
+#: templates/js/translated/order.js:2421 templates/js/translated/order.js:4038
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848
+#: templates/js/translated/order.js:2422 templates/js/translated/order.js:4042
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221
+#: templates/js/translated/order.js:2568 templates/js/translated/order.js:4415
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222
+#: templates/js/translated/order.js:2569 templates/js/translated/order.js:4416
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223
+#: templates/js/translated/order.js:2570 templates/js/translated/order.js:4417
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253
+#: templates/js/translated/order.js:2600 templates/js/translated/order.js:4447
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274
+#: templates/js/translated/order.js:2621 templates/js/translated/order.js:4468
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285
+#: templates/js/translated/order.js:2632 templates/js/translated/order.js:4479
msgid "Delete Line"
msgstr ""
-#: templates/js/translated/order.js:2449
+#: templates/js/translated/order.js:2643
msgid "No matching line"
msgstr ""
-#: templates/js/translated/order.js:2560
+#: templates/js/translated/order.js:2754
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:2623
+#: templates/js/translated/order.js:2817
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:2721
+#: templates/js/translated/order.js:2915
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:2724
+#: templates/js/translated/order.js:2918
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:2729
+#: templates/js/translated/order.js:2923
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:2749
+#: templates/js/translated/order.js:2943
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:2766
+#: templates/js/translated/order.js:2960
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:2800
+#: templates/js/translated/order.js:2994
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:2810
+#: templates/js/translated/order.js:3004
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:2834
+#: templates/js/translated/order.js:3028
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:2840
+#: templates/js/translated/order.js:3034
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:2844
+#: templates/js/translated/order.js:3038
msgid "Invoice"
msgstr ""
-#: templates/js/translated/order.js:3013
+#: templates/js/translated/order.js:3207
msgid "Add Shipment"
msgstr ""
-#: templates/js/translated/order.js:3064
+#: templates/js/translated/order.js:3258
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/order.js:3065
+#: templates/js/translated/order.js:3259
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:3273
+#: templates/js/translated/order.js:3467
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:3352
+#: templates/js/translated/order.js:3546
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3369
+#: templates/js/translated/order.js:3563
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:3370
+#: templates/js/translated/order.js:3564
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504
+#: templates/js/translated/order.js:3609 templates/js/translated/order.js:3698
#: templates/js/translated/stock.js:1602
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513
+#: templates/js/translated/order.js:3617 templates/js/translated/order.js:3707
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3827
+#: templates/js/translated/order.js:4021
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3833
+#: templates/js/translated/order.js:4027
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038
+#: templates/js/translated/order.js:4034 templates/js/translated/order.js:4232
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3852
+#: templates/js/translated/order.js:4046
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3855
+#: templates/js/translated/order.js:4049
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3937
+#: templates/js/translated/order.js:4131
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:4046
+#: templates/js/translated/order.js:4240
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:4060
+#: templates/js/translated/order.js:4254
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4296
+#: templates/js/translated/order.js:4490
msgid "No matching lines"
msgstr ""
@@ -9374,173 +9420,177 @@ msgstr ""
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498
+#: templates/js/translated/part.js:584 templates/js/translated/part.js:1515
#: templates/js/translated/table_filters.js:468
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:596
+#: templates/js/translated/part.js:594
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:715
+#: templates/js/translated/part.js:628 templates/js/translated/part.js:713
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:634 templates/js/translated/part.js:719
+#: templates/js/translated/part.js:632 templates/js/translated/part.js:717
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:646
+#: templates/js/translated/part.js:644
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:650
+#: templates/js/translated/part.js:648
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:778
+#: templates/js/translated/part.js:776
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1180
+#: templates/js/translated/part.js:1200
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1204
+#: templates/js/translated/part.js:1224
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573
+#: templates/js/translated/part.js:1291 templates/js/translated/part.js:1602
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1310
-msgid "Not available"
-msgstr ""
-
-#: templates/js/translated/part.js:1461
+#: templates/js/translated/part.js:1482
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1496
+#: templates/js/translated/part.js:1513
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840
-#: templates/js/translated/stock.js:2347
+#: templates/js/translated/part.js:1537
+msgid "Allocated to build orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1541
+msgid "Allocated to sales orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1626 templates/js/translated/part.js:1869
+#: templates/js/translated/stock.js:2343
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1613
+#: templates/js/translated/part.js:1642
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1679
+#: templates/js/translated/part.js:1708
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1684
+#: templates/js/translated/part.js:1713
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:1689
+#: templates/js/translated/part.js:1718
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1702
+#: templates/js/translated/part.js:1731
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366
+#: templates/js/translated/part.js:1888 templates/js/translated/stock.js:2362
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1938
+#: templates/js/translated/part.js:1967
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:1954
+#: templates/js/translated/part.js:1983
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2012
+#: templates/js/translated/part.js:2041
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299
+#: templates/js/translated/part.js:2092 templates/js/translated/stock.js:1299
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300
+#: templates/js/translated/part.js:2093 templates/js/translated/stock.js:1300
#: templates/js/translated/stock.js:1560
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2070
+#: templates/js/translated/part.js:2099
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2092
+#: templates/js/translated/part.js:2121
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2106
+#: templates/js/translated/part.js:2135
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2131
+#: templates/js/translated/part.js:2160
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:2188
+#: templates/js/translated/part.js:2217
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2189
+#: templates/js/translated/part.js:2218
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355
+#: templates/js/translated/part.js:2383 templates/js/translated/part.js:2384
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2357
+#: templates/js/translated/part.js:2386
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2363
+#: templates/js/translated/part.js:2392
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2413
+#: templates/js/translated/part.js:2442
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2419
+#: templates/js/translated/part.js:2448
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2515
+#: templates/js/translated/part.js:2544
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2531
+#: templates/js/translated/part.js:2560
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2576
+#: templates/js/translated/part.js:2605
msgid "Minimum Stock Level"
msgstr ""
-#: templates/js/translated/part.js:2677
+#: templates/js/translated/part.js:2706
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:2696
+#: templates/js/translated/part.js:2725
msgid "Single Price Difference"
msgstr ""
@@ -9778,7 +9828,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:942 users/models.py:216
+#: templates/js/translated/stock.js:942 users/models.py:218
msgid "Add"
msgstr ""
@@ -9854,156 +9904,156 @@ msgstr ""
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1775
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1780
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1787
+#: templates/js/translated/stock.js:1783
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1790
+#: templates/js/translated/stock.js:1786
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1792
+#: templates/js/translated/stock.js:1788
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1794
+#: templates/js/translated/stock.js:1790
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1797
+#: templates/js/translated/stock.js:1793
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1797
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1803
+#: templates/js/translated/stock.js:1799
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1810
+#: templates/js/translated/stock.js:1806
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:1808
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1814
+#: templates/js/translated/stock.js:1810
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1818
+#: templates/js/translated/stock.js:1814
#: templates/js/translated/table_filters.js:196
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1869
+#: templates/js/translated/stock.js:1865
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1948
+#: templates/js/translated/stock.js:1944
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1986
+#: templates/js/translated/stock.js:1982
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2159
+#: templates/js/translated/stock.js:2155
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2173
+#: templates/js/translated/stock.js:2169
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2174
+#: templates/js/translated/stock.js:2170
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2404
+#: templates/js/translated/stock.js:2400
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2493
+#: templates/js/translated/stock.js:2489
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2509
+#: templates/js/translated/stock.js:2505
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2531
+#: templates/js/translated/stock.js:2527
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2550
+#: templates/js/translated/stock.js:2546
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2569
+#: templates/js/translated/stock.js:2565
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2587
+#: templates/js/translated/stock.js:2583
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2610
+#: templates/js/translated/stock.js:2606
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2618
+#: templates/js/translated/stock.js:2614
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2694
+#: templates/js/translated/stock.js:2690
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781
+#: templates/js/translated/stock.js:2741 templates/js/translated/stock.js:2777
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2790
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2815
+#: templates/js/translated/stock.js:2811
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2816
+#: templates/js/translated/stock.js:2812
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2818
+#: templates/js/translated/stock.js:2814
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2819
+#: templates/js/translated/stock.js:2815
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2820
+#: templates/js/translated/stock.js:2816
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2821
+#: templates/js/translated/stock.js:2817
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2834
+#: templates/js/translated/stock.js:2830
msgid "Select part to install"
msgstr ""
@@ -10525,35 +10575,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:203
+#: users/models.py:205
msgid "Permission set"
msgstr ""
-#: users/models.py:211
+#: users/models.py:213
msgid "Group"
msgstr ""
-#: users/models.py:214
+#: users/models.py:216
msgid "View"
msgstr ""
-#: users/models.py:214
+#: users/models.py:216
msgid "Permission to view items"
msgstr ""
-#: users/models.py:216
+#: users/models.py:218
msgid "Permission to add items"
msgstr ""
-#: users/models.py:218
+#: users/models.py:220
msgid "Change"
msgstr ""
-#: users/models.py:218
+#: users/models.py:220
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:222
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/pt_br/LC_MESSAGES/django.po b/InvenTree/locale/pt_br/LC_MESSAGES/django.po
index cbcbdf369b..7f5415e088 100644
--- a/InvenTree/locale/pt_br/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pt_br/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-08-24 21:34+0000\n"
+"POT-Creation-Date: 2022-09-05 11:39+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -42,9 +42,9 @@ msgstr ""
#: stock/serializers.py:922 stock/serializers.py:1054
#: stock/templates/stock/stock_sidebar.html:25
#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099
-#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210
-#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859
-#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208
+#: templates/js/translated/company.js:964 templates/js/translated/order.js:2275
+#: templates/js/translated/order.js:2426 templates/js/translated/order.js:2924
+#: templates/js/translated/order.js:3875 templates/js/translated/order.js:4273
#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980
msgid "Notes"
msgstr ""
@@ -90,81 +90,81 @@ msgstr ""
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:173
+#: InvenTree/helpers.py:175
msgid "Connection error"
msgstr ""
-#: InvenTree/helpers.py:177 InvenTree/helpers.py:182
+#: InvenTree/helpers.py:179 InvenTree/helpers.py:184
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers.py:179
+#: InvenTree/helpers.py:181
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers.py:187
+#: InvenTree/helpers.py:189
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers.py:190
+#: InvenTree/helpers.py:192
msgid "Image size is too large"
msgstr ""
-#: InvenTree/helpers.py:202
+#: InvenTree/helpers.py:204
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers.py:207
+#: InvenTree/helpers.py:209
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers.py:215
+#: InvenTree/helpers.py:217
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: InvenTree/helpers.py:598
+#: InvenTree/helpers.py:600
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr ""
-#: InvenTree/helpers.py:605 order/models.py:320 order/models.py:472
+#: InvenTree/helpers.py:607 order/models.py:320 order/models.py:472
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:608
+#: InvenTree/helpers.py:610
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:640
+#: InvenTree/helpers.py:642
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:643
+#: InvenTree/helpers.py:645
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:671
+#: InvenTree/helpers.py:673
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:679
+#: InvenTree/helpers.py:681
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:685
+#: InvenTree/helpers.py:687
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:689
+#: InvenTree/helpers.py:691
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/mixins.py:72
+#: InvenTree/helpers.py:890
msgid "Remove HTML tags from this value"
msgstr ""
@@ -215,7 +215,7 @@ msgstr ""
#: part/models.py:802 part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848
+#: templates/js/translated/company.js:948 templates/js/translated/order.js:2913
#: templates/js/translated/part.js:1534
msgid "Link"
msgstr ""
@@ -234,10 +234,10 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665
-#: common/models.py:1666 common/models.py:1889 common/models.py:1890
-#: common/models.py:2152 common/models.py:2153 part/models.py:2239
-#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257
+#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1669
+#: common/models.py:1670 common/models.py:1893 common/models.py:1894
+#: common/models.py:2156 common/models.py:2157 part/models.py:2239
+#: part/models.py:2259 plugin/models.py:260 plugin/models.py:261
#: report/templates/report/inventree_test_report_base.html:96
#: templates/js/translated/stock.js:2641
msgid "User"
@@ -276,7 +276,7 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875
+#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1879
#: company/models.py:358 label/models.py:101 part/models.py:746
#: part/models.py:2417 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
@@ -308,8 +308,8 @@ msgstr ""
#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846
#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409
#: templates/js/translated/company.js:667
-#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637
+#: templates/js/translated/company.js:959 templates/js/translated/order.js:1891
+#: templates/js/translated/order.js:2123 templates/js/translated/order.js:2702
#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167
#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962
#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743
@@ -544,7 +544,7 @@ msgid "Returned"
msgstr ""
#: InvenTree/status_codes.py:141 order/models.py:1128
-#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785
+#: templates/js/translated/order.js:3501 templates/js/translated/order.js:3850
msgid "Shipped"
msgstr ""
@@ -694,31 +694,31 @@ msgstr ""
msgid "Invalid value for overage"
msgstr ""
-#: InvenTree/views.py:519 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:520 templates/InvenTree/settings/user.html:22
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:531 templates/InvenTree/settings/user.html:19
+#: InvenTree/views.py:532 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:553
+#: InvenTree/views.py:554
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:562
+#: InvenTree/views.py:563
msgid "Wrong password provided"
msgstr ""
-#: InvenTree/views.py:769 templates/navbar.html:152
+#: InvenTree/views.py:773 templates/navbar.html:152
msgid "System Information"
msgstr ""
-#: InvenTree/views.py:776 templates/navbar.html:163
+#: InvenTree/views.py:780 templates/navbar.html:163
msgid "About InvenTree"
msgstr ""
-#: build/api.py:217
+#: build/api.py:219
msgid "Build must be cancelled before it can be deleted"
msgstr ""
@@ -740,7 +740,7 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:120
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
-#: templates/InvenTree/search.html:139
+#: templates/InvenTree/search.html:141
#: templates/InvenTree/settings/sidebar.html:47 users/models.py:41
msgid "Build Orders"
msgstr ""
@@ -755,9 +755,9 @@ msgstr ""
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853
-#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089
-#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629
-#: templates/js/translated/order.js:4137
+#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2154
+#: templates/js/translated/order.js:2355 templates/js/translated/order.js:3694
+#: templates/js/translated/order.js:4202
msgid "Reference"
msgstr ""
@@ -787,7 +787,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:109
#: report/templates/report/inventree_po_report.html:89
#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86
-#: stock/serializers.py:490 templates/InvenTree/search.html:80
+#: stock/serializers.py:490 templates/InvenTree/search.html:82
#: templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
@@ -799,10 +799,10 @@ msgstr ""
#: templates/js/translated/company.js:266
#: templates/js/translated/company.js:496
#: templates/js/translated/company.js:608
-#: templates/js/translated/company.js:868 templates/js/translated/order.js:105
-#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493
-#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613
+#: templates/js/translated/company.js:868 templates/js/translated/order.js:106
+#: templates/js/translated/order.js:1105 templates/js/translated/order.js:1558
+#: templates/js/translated/order.js:2108 templates/js/translated/order.js:3056
+#: templates/js/translated/order.js:3452 templates/js/translated/order.js:3678
#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224
#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586
#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958
@@ -824,7 +824,7 @@ msgid "SalesOrder to which this build is allocated"
msgstr ""
#: build/models.py:213 build/serializers.py:800
-#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979
+#: templates/js/translated/build.js:2114 templates/js/translated/order.js:3044
msgid "Source Location"
msgstr ""
@@ -864,8 +864,8 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:251 build/serializers.py:225 order/serializers.py:447
-#: stock/models.py:662 templates/js/translated/order.js:1353
+#: build/models.py:251 build/serializers.py:225 order/serializers.py:464
+#: stock/models.py:662 templates/js/translated/order.js:1418
msgid "Batch Code"
msgstr ""
@@ -874,7 +874,7 @@ msgid "Batch code for this build output"
msgstr ""
#: build/models.py:258 order/models.py:86 part/models.py:938
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2715
msgid "Creation Date"
msgstr ""
@@ -908,7 +908,7 @@ msgstr ""
#: order/templates/order/order_base.html:179
#: order/templates/order/sales_order_base.html:183 part/models.py:942
#: report/templates/report/inventree_build_order_base.html:158
-#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860
+#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1925
msgid "Responsible"
msgstr ""
@@ -920,7 +920,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:153
#: part/templates/part/part_base.html:346 stock/models.py:656
-#: stock/templates/stock/item_base.html:199
+#: stock/templates/stock/item_base.html:200
msgid "External Link"
msgstr ""
@@ -974,8 +974,8 @@ msgstr ""
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1326 stock/templates/stock/item_base.html:171
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2496
+#: build/models.py:1326 stock/templates/stock/item_base.html:172
+#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496
#: templates/navbar.html:38
msgid "Build"
msgstr ""
@@ -984,16 +984,16 @@ msgstr ""
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015
-#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754
+#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1032
+#: order/serializers.py:1053 stock/serializers.py:394 stock/serializers.py:754
#: stock/serializers.py:880 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:193
+#: stock/templates/stock/item_base.html:194
#: templates/js/translated/build.js:774 templates/js/translated/build.js:779
#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679
-#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992
-#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299
-#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486
+#: templates/js/translated/order.js:107 templates/js/translated/order.js:3057
+#: templates/js/translated/order.js:3359 templates/js/translated/order.js:3364
+#: templates/js/translated/order.js:3459 templates/js/translated/order.js:3551
#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752
#: templates/js/translated/stock.js:2577
msgid "Stock Item"
@@ -1005,9 +1005,9 @@ msgstr ""
#: build/models.py:1356 build/serializers.py:193
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1697
+#: build/templates/build/detail.html:34 common/models.py:1701
#: company/templates/company/supplier_part.html:279 order/models.py:897
-#: order/models.py:1423 order/serializers.py:1155
+#: order/models.py:1423 order/serializers.py:1206
#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40
#: part/models.py:2654 part/templates/part/detail.html:951
#: part/templates/part/detail.html:1037
@@ -1018,8 +1018,8 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:291 stock/templates/stock/item_base.html:286
-#: stock/templates/stock/item_base.html:294
+#: stock/serializers.py:291 stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:295
#: templates/email/build_order_completed.html:18
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691
#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458
@@ -1027,11 +1027,11 @@ msgstr ""
#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708
#: templates/js/translated/build.js:2129
#: templates/js/translated/model_renderers.js:120
-#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043
-#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313
-#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492
-#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143
+#: templates/js/translated/order.js:123 templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:2160 templates/js/translated/order.js:2361
+#: templates/js/translated/order.js:3058 templates/js/translated/order.js:3378
+#: templates/js/translated/order.js:3465 templates/js/translated/order.js:3557
+#: templates/js/translated/order.js:3700 templates/js/translated/order.js:4208
#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176
#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686
#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458
@@ -1078,7 +1078,7 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:208 build/serializers.py:665 order/models.py:318
-#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545
+#: order/serializers.py:304 order/serializers.py:459 part/serializers.py:545
#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251
#: stock/serializers.py:300
msgid "Quantity must be greater than zero"
@@ -1092,8 +1092,8 @@ msgstr ""
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159
-#: stock/serializers.py:309 templates/js/translated/order.js:1364
+#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1210
+#: stock/serializers.py:309 templates/js/translated/order.js:1429
#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459
msgid "Serial Numbers"
msgstr ""
@@ -1118,15 +1118,15 @@ msgstr ""
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532
+#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:549
#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532
#: stock/serializers.py:915 stock/serializers.py:1148
-#: stock/templates/stock/item_base.html:384
+#: stock/templates/stock/item_base.html:385
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786
-#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391
-#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411
-#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500
+#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1456
+#: templates/js/translated/order.js:3371 templates/js/translated/order.js:3476
+#: templates/js/translated/order.js:3484 templates/js/translated/order.js:3565
#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588
#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960
#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518
@@ -1139,10 +1139,10 @@ msgstr ""
#: build/serializers.py:373 build/templates/build/build_base.html:145
#: build/templates/build/detail.html:62 order/models.py:642
-#: order/serializers.py:465 stock/templates/stock/item_base.html:417
+#: order/serializers.py:482 stock/templates/stock/item_base.html:418
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546
-#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830
-#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829
+#: templates/js/translated/order.js:1563 templates/js/translated/order.js:1895
+#: templates/js/translated/order.js:2707 templates/js/translated/stock.js:1829
#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727
msgid "Status"
msgstr ""
@@ -1203,7 +1203,7 @@ msgstr ""
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:527
+#: build/serializers.py:527 order/serializers.py:208 order/serializers.py:1100
msgid "Accept Incomplete"
msgstr ""
@@ -1240,7 +1240,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:709 order/serializers.py:1073
+#: build/serializers.py:709 order/serializers.py:1090
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1257,7 +1257,7 @@ msgstr ""
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:750 order/serializers.py:1319
+#: build/serializers.py:750 order/serializers.py:1370
msgid "Allocation items must be provided"
msgstr ""
@@ -1376,9 +1376,9 @@ msgstr ""
#: order/templates/order/order_base.html:165
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:125
-#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847
-#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658
-#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042
+#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1912
+#: templates/js/translated/order.js:2222 templates/js/translated/order.js:2723
+#: templates/js/translated/order.js:3763 templates/js/translated/part.js:1042
msgid "Target Date"
msgstr ""
@@ -1411,9 +1411,9 @@ msgstr ""
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:364
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
-#: templates/js/translated/order.js:2604
+#: templates/js/translated/order.js:2669
msgid "Sales Order"
msgstr ""
@@ -1440,7 +1440,7 @@ msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:49 order/models.py:1023
-#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199
+#: templates/js/translated/order.js:1564 templates/js/translated/order.js:2264
msgid "Destination"
msgstr ""
@@ -1453,7 +1453,7 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:164
+#: stock/templates/stock/item_base.html:165
#: templates/js/translated/build.js:1215
#: templates/js/translated/model_renderers.js:124
#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843
@@ -1517,7 +1517,7 @@ msgstr ""
#: build/templates/build/detail.html:187
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:85
-#: part/templates/part/category.html:183 templates/js/translated/order.js:1083
+#: part/templates/part/category.html:183 templates/js/translated/order.js:1148
msgid "Order Parts"
msgstr ""
@@ -2276,349 +2276,349 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1342 common/models.py:1658
+#: common/models.py:1344 common/models.py:1662
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1364
+#: common/models.py:1366
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1365
+#: common/models.py:1367
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1371
+#: common/models.py:1373
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1372
+#: common/models.py:1374
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1378
+#: common/models.py:1380
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1379
+#: common/models.py:1381
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1385
+#: common/models.py:1387
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1386
+#: common/models.py:1388
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1392
+#: common/models.py:1394
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1393
+#: common/models.py:1395
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1399
+#: common/models.py:1401
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1400
+#: common/models.py:1402
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1406
+#: common/models.py:1408
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1407
+#: common/models.py:1409
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1413
+#: common/models.py:1415
msgid "Show low stock"
msgstr ""
-#: common/models.py:1414
+#: common/models.py:1416
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1420
+#: common/models.py:1422
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1421
+#: common/models.py:1423
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1427
+#: common/models.py:1429
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1430
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1434
+#: common/models.py:1436
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1435
+#: common/models.py:1437
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1441
+#: common/models.py:1443
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1442
+#: common/models.py:1444
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1448
+#: common/models.py:1450
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1449
+#: common/models.py:1451
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1455
+#: common/models.py:1457
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1456
+#: common/models.py:1458
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1462
+#: common/models.py:1464
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1463
+#: common/models.py:1465
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1469
+#: common/models.py:1471
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1470
+#: common/models.py:1472
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1476
+#: common/models.py:1478
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1477
+#: common/models.py:1479
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1483
+#: common/models.py:1485
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1484
+#: common/models.py:1486
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1490
+#: common/models.py:1492
msgid "Inline label display"
msgstr ""
-#: common/models.py:1491
+#: common/models.py:1493
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1499
msgid "Inline report display"
msgstr ""
-#: common/models.py:1498
+#: common/models.py:1500
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1506
msgid "Search Parts"
msgstr ""
-#: common/models.py:1505
+#: common/models.py:1507
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1513
msgid "Seach Supplier Parts"
msgstr ""
-#: common/models.py:1512
+#: common/models.py:1514
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1520
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:1519
+#: common/models.py:1521
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:1525
+#: common/models.py:1527
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1526
+#: common/models.py:1528
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1532
+#: common/models.py:1534
msgid "Search Categories"
msgstr ""
-#: common/models.py:1533
+#: common/models.py:1535
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1539
+#: common/models.py:1541
msgid "Search Stock"
msgstr ""
-#: common/models.py:1540
+#: common/models.py:1542
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1546
+#: common/models.py:1548
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1547
+#: common/models.py:1549
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1553
+#: common/models.py:1555
msgid "Search Locations"
msgstr ""
-#: common/models.py:1554
+#: common/models.py:1556
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1560
+#: common/models.py:1562
msgid "Search Companies"
msgstr ""
-#: common/models.py:1561
+#: common/models.py:1563
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1567
+#: common/models.py:1569
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1568
+#: common/models.py:1570
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1574
+#: common/models.py:1576
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1575
+#: common/models.py:1577
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1581
+#: common/models.py:1583
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1582
+#: common/models.py:1584
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1588
+#: common/models.py:1590
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1591
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1595
+#: common/models.py:1597
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1598
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1602
+#: common/models.py:1604
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1605
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1609
+#: common/models.py:1611
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1610
+#: common/models.py:1612
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1616
+#: common/models.py:1618
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1617
+#: common/models.py:1619
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1623
+#: common/models.py:1625
msgid "Date Format"
msgstr ""
-#: common/models.py:1624
+#: common/models.py:1626
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1638 part/templates/part/detail.html:41
+#: common/models.py:1640 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1641
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1698
+#: common/models.py:1702
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1705 company/serializers.py:366
+#: common/models.py:1709 company/serializers.py:366
#: company/templates/company/supplier_part.html:284 order/models.py:938
#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181
msgid "Price"
msgstr ""
-#: common/models.py:1706
+#: common/models.py:1710
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1866 common/models.py:2044
+#: common/models.py:1870 common/models.py:2048
msgid "Endpoint"
msgstr ""
-#: common/models.py:1867
+#: common/models.py:1871
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1876
+#: common/models.py:1880
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1881 part/models.py:921 plugin/models.py:100
+#: common/models.py:1885 part/models.py:921 plugin/models.py:100
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:104
#: templates/js/translated/table_filters.js:316
@@ -2626,67 +2626,67 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1886
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1896
+#: common/models.py:1900
msgid "Token"
msgstr ""
-#: common/models.py:1897
+#: common/models.py:1901
msgid "Token for access"
msgstr ""
-#: common/models.py:1904
+#: common/models.py:1908
msgid "Secret"
msgstr ""
-#: common/models.py:1905
+#: common/models.py:1909
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2011
+#: common/models.py:2015
msgid "Message ID"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2016
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2020
+#: common/models.py:2024
msgid "Host"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2025
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2032
msgid "Header"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2033
msgid "Header of this message"
msgstr ""
-#: common/models.py:2035
+#: common/models.py:2039
msgid "Body"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2040
msgid "Body of this message"
msgstr ""
-#: common/models.py:2045
+#: common/models.py:2049
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2054
msgid "Worked on"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2055
msgid "Was the work on this message finished?"
msgstr ""
@@ -2836,7 +2836,7 @@ msgid "Default currency used for this company"
msgstr ""
#: company/models.py:248 company/models.py:481 stock/models.py:598
-#: stock/serializers.py:85 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:85 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:542
msgid "Base Part"
msgstr ""
@@ -2848,7 +2848,7 @@ msgstr ""
#: company/models.py:263 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
#: company/templates/company/supplier_part.html:124
-#: stock/templates/stock/item_base.html:206
+#: stock/templates/stock/item_base.html:207
#: templates/js/translated/company.js:397
#: templates/js/translated/company.js:498
#: templates/js/translated/company.js:633
@@ -2866,7 +2866,7 @@ msgstr ""
#: templates/js/translated/company.js:269
#: templates/js/translated/company.js:497
#: templates/js/translated/company.js:649
-#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077
+#: templates/js/translated/company.js:937 templates/js/translated/order.js:2142
#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027
msgid "MPN"
msgstr ""
@@ -2886,7 +2886,7 @@ msgstr ""
#: company/models.py:328 company/models.py:352 company/models.py:504
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:216
+#: stock/templates/stock/item_base.html:217
msgid "Manufacturer Part"
msgstr ""
@@ -2924,11 +2924,11 @@ msgstr ""
#: company/models.py:491 company/templates/company/company_base.html:81
#: company/templates/company/supplier_part.html:108 order/models.py:258
#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:223
+#: stock/templates/stock/item_base.html:224
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:268
#: templates/js/translated/company.js:401
-#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813
+#: templates/js/translated/company.js:893 templates/js/translated/order.js:1878
#: templates/js/translated/part.js:217 templates/js/translated/part.js:995
#: templates/js/translated/table_filters.js:423
msgid "Supplier"
@@ -2940,7 +2940,7 @@ msgstr ""
#: company/models.py:497 company/templates/company/supplier_part.html:118
#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267
-#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228
+#: templates/js/translated/order.js:2129 templates/js/translated/part.js:228
#: templates/js/translated/part.js:1013
msgid "SKU"
msgstr ""
@@ -2977,7 +2977,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:528 company/templates/company/supplier_part.html:139
-#: stock/models.py:624 stock/templates/stock/item_base.html:239
+#: stock/models.py:624 stock/templates/stock/item_base.html:240
#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976
msgid "Packaging"
msgstr ""
@@ -3030,12 +3030,12 @@ msgstr ""
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:177 templates/js/translated/company.js:386
+#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386
msgid "Company"
msgstr ""
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:624
+#: templates/js/translated/order.js:689
msgid "Create Purchase Order"
msgstr ""
@@ -3074,9 +3074,9 @@ msgstr ""
#: company/templates/company/company_base.html:86 order/models.py:637
#: order/templates/order/sales_order_base.html:116 stock/models.py:643
#: stock/models.py:644 stock/serializers.py:809
-#: stock/templates/stock/item_base.html:395
+#: stock/templates/stock/item_base.html:396
#: templates/email/overdue_sales_order.html:16
-#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619
+#: templates/js/translated/company.js:393 templates/js/translated/order.js:2684
#: templates/js/translated/stock.js:2559
#: templates/js/translated/table_filters.js:427
msgid "Customer"
@@ -3102,7 +3102,7 @@ msgstr ""
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_sidebar.html:7
-#: templates/InvenTree/search.html:118 templates/js/translated/search.js:172
+#: templates/InvenTree/search.html:120 templates/js/translated/search.js:172
msgid "Supplier Parts"
msgstr ""
@@ -3132,7 +3132,7 @@ msgstr ""
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103
+#: company/templates/company/detail.html:61 templates/InvenTree/search.html:105
#: templates/js/translated/search.js:185
msgid "Manufacturer Parts"
msgstr ""
@@ -3156,7 +3156,7 @@ msgstr ""
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
#: part/templates/part/detail.html:84 part/templates/part/part_sidebar.html:37
-#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:198
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200
#: templates/InvenTree/settings/sidebar.html:49
#: templates/js/translated/search.js:277 templates/navbar.html:50
#: users/models.py:42
@@ -3179,7 +3179,7 @@ msgstr ""
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:41
-#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:218
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220
#: templates/InvenTree/settings/sidebar.html:51
#: templates/js/translated/search.js:301 templates/navbar.html:61
#: users/models.py:43
@@ -3206,7 +3206,7 @@ msgid "Supplier List"
msgstr ""
#: company/templates/company/manufacturer_part.html:15 company/views.py:38
-#: part/templates/part/prices.html:172 templates/InvenTree/search.html:179
+#: part/templates/part/prices.html:172 templates/InvenTree/search.html:181
#: templates/navbar.html:49
msgid "Manufacturers"
msgstr ""
@@ -3239,7 +3239,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:119
#: company/templates/company/supplier_part.html:15 company/views.py:32
#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:168
-#: templates/InvenTree/search.html:189 templates/navbar.html:48
+#: templates/InvenTree/search.html:191 templates/navbar.html:48
msgid "Suppliers"
msgstr ""
@@ -3251,8 +3251,8 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:371 part/templates/part/detail.html:401
-#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34
-#: users/models.py:220
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:34
+#: users/models.py:222
msgid "Delete"
msgstr ""
@@ -3297,8 +3297,8 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:607
-#: stock/templates/stock/item_base.html:232
-#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041
+#: stock/templates/stock/item_base.html:233
+#: templates/js/translated/company.js:909 templates/js/translated/order.js:1106
#: templates/js/translated/stock.js:1933
msgid "Supplier Part"
msgstr ""
@@ -3403,7 +3403,7 @@ msgstr ""
#: part/templates/part/part_sidebar.html:14
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24
#: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:151
+#: templates/InvenTree/search.html:153
#: templates/InvenTree/settings/sidebar.html:45
#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313
#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959
@@ -3432,7 +3432,7 @@ msgstr ""
#: stock/templates/stock/location.html:166
#: stock/templates/stock/location.html:178
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:153 templates/js/translated/search.js:225
+#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
#: templates/js/translated/stock.js:2436 users/models.py:40
msgid "Stock Items"
msgstr ""
@@ -3445,7 +3445,7 @@ msgstr ""
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:44 templates/InvenTree/search.html:209
+#: company/views.py:44 templates/InvenTree/search.html:211
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
@@ -3564,7 +3564,7 @@ msgid "Company from which the items are being ordered"
msgstr ""
#: order/models.py:262 order/templates/order/order_base.html:127
-#: templates/js/translated/order.js:1822
+#: templates/js/translated/order.js:1887
msgid "Supplier Reference"
msgstr ""
@@ -3621,7 +3621,7 @@ msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
#: order/models.py:652 order/models.py:1204
-#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828
+#: templates/js/translated/order.js:2731 templates/js/translated/order.js:2893
msgid "Shipment Date"
msgstr ""
@@ -3637,7 +3637,7 @@ msgstr ""
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:721
+#: order/models.py:721 templates/js/translated/order.js:419
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
@@ -3683,7 +3683,7 @@ msgstr ""
#: order/models.py:983 order/models.py:1063 order/models.py:1104
#: order/models.py:1198 order/models.py:1330
-#: templates/js/translated/order.js:3284
+#: templates/js/translated/order.js:3349
msgid "Order"
msgstr ""
@@ -3691,10 +3691,10 @@ msgstr ""
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:178
+#: stock/templates/stock/item_base.html:179
#: templates/email/overdue_purchase_order.html:15
-#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042
-#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972
+#: templates/js/translated/order.js:619 templates/js/translated/order.js:1107
+#: templates/js/translated/order.js:1862 templates/js/translated/part.js:972
#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540
msgid "Purchase Order"
msgstr ""
@@ -3704,7 +3704,7 @@ msgid "Supplier part"
msgstr ""
#: order/models.py:1009 order/templates/order/order_base.html:172
-#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179
+#: templates/js/translated/order.js:1561 templates/js/translated/order.js:2244
#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105
#: templates/js/translated/table_filters.js:338
msgid "Received"
@@ -3715,7 +3715,7 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734
-#: stock/serializers.py:169 stock/templates/stock/item_base.html:185
+#: stock/serializers.py:169 stock/templates/stock/item_base.html:186
#: templates/js/translated/stock.js:1964
msgid "Purchase Price"
msgstr ""
@@ -3761,8 +3761,8 @@ msgstr ""
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1220 order/models.py:1405 order/serializers.py:1170
-#: order/serializers.py:1294 templates/js/translated/model_renderers.js:314
+#: order/models.py:1220 order/models.py:1405 order/serializers.py:1221
+#: order/serializers.py:1345 templates/js/translated/model_renderers.js:314
msgid "Shipment"
msgstr ""
@@ -3814,7 +3814,7 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1385 order/serializers.py:1066
+#: order/models.py:1385 order/serializers.py:1083
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -3854,111 +3854,119 @@ msgstr ""
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:294
+#: order/serializers.py:209 order/serializers.py:1101
+msgid "Allow order to be closed with incomplete line items"
+msgstr ""
+
+#: order/serializers.py:220 order/serializers.py:1112
+msgid "Order has incomplete line items"
+msgstr ""
+
+#: order/serializers.py:311
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:318
+#: order/serializers.py:335
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:354
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:342
+#: order/serializers.py:359
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:348
+#: order/serializers.py:365
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:349
+#: order/serializers.py:366
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:413 order/serializers.py:1138
+#: order/serializers.py:430 order/serializers.py:1189
msgid "Line Item"
msgstr ""
-#: order/serializers.py:419
+#: order/serializers.py:436
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:429 order/serializers.py:533
+#: order/serializers.py:446 order/serializers.py:550
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:448 templates/js/translated/order.js:1354
+#: order/serializers.py:465 templates/js/translated/order.js:1419
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:456 templates/js/translated/order.js:1365
+#: order/serializers.py:473 templates/js/translated/order.js:1430
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:469
+#: order/serializers.py:486
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:470
+#: order/serializers.py:487
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:484
+#: order/serializers.py:501
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:507
+#: order/serializers.py:524
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:549
+#: order/serializers.py:566
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:566
+#: order/serializers.py:583
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:577
+#: order/serializers.py:594
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:883
+#: order/serializers.py:900
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:964
+#: order/serializers.py:981
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1027 order/serializers.py:1147
+#: order/serializers.py:1044 order/serializers.py:1198
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1049
+#: order/serializers.py:1066
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1160
+#: order/serializers.py:1211
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1182 order/serializers.py:1302
+#: order/serializers.py:1233 order/serializers.py:1353
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1185 order/serializers.py:1305
+#: order/serializers.py:1236 order/serializers.py:1356
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1235
+#: order/serializers.py:1286
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1245
+#: order/serializers.py:1296
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -4103,8 +4111,8 @@ msgstr ""
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463
#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015
-#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443
-#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625
+#: templates/js/translated/order.js:1055 templates/js/translated/order.js:1508
+#: templates/js/translated/order.js:2968 templates/js/translated/stock.js:625
#: templates/js/translated/stock.js:793
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
@@ -4140,7 +4148,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:26
#: order/templates/order/sales_order_detail.html:22
#: order/templates/order/sales_order_detail.html:255
-#: templates/js/translated/order.js:663
+#: templates/js/translated/order.js:728
msgid "Add Line Item"
msgstr ""
@@ -4186,12 +4194,12 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:231
+#: templates/js/translated/order.js:232
msgid "Complete Shipments"
msgstr ""
#: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:258
+#: templates/js/translated/order.js:397
msgid "Complete Sales Order"
msgstr ""
@@ -4200,7 +4208,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2632
+#: templates/js/translated/order.js:2697
msgid "Customer Reference"
msgstr ""
@@ -4309,7 +4317,7 @@ msgid "Total Stock"
msgstr ""
#: part/bom.py:129 part/templates/part/part_base.html:189
-#: templates/js/translated/order.js:3724
+#: templates/js/translated/order.js:3789
msgid "Available Stock"
msgstr ""
@@ -4351,7 +4359,7 @@ msgid "Part Category"
msgstr ""
#: part/models.py:123 part/templates/part/category.html:134
-#: templates/InvenTree/search.html:95 templates/js/translated/search.js:200
+#: templates/InvenTree/search.html:97 templates/js/translated/search.js:200
#: users/models.py:37
msgid "Part Categories"
msgstr ""
@@ -4360,7 +4368,7 @@ msgstr ""
#: part/templates/part/category.html:23 part/templates/part/category.html:139
#: part/templates/part/category.html:159
#: part/templates/part/category_sidebar.html:9
-#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
#: templates/InvenTree/settings/sidebar.html:41
#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
@@ -5032,7 +5040,7 @@ msgstr ""
msgid "Refresh scheduling data"
msgstr ""
-#: part/templates/part/detail.html:45 templates/js/translated/tables.js:558
+#: part/templates/part/detail.html:45 templates/js/translated/tables.js:560
msgid "Refresh"
msgstr ""
@@ -5251,7 +5259,7 @@ msgid "Show pricing information"
msgstr ""
#: part/templates/part/part_base.html:60
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:111
#: stock/templates/stock/location.html:61
msgid "Stock actions"
msgstr ""
@@ -5334,12 +5342,12 @@ msgid "In Stock"
msgstr ""
#: part/templates/part/part_base.html:215
-#: stock/templates/stock/item_base.html:378
+#: stock/templates/stock/item_base.html:379
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:224
-#: stock/templates/stock/item_base.html:371
+#: stock/templates/stock/item_base.html:372
msgid "Allocated to Sales Orders"
msgstr ""
@@ -5362,7 +5370,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:327
+#: stock/templates/stock/item_base.html:328
msgid "Search for serial number"
msgstr ""
@@ -5440,7 +5448,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:53
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468
+#: templates/js/translated/order.js:1904 templates/js/translated/stock.js:2468
msgid "Date"
msgstr ""
@@ -5736,19 +5744,19 @@ msgstr ""
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:186
+#: plugin/models.py:188
msgid "Plugin"
msgstr ""
-#: plugin/models.py:249
+#: plugin/models.py:253
msgid "Method"
msgstr ""
-#: plugin/plugin.py:251
+#: plugin/plugin.py:252
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:263
+#: plugin/plugin.py:264
msgid "No date found"
msgstr ""
@@ -5926,12 +5934,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:648 stock/templates/stock/item_base.html:316
+#: stock/models.py:648 stock/templates/stock/item_base.html:317
#: templates/js/translated/build.js:456 templates/js/translated/build.js:608
#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706
#: templates/js/translated/model_renderers.js:118
-#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403
-#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490
+#: templates/js/translated/order.js:121 templates/js/translated/order.js:3468
+#: templates/js/translated/order.js:3555 templates/js/translated/stock.js:490
msgid "Serial Number"
msgstr ""
@@ -5981,7 +5989,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
#: stock/models.py:89 stock/models.py:739
-#: stock/templates/stock/item_base.html:246
+#: stock/templates/stock/item_base.html:247
msgid "Owner"
msgstr ""
@@ -6047,7 +6055,7 @@ msgstr ""
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:631 stock/templates/stock/item_base.html:355
+#: stock/models.py:631 stock/templates/stock/item_base.html:356
msgid "Installed In"
msgstr ""
@@ -6087,7 +6095,7 @@ msgstr ""
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:706 stock/templates/stock/item_base.html:423
+#: stock/models.py:706 stock/templates/stock/item_base.html:424
#: templates/js/translated/stock.js:1883
msgid "Expiry Date"
msgstr ""
@@ -6427,183 +6435,187 @@ msgstr ""
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:83 templates/stock_table.html:46
+msgid "Remove stock"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:86
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:89
#: stock/templates/stock/location.html:74 templates/stock_table.html:48
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:91 templates/stock_table.html:51
+#: stock/templates/stock/item_base.html:92 templates/stock_table.html:51
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:95
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:98
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:98
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:102
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:102
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:116
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:119
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:121
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:124
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:157
+#: stock/templates/stock/item_base.html:158
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:192
+#: stock/templates/stock/item_base.html:193
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:210
+#: stock/templates/stock/item_base.html:211
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:250
+#: stock/templates/stock/item_base.html:251
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:252
#: stock/templates/stock/location.html:132
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:264
+#: stock/templates/stock/item_base.html:265
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:266
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:278
+#: stock/templates/stock/item_base.html:279
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:286
+#: stock/templates/stock/item_base.html:287
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:294
+#: stock/templates/stock/item_base.html:295
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:300
+#: stock/templates/stock/item_base.html:301
msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
msgstr ""
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:323
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:323
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:331
+#: stock/templates/stock/item_base.html:332
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:331
+#: stock/templates/stock/item_base.html:332
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:344
+#: stock/templates/stock/item_base.html:345
msgid "Available Quantity"
msgstr ""
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:389
#: templates/js/translated/build.js:1729
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:403
+#: stock/templates/stock/item_base.html:404
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:428
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:428
#: templates/js/translated/table_filters.js:269
msgid "Expired"
msgstr ""
-#: stock/templates/stock/item_base.html:429
+#: stock/templates/stock/item_base.html:430
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:429
+#: stock/templates/stock/item_base.html:430
#: templates/js/translated/table_filters.js:275
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:436
+#: stock/templates/stock/item_base.html:437
#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:441
+#: stock/templates/stock/item_base.html:442
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:445
+#: stock/templates/stock/item_base.html:446
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:515
+#: stock/templates/stock/item_base.html:516
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:588
+#: stock/templates/stock/item_base.html:589
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:591
+#: stock/templates/stock/item_base.html:592
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:592
+#: stock/templates/stock/item_base.html:593
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:600
+#: stock/templates/stock/item_base.html:601
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:628
+#: stock/templates/stock/item_base.html:629
msgid "Return to Stock"
msgstr ""
@@ -6666,7 +6678,7 @@ msgstr ""
msgid "Sublocations"
msgstr ""
-#: stock/templates/stock/location.html:161 templates/InvenTree/search.html:165
+#: stock/templates/stock/location.html:161 templates/InvenTree/search.html:167
#: templates/js/translated/search.js:240 users/models.py:39
msgid "Stock Locations"
msgstr ""
@@ -7506,7 +7518,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:644
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr ""
@@ -7946,7 +7958,7 @@ msgstr ""
#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620
#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601
#: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003
-#: templates/js/translated/order.js:1085 templates/modals.html:15
+#: templates/js/translated/order.js:1150 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -7956,12 +7968,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145
+#: templates/js/translated/order.js:931 templates/js/translated/tables.js:145
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:867
+#: templates/js/translated/order.js:932
msgid "Select file format"
msgstr ""
@@ -8058,7 +8070,7 @@ msgid "Variant stock allowed"
msgstr ""
#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857
-#: templates/js/translated/order.js:3738
+#: templates/js/translated/order.js:3803
msgid "No Stock Available"
msgstr ""
@@ -8266,12 +8278,12 @@ msgid "No required tests for this build"
msgstr ""
#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697
-#: templates/js/translated/order.js:3438
+#: templates/js/translated/order.js:3503
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698
-#: templates/js/translated/order.js:3439
+#: templates/js/translated/order.js:3504
msgid "Delete stock allocation"
msgstr ""
@@ -8291,20 +8303,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745
+#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3810
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743
+#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3808
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127
-#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757
+#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3822
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837
+#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3902
msgid "Build stock"
msgstr ""
@@ -8312,21 +8324,21 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830
+#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3895
msgid "Allocate stock"
msgstr ""
#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965
+#: templates/js/translated/order.js:978 templates/js/translated/order.js:3030
#: templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966
+#: templates/js/translated/build.js:1977 templates/js/translated/order.js:3031
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914
+#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2979
msgid "Specify stock allocation quantity"
msgstr ""
@@ -8338,7 +8350,7 @@ msgstr ""
msgid "All selected parts have been fully allocated"
msgstr ""
-#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980
+#: templates/js/translated/build.js:2115 templates/js/translated/order.js:3045
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
@@ -8346,11 +8358,11 @@ msgstr ""
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077
+#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3142
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154
+#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3219
msgid "No matching stock items"
msgstr ""
@@ -8416,11 +8428,11 @@ msgstr ""
msgid "Edit Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:167 templates/js/translated/order.js:511
+#: templates/js/translated/company.js:167 templates/js/translated/order.js:576
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:195 templates/js/translated/order.js:734
+#: templates/js/translated/company.js:195 templates/js/translated/order.js:799
msgid "Add Supplier Part"
msgstr ""
@@ -8546,61 +8558,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:367 templates/js/translated/forms.js:382
-#: templates/js/translated/forms.js:396 templates/js/translated/forms.js:410
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:369
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:384
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:398
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:670
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:771
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1269 templates/modals.html:19
+#: templates/js/translated/forms.js:1274 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1702
+#: templates/js/translated/forms.js:1707
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1917 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2170
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2648
+#: templates/js/translated/forms.js:2653
msgid "Select Columns"
msgstr ""
@@ -8791,409 +8803,413 @@ msgstr ""
msgid "Notifications will load here"
msgstr ""
-#: templates/js/translated/order.js:96
+#: templates/js/translated/order.js:97
msgid "No stock items have been allocated to this shipment"
msgstr ""
-#: templates/js/translated/order.js:101
+#: templates/js/translated/order.js:102
msgid "The following stock items will be shipped"
msgstr ""
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:142
msgid "Complete Shipment"
msgstr ""
-#: templates/js/translated/order.js:161
+#: templates/js/translated/order.js:162
msgid "Confirm Shipment"
msgstr ""
-#: templates/js/translated/order.js:217
+#: templates/js/translated/order.js:218
msgid "No pending shipments found"
msgstr ""
-#: templates/js/translated/order.js:221
+#: templates/js/translated/order.js:222
msgid "No stock items have been allocated to pending shipments"
msgstr ""
-#: templates/js/translated/order.js:253
+#: templates/js/translated/order.js:254
msgid "Skip"
msgstr ""
-#: templates/js/translated/order.js:283
+#: templates/js/translated/order.js:284
msgid "Complete Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:289
+#: templates/js/translated/order.js:301 templates/js/translated/order.js:413
msgid "Mark this order as complete?"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:307
msgid "All line items have been received"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:312
msgid "This order has line items which have not been marked as received."
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:313 templates/js/translated/order.js:427
msgid "Completing this order means that the order and line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:324
+#: templates/js/translated/order.js:336
msgid "Cancel Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:329
+#: templates/js/translated/order.js:341
msgid "Are you sure you wish to cancel this purchase order?"
msgstr ""
-#: templates/js/translated/order.js:335
+#: templates/js/translated/order.js:347
msgid "This purchase order can not be cancelled"
msgstr ""
-#: templates/js/translated/order.js:358
+#: templates/js/translated/order.js:370
msgid "Issue Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:363
+#: templates/js/translated/order.js:375
msgid "After placing this purchase order, line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:385
+#: templates/js/translated/order.js:426
+msgid "This order has line items which have not been completed."
+msgstr ""
+
+#: templates/js/translated/order.js:450
msgid "Cancel Sales Order"
msgstr ""
-#: templates/js/translated/order.js:390
+#: templates/js/translated/order.js:455
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:444
+#: templates/js/translated/order.js:509
msgid "Create New Shipment"
msgstr ""
-#: templates/js/translated/order.js:469
+#: templates/js/translated/order.js:534
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:494
+#: templates/js/translated/order.js:559
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:555
+#: templates/js/translated/order.js:620
msgid "Select purchase order to duplicate"
msgstr ""
-#: templates/js/translated/order.js:562
+#: templates/js/translated/order.js:627
msgid "Duplicate Line Items"
msgstr ""
-#: templates/js/translated/order.js:563
+#: templates/js/translated/order.js:628
msgid "Duplicate all line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:570
+#: templates/js/translated/order.js:635
msgid "Duplicate Extra Lines"
msgstr ""
-#: templates/js/translated/order.js:571
+#: templates/js/translated/order.js:636
msgid "Duplicate extra line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:588
+#: templates/js/translated/order.js:653
msgid "Edit Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:605
+#: templates/js/translated/order.js:670
msgid "Duplication Options"
msgstr ""
-#: templates/js/translated/order.js:863
+#: templates/js/translated/order.js:928
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:914
+#: templates/js/translated/order.js:979
msgid "At least one purchaseable part must be selected"
msgstr ""
-#: templates/js/translated/order.js:939
+#: templates/js/translated/order.js:1004
msgid "Quantity to order"
msgstr ""
-#: templates/js/translated/order.js:948
+#: templates/js/translated/order.js:1013
msgid "New supplier part"
msgstr ""
-#: templates/js/translated/order.js:966
+#: templates/js/translated/order.js:1031
msgid "New purchase order"
msgstr ""
-#: templates/js/translated/order.js:999
+#: templates/js/translated/order.js:1064
msgid "Add to purchase order"
msgstr ""
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1173
msgid "No matching supplier parts"
msgstr ""
-#: templates/js/translated/order.js:1123
+#: templates/js/translated/order.js:1188
msgid "No matching purchase orders"
msgstr ""
-#: templates/js/translated/order.js:1300
+#: templates/js/translated/order.js:1365
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1366
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420
+#: templates/js/translated/order.js:1386 templates/js/translated/order.js:1485
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431
+#: templates/js/translated/order.js:1392 templates/js/translated/order.js:1496
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1339
+#: templates/js/translated/order.js:1404
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144
+#: templates/js/translated/order.js:1468 templates/js/translated/stock.js:2144
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:1494
+#: templates/js/translated/order.js:1559
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:1495
+#: templates/js/translated/order.js:1560
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:1497
+#: templates/js/translated/order.js:1562
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:1516
+#: templates/js/translated/order.js:1581
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:1517
+#: templates/js/translated/order.js:1582
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943
+#: templates/js/translated/order.js:1843 templates/js/translated/part.js:943
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609
+#: templates/js/translated/order.js:1870 templates/js/translated/order.js:2674
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674
-#: templates/js/translated/order.js:2815
+#: templates/js/translated/order.js:1920 templates/js/translated/order.js:2739
+#: templates/js/translated/order.js:2880
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889
+#: templates/js/translated/order.js:2018 templates/js/translated/order.js:3954
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911
+#: templates/js/translated/order.js:2035 templates/js/translated/order.js:3976
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922
+#: templates/js/translated/order.js:2048 templates/js/translated/order.js:3987
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:2026
+#: templates/js/translated/order.js:2091
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:2118 templates/js/translated/order.js:3688
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309
-#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156
+#: templates/js/translated/order.js:2172 templates/js/translated/order.js:2374
+#: templates/js/translated/order.js:3713 templates/js/translated/order.js:4221
#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325
-#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172
+#: templates/js/translated/order.js:2187 templates/js/translated/order.js:2390
+#: templates/js/translated/order.js:3729 templates/js/translated/order.js:4237
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706
+#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3771
#: templates/js/translated/part.js:1070
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110
+#: templates/js/translated/order.js:2287 templates/js/translated/part.js:1110
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2291 templates/js/translated/order.js:3908
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844
+#: templates/js/translated/order.js:2292 templates/js/translated/order.js:3909
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848
+#: templates/js/translated/order.js:2293 templates/js/translated/order.js:3913
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221
+#: templates/js/translated/order.js:2439 templates/js/translated/order.js:4286
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222
+#: templates/js/translated/order.js:2440 templates/js/translated/order.js:4287
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223
+#: templates/js/translated/order.js:2441 templates/js/translated/order.js:4288
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253
+#: templates/js/translated/order.js:2471 templates/js/translated/order.js:4318
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274
+#: templates/js/translated/order.js:2492 templates/js/translated/order.js:4339
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285
+#: templates/js/translated/order.js:2503 templates/js/translated/order.js:4350
msgid "Delete Line"
msgstr ""
-#: templates/js/translated/order.js:2449
+#: templates/js/translated/order.js:2514
msgid "No matching line"
msgstr ""
-#: templates/js/translated/order.js:2560
+#: templates/js/translated/order.js:2625
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:2623
+#: templates/js/translated/order.js:2688
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:2721
+#: templates/js/translated/order.js:2786
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:2724
+#: templates/js/translated/order.js:2789
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:2729
+#: templates/js/translated/order.js:2794
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:2749
+#: templates/js/translated/order.js:2814
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:2766
+#: templates/js/translated/order.js:2831
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:2800
+#: templates/js/translated/order.js:2865
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:2810
+#: templates/js/translated/order.js:2875
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:2834
+#: templates/js/translated/order.js:2899
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:2840
+#: templates/js/translated/order.js:2905
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:2844
+#: templates/js/translated/order.js:2909
msgid "Invoice"
msgstr ""
-#: templates/js/translated/order.js:3013
+#: templates/js/translated/order.js:3078
msgid "Add Shipment"
msgstr ""
-#: templates/js/translated/order.js:3064
+#: templates/js/translated/order.js:3129
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/order.js:3065
+#: templates/js/translated/order.js:3130
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:3273
+#: templates/js/translated/order.js:3338
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:3352
+#: templates/js/translated/order.js:3417
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3369
+#: templates/js/translated/order.js:3434
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:3370
+#: templates/js/translated/order.js:3435
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504
+#: templates/js/translated/order.js:3480 templates/js/translated/order.js:3569
#: templates/js/translated/stock.js:1602
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513
+#: templates/js/translated/order.js:3488 templates/js/translated/order.js:3578
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3827
+#: templates/js/translated/order.js:3892
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3833
+#: templates/js/translated/order.js:3898
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038
+#: templates/js/translated/order.js:3905 templates/js/translated/order.js:4103
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3852
+#: templates/js/translated/order.js:3917
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3855
+#: templates/js/translated/order.js:3920
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3937
+#: templates/js/translated/order.js:4002
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:4046
+#: templates/js/translated/order.js:4111
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:4060
+#: templates/js/translated/order.js:4125
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4296
+#: templates/js/translated/order.js:4361
msgid "No matching lines"
msgstr ""
@@ -9777,7 +9793,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:942 users/models.py:216
+#: templates/js/translated/stock.js:942 users/models.py:218
msgid "Add"
msgstr ""
@@ -10258,57 +10274,57 @@ msgstr ""
msgid "Select File Format"
msgstr ""
-#: templates/js/translated/tables.js:535
+#: templates/js/translated/tables.js:537
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:538
+#: templates/js/translated/tables.js:540
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:543
+#: templates/js/translated/tables.js:545
msgid "Showing all rows"
msgstr ""
-#: templates/js/translated/tables.js:545
+#: templates/js/translated/tables.js:547
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:545
+#: templates/js/translated/tables.js:547
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:545
+#: templates/js/translated/tables.js:547
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:545
+#: templates/js/translated/tables.js:547
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:549 templates/navbar.html:102
+#: templates/js/translated/tables.js:551 templates/navbar.html:102
#: templates/search.html:8 templates/search_form.html:6
#: templates/search_form.html:7
msgid "Search"
msgstr ""
-#: templates/js/translated/tables.js:552
+#: templates/js/translated/tables.js:554
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:555
+#: templates/js/translated/tables.js:557
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:561
+#: templates/js/translated/tables.js:563
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:564
+#: templates/js/translated/tables.js:566
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:567
+#: templates/js/translated/tables.js:569
msgid "All"
msgstr ""
@@ -10456,10 +10472,6 @@ msgstr ""
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:46
-msgid "Remove stock"
-msgstr ""
-
#: templates/stock_table.html:47
msgid "Stocktake selected stock items"
msgstr ""
@@ -10528,34 +10540,34 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:203
+#: users/models.py:205
msgid "Permission set"
msgstr ""
-#: users/models.py:211
+#: users/models.py:213
msgid "Group"
msgstr ""
-#: users/models.py:214
+#: users/models.py:216
msgid "View"
msgstr ""
-#: users/models.py:214
+#: users/models.py:216
msgid "Permission to view items"
msgstr ""
-#: users/models.py:216
+#: users/models.py:218
msgid "Permission to add items"
msgstr ""
-#: users/models.py:218
+#: users/models.py:220
msgid "Change"
msgstr ""
-#: users/models.py:218
+#: users/models.py:220
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:222
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po
index b3f2252160..f03535fd83 100644
--- a/InvenTree/locale/ru/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ru/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-08-25 10:08+0000\n"
-"PO-Revision-Date: 2022-08-26 01:55\n"
+"POT-Creation-Date: 2022-09-09 02:44+0000\n"
+"PO-Revision-Date: 2022-09-09 03:57\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
"Language: ru_RU\n"
@@ -29,9 +29,9 @@ msgstr "Подробности об ошибке можно найти в пан
msgid "Enter date"
msgstr "Введите дату"
-#: InvenTree/fields.py:186 build/serializers.py:384
-#: build/templates/build/sidebar.html:21 company/models.py:523
-#: company/templates/company/sidebar.html:25 order/models.py:906
+#: InvenTree/fields.py:183 build/serializers.py:384
+#: build/templates/build/sidebar.html:21 company/models.py:524
+#: company/templates/company/sidebar.html:25 order/models.py:910
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17
#: part/templates/part/part_sidebar.html:59
@@ -40,11 +40,12 @@ msgstr "Введите дату"
#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823
#: stock/serializers.py:922 stock/serializers.py:1054
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099
-#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210
-#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859
-#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208
-#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1107
+#: templates/js/translated/company.js:1022
+#: templates/js/translated/order.js:2404 templates/js/translated/order.js:2555
+#: templates/js/translated/order.js:3053 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:4402 templates/js/translated/stock.js:1374
+#: templates/js/translated/stock.js:1976
msgid "Notes"
msgstr "Заметки"
@@ -210,12 +211,12 @@ msgid "Select file to attach"
msgstr "Выберите файл для вложения"
#: InvenTree/models.py:402 company/models.py:124 company/models.py:276
-#: company/models.py:510 order/models.py:84 order/models.py:1245
+#: company/models.py:511 order/models.py:84 order/models.py:1249
#: part/models.py:802 part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
-#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848
-#: templates/js/translated/part.js:1534
+#: templates/js/translated/company.js:691
+#: templates/js/translated/company.js:1011
+#: templates/js/translated/order.js:3042 templates/js/translated/part.js:1563
msgid "Link"
msgstr "Ссылка"
@@ -233,12 +234,12 @@ msgstr "Комментарий"
msgid "File comment"
msgstr "Комментарий к файлу"
-#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665
-#: common/models.py:1666 common/models.py:1889 common/models.py:1890
-#: common/models.py:2152 common/models.py:2153 part/models.py:2239
-#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257
+#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1669
+#: common/models.py:1670 common/models.py:1893 common/models.py:1894
+#: common/models.py:2156 common/models.py:2157 part/models.py:2247
+#: part/models.py:2267 plugin/models.py:260 plugin/models.py:261
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2641
+#: templates/js/translated/stock.js:2637
msgid "User"
msgstr "Пользователь"
@@ -275,28 +276,28 @@ msgstr "Ошибка переименования файла"
msgid "Invalid choice"
msgstr "Неверный выбор"
-#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875
+#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1879
#: company/models.py:358 label/models.py:101 part/models.py:746
-#: part/models.py:2417 plugin/models.py:94 report/models.py:152
+#: part/models.py:2425 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin.html:134
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:347
-#: templates/js/translated/company.js:545
-#: templates/js/translated/company.js:758
+#: templates/js/translated/company.js:580
+#: templates/js/translated/company.js:793
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:688 templates/js/translated/part.js:840
-#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392
+#: templates/js/translated/part.js:686 templates/js/translated/part.js:838
+#: templates/js/translated/part.js:1955 templates/js/translated/stock.js:2388
msgid "Name"
msgstr "Название"
#: InvenTree/models.py:544 build/models.py:174
#: build/templates/build/detail.html:24 company/models.py:282
-#: company/models.py:516 company/templates/company/company_base.html:71
+#: company/models.py:517 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:87 label/models.py:108
-#: order/models.py:82 part/models.py:769 part/models.py:2429
+#: company/templates/company/supplier_part.html:92 label/models.py:108
+#: order/models.py:82 part/models.py:769 part/models.py:2437
#: part/templates/part/category.html:80 part/templates/part/part_base.html:167
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
@@ -305,14 +306,14 @@ msgstr "Название"
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/InvenTree/settings/settings.html:358
#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846
-#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409
-#: templates/js/translated/company.js:667
-#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637
-#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167
-#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962
-#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743
-#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478
+#: templates/js/translated/build.js:2512 templates/js/translated/company.js:444
+#: templates/js/translated/company.js:702
+#: templates/js/translated/company.js:986 templates/js/translated/order.js:1988
+#: templates/js/translated/order.js:2220 templates/js/translated/order.js:2831
+#: templates/js/translated/part.js:745 templates/js/translated/part.js:1187
+#: templates/js/translated/part.js:1463 templates/js/translated/part.js:1991
+#: templates/js/translated/part.js:2060 templates/js/translated/stock.js:1743
+#: templates/js/translated/stock.js:2420 templates/js/translated/stock.js:2474
msgid "Description"
msgstr "Описание"
@@ -325,7 +326,7 @@ msgid "parent"
msgstr "родитель"
#: InvenTree/models.py:560 InvenTree/models.py:561
-#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:2426
msgid "Path"
msgstr "Путь"
@@ -337,7 +338,7 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2745
+#: InvenTree/serializers.py:55 part/models.py:2753
msgid "Must be a valid number"
msgstr "Должно быть действительным номером"
@@ -522,7 +523,7 @@ msgid "Placed"
msgstr "Размещены"
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr "Готово"
@@ -542,8 +543,8 @@ msgstr "Потерян"
msgid "Returned"
msgstr "Возвращено"
-#: InvenTree/status_codes.py:141 order/models.py:1128
-#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785
+#: InvenTree/status_codes.py:141 order/models.py:1132
+#: templates/js/translated/order.js:3630 templates/js/translated/order.js:3979
msgid "Shipped"
msgstr "Доставлено"
@@ -627,7 +628,7 @@ msgstr "Отделить от родительского элемента"
msgid "Split child item"
msgstr "Разбить дочерний элемент"
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080
msgid "Merged stock items"
msgstr "Объединенные позиции на складе"
@@ -717,7 +718,7 @@ msgstr "Информация о системе"
msgid "About InvenTree"
msgstr ""
-#: build/api.py:217
+#: build/api.py:219
msgid "Build must be cancelled before it can be deleted"
msgstr ""
@@ -748,15 +749,15 @@ msgstr "Порядок сборки"
msgid "Build Order Reference"
msgstr "Ссылка на заказ"
-#: build/models.py:166 order/models.py:240 order/models.py:623
-#: order/models.py:904 part/models.py:2663
+#: build/models.py:166 order/models.py:240 order/models.py:627
+#: order/models.py:908 part/models.py:2671
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853
-#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089
-#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629
-#: templates/js/translated/order.js:4137
+#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2251
+#: templates/js/translated/order.js:2484 templates/js/translated/order.js:3823
+#: templates/js/translated/order.js:4331
msgid "Reference"
msgstr "Отсылка"
@@ -774,12 +775,12 @@ msgid "BuildOrder to which this build is allocated"
msgstr ""
#: build/models.py:191 build/templates/build/build_base.html:80
-#: build/templates/build/detail.html:29 company/models.py:670
-#: order/models.py:1001 order/models.py:1112 order/models.py:1113
-#: part/models.py:343 part/models.py:2185 part/models.py:2200
-#: part/models.py:2219 part/models.py:2237 part/models.py:2336
-#: part/models.py:2463 part/models.py:2553 part/models.py:2638
-#: part/models.py:2914 part/serializers.py:814
+#: build/templates/build/detail.html:29 company/models.py:679
+#: order/models.py:1005 order/models.py:1116 order/models.py:1117
+#: part/models.py:343 part/models.py:2193 part/models.py:2208
+#: part/models.py:2227 part/models.py:2245 part/models.py:2344
+#: part/models.py:2471 part/models.py:2561 part/models.py:2646
+#: part/models.py:2922 part/serializers.py:814
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -795,18 +796,18 @@ msgstr ""
#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800
#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682
#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517
-#: templates/js/translated/company.js:266
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:608
-#: templates/js/translated/company.js:868 templates/js/translated/order.js:105
-#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493
-#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613
-#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224
-#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586
+#: templates/js/translated/company.js:301
+#: templates/js/translated/company.js:531
+#: templates/js/translated/company.js:643
+#: templates/js/translated/company.js:904 templates/js/translated/order.js:106
+#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1638
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:3185
+#: templates/js/translated/order.js:3581 templates/js/translated/order.js:3807
+#: templates/js/translated/part.js:1172 templates/js/translated/part.js:1244
+#: templates/js/translated/part.js:1441 templates/js/translated/stock.js:586
#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504
-#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833
+#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2500
+#: templates/js/translated/stock.js:2695 templates/js/translated/stock.js:2829
msgid "Part"
msgstr "Детали"
@@ -823,7 +824,7 @@ msgid "SalesOrder to which this build is allocated"
msgstr ""
#: build/models.py:213 build/serializers.py:800
-#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979
+#: templates/js/translated/build.js:2114 templates/js/translated/order.js:3173
msgid "Source Location"
msgstr "Расположение источника"
@@ -863,8 +864,8 @@ msgstr "Статус сборки"
msgid "Build status code"
msgstr "Код статуса сборки"
-#: build/models.py:251 build/serializers.py:225 order/serializers.py:447
-#: stock/models.py:662 templates/js/translated/order.js:1353
+#: build/models.py:251 build/serializers.py:225 order/serializers.py:464
+#: stock/models.py:662 templates/js/translated/order.js:1496
msgid "Batch Code"
msgstr "Код партии"
@@ -873,11 +874,11 @@ msgid "Batch code for this build output"
msgstr "Код партии для этого вывода сборки"
#: build/models.py:258 order/models.py:86 part/models.py:938
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2844
msgid "Creation Date"
msgstr "Дата создания"
-#: build/models.py:262 order/models.py:648
+#: build/models.py:262 order/models.py:652
msgid "Target completion date"
msgstr "Целевая дата завершения"
@@ -904,10 +905,10 @@ msgstr "Пользователь, выпустивший этот заказ н
#: build/models.py:289 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:100
-#: order/templates/order/order_base.html:179
+#: order/templates/order/order_base.html:185
#: order/templates/order/sales_order_base.html:183 part/models.py:942
#: report/templates/report/inventree_build_order_base.html:158
-#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860
+#: templates/js/translated/build.js:2574 templates/js/translated/order.js:2022
msgid "Responsible"
msgstr "Ответственный"
@@ -917,9 +918,9 @@ msgstr "Пользователь, ответственный за этот за
#: build/models.py:295 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
-#: company/templates/company/supplier_part.html:153
+#: company/templates/company/supplier_part.html:165
#: part/templates/part/part_base.html:346 stock/models.py:656
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr "Внешняя ссылка"
@@ -957,11 +958,11 @@ msgstr "Элемент сборки должен указать вывод сб
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1188 order/models.py:1379
+#: build/models.py:1188 order/models.py:1383
msgid "Stock item is over-allocated"
msgstr "Предмет на складе перераспределен"
-#: build/models.py:1194 order/models.py:1382
+#: build/models.py:1194 order/models.py:1386
msgid "Allocation quantity must be greater than zero"
msgstr "Выделенное количество должно быть больше нуля"
@@ -973,7 +974,7 @@ msgstr "Количество должно быть 1 для сериализов
msgid "Selected stock item not found in BOM"
msgstr "Выбранная единица хранения не найдена в BOM"
-#: build/models.py:1326 stock/templates/stock/item_base.html:172
+#: build/models.py:1326 stock/templates/stock/item_base.html:175
#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496
#: templates/navbar.html:38
msgid "Build"
@@ -983,18 +984,18 @@ msgstr "Сборка"
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015
-#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754
+#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1035
+#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754
#: stock/serializers.py:880 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:197
#: templates/js/translated/build.js:774 templates/js/translated/build.js:779
#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679
-#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992
-#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299
-#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486
+#: templates/js/translated/order.js:107 templates/js/translated/order.js:3186
+#: templates/js/translated/order.js:3488 templates/js/translated/order.js:3493
+#: templates/js/translated/order.js:3588 templates/js/translated/order.js:3680
#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752
-#: templates/js/translated/stock.js:2577
+#: templates/js/translated/stock.js:2573
msgid "Stock Item"
msgstr "Предметы на складе"
@@ -1004,11 +1005,11 @@ msgstr "Исходный складской предмет"
#: build/models.py:1356 build/serializers.py:193
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1697
-#: company/templates/company/supplier_part.html:279 order/models.py:897
-#: order/models.py:1423 order/serializers.py:1155
+#: build/templates/build/detail.html:34 common/models.py:1701
+#: company/templates/company/supplier_part.html:291 order/models.py:901
+#: order/models.py:1427 order/serializers.py:1209
#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40
-#: part/models.py:2654 part/templates/part/detail.html:951
+#: part/models.py:2662 part/templates/part/detail.html:951
#: part/templates/part/detail.html:1037
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -1017,8 +1018,8 @@ msgstr "Исходный складской предмет"
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:291 stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
+#: stock/serializers.py:291 stock/templates/stock/item_base.html:290
+#: stock/templates/stock/item_base.html:298
#: templates/email/build_order_completed.html:18
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691
#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458
@@ -1026,16 +1027,16 @@ msgstr "Исходный складской предмет"
#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708
#: templates/js/translated/build.js:2129
#: templates/js/translated/model_renderers.js:120
-#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043
-#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313
-#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492
-#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143
-#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176
-#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686
-#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458
+#: templates/js/translated/order.js:123 templates/js/translated/order.js:1137
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:2490
+#: templates/js/translated/order.js:3187 templates/js/translated/order.js:3507
+#: templates/js/translated/order.js:3594 templates/js/translated/order.js:3686
+#: templates/js/translated/order.js:3829 templates/js/translated/order.js:4337
+#: templates/js/translated/part.js:1036 templates/js/translated/part.js:2205
+#: templates/js/translated/part.js:2674 templates/js/translated/part.js:2715
+#: templates/js/translated/part.js:2793 templates/js/translated/stock.js:458
#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782
-#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2707
msgid "Quantity"
msgstr "Количество"
@@ -1077,7 +1078,7 @@ msgid "Enter quantity for build output"
msgstr "Введите количество для вывода сборки"
#: build/serializers.py:208 build/serializers.py:665 order/models.py:318
-#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545
+#: order/serializers.py:304 order/serializers.py:459 part/serializers.py:545
#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251
#: stock/serializers.py:300
msgid "Quantity must be greater than zero"
@@ -1091,8 +1092,8 @@ msgstr ""
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159
-#: stock/serializers.py:309 templates/js/translated/order.js:1364
+#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213
+#: stock/serializers.py:309 templates/js/translated/order.js:1507
#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459
msgid "Serial Numbers"
msgstr "Серийные номера"
@@ -1117,18 +1118,18 @@ msgstr ""
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532
+#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552
#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532
#: stock/serializers.py:915 stock/serializers.py:1148
-#: stock/templates/stock/item_base.html:385
+#: stock/templates/stock/item_base.html:388
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786
-#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391
-#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411
-#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500
+#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1534
+#: templates/js/translated/order.js:3500 templates/js/translated/order.js:3605
+#: templates/js/translated/order.js:3613 templates/js/translated/order.js:3694
#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588
#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960
-#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2514
msgid "Location"
msgstr "Расположение"
@@ -1137,12 +1138,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:373 build/templates/build/build_base.html:145
-#: build/templates/build/detail.html:62 order/models.py:642
-#: order/serializers.py:465 stock/templates/stock/item_base.html:418
+#: build/templates/build/detail.html:62 order/models.py:646
+#: order/serializers.py:482 stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546
-#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830
-#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829
-#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727
+#: templates/js/translated/order.js:1643 templates/js/translated/order.js:1992
+#: templates/js/translated/order.js:2836 templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:2591 templates/js/translated/stock.js:2723
msgid "Status"
msgstr "Статус"
@@ -1202,7 +1203,7 @@ msgstr ""
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:527
+#: build/serializers.py:527 order/serializers.py:208 order/serializers.py:1103
msgid "Accept Incomplete"
msgstr ""
@@ -1218,8 +1219,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772
-#: part/models.py:2906
+#: build/serializers.py:577 build/serializers.py:622 part/models.py:2780
+#: part/models.py:2914
msgid "BOM Item"
msgstr "BOM Компонент"
@@ -1239,7 +1240,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr "Компонент должен быть в наличии"
-#: build/serializers.py:709 order/serializers.py:1073
+#: build/serializers.py:709 order/serializers.py:1093
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Превышено доступное количество ({q})"
@@ -1256,7 +1257,7 @@ msgstr ""
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:750 order/serializers.py:1319
+#: build/serializers.py:750 order/serializers.py:1373
msgid "Allocation items must be provided"
msgstr ""
@@ -1371,13 +1372,13 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:154
-#: build/templates/build/detail.html:131 order/models.py:910
-#: order/templates/order/order_base.html:165
+#: build/templates/build/detail.html:131 order/models.py:914
+#: order/templates/order/order_base.html:171
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:125
-#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847
-#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658
-#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042
+#: templates/js/translated/build.js:2586 templates/js/translated/order.js:2009
+#: templates/js/translated/order.js:2351 templates/js/translated/order.js:2852
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1051
msgid "Target Date"
msgstr "Целевая дата"
@@ -1388,7 +1389,7 @@ msgstr ""
#: build/templates/build/build_base.html:159
#: build/templates/build/build_base.html:204
-#: order/templates/order/order_base.html:101
+#: order/templates/order/order_base.html:107
#: order/templates/order/sales_order_base.html:94
#: templates/js/translated/table_filters.js:320
#: templates/js/translated/table_filters.js:361
@@ -1404,15 +1405,15 @@ msgid "Completed"
msgstr "Завершённые"
#: build/templates/build/build_base.html:179
-#: build/templates/build/detail.html:94 order/models.py:1105
-#: order/models.py:1199 order/models.py:1330
+#: build/templates/build/detail.html:94 order/models.py:1109
+#: order/models.py:1203 order/models.py:1334
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:365
+#: stock/templates/stock/item_base.html:368
#: templates/email/overdue_sales_order.html:15
-#: templates/js/translated/order.js:2604
+#: templates/js/translated/order.js:2798
msgid "Sales Order"
msgstr "Заказ покупателя"
@@ -1438,8 +1439,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1023
-#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199
+#: build/templates/build/detail.html:49 order/models.py:1027
+#: templates/js/translated/order.js:1644 templates/js/translated/order.js:2393
msgid "Destination"
msgstr "Назначение"
@@ -1452,18 +1453,18 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:165
+#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1215
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843
-#: templates/js/translated/stock.js:2734
+#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1839
+#: templates/js/translated/stock.js:2730
#: templates/js/translated/table_filters.js:159
#: templates/js/translated/table_filters.js:250
msgid "Batch"
msgstr "Партия"
#: build/templates/build/detail.html:126
-#: order/templates/order/order_base.html:152
+#: order/templates/order/order_base.html:158
#: order/templates/order/sales_order_base.html:158
#: templates/js/translated/build.js:2554
msgid "Created"
@@ -1516,7 +1517,7 @@ msgstr ""
#: build/templates/build/detail.html:187
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:85
-#: part/templates/part/category.html:183 templates/js/translated/order.js:1083
+#: part/templates/part/category.html:183 templates/js/translated/order.js:1177
msgid "Order Parts"
msgstr "Заказать детали"
@@ -1851,7 +1852,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:951 part/models.py:2465 report/models.py:158
+#: common/models.py:951 part/models.py:2473 report/models.py:158
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:484
msgid "Template"
@@ -1861,7 +1862,7 @@ msgstr "Шаблон"
msgid "Parts are templates by default"
msgstr "По умолчанию детали являются шаблонами"
-#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446
+#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1454
#: templates/js/translated/table_filters.js:176
#: templates/js/translated/table_filters.js:447
msgid "Assembly"
@@ -2275,349 +2276,349 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1342 common/models.py:1658
+#: common/models.py:1344 common/models.py:1662
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1364
+#: common/models.py:1366
msgid "Show subscribed parts"
msgstr "Показывать детали, на которые включены уведомления"
-#: common/models.py:1365
+#: common/models.py:1367
msgid "Show subscribed parts on the homepage"
msgstr "Показывать детали, на которые включены уведомления, на главной странице"
-#: common/models.py:1371
+#: common/models.py:1373
msgid "Show subscribed categories"
msgstr "Показывать категории, на которые включены уведомления"
-#: common/models.py:1372
+#: common/models.py:1374
msgid "Show subscribed part categories on the homepage"
msgstr "Показывать категории, на которые включены уведомления, на главной странице"
-#: common/models.py:1378
+#: common/models.py:1380
msgid "Show latest parts"
msgstr "Показывать последние детали"
-#: common/models.py:1379
+#: common/models.py:1381
msgid "Show latest parts on the homepage"
msgstr "Показывать последние детали на главной странице"
-#: common/models.py:1385
+#: common/models.py:1387
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1386
+#: common/models.py:1388
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1392
+#: common/models.py:1394
msgid "Show unvalidated BOMs"
msgstr "Показывать непроверенные BOMы"
-#: common/models.py:1393
+#: common/models.py:1395
msgid "Show BOMs that await validation on the homepage"
msgstr "Показывать BOMы, ожидающие проверки, на главной странице"
-#: common/models.py:1399
+#: common/models.py:1401
msgid "Show recent stock changes"
msgstr "Показывать изменившиеся складские запасы"
-#: common/models.py:1400
+#: common/models.py:1402
msgid "Show recently changed stock items on the homepage"
msgstr "Показывать единицы хранения с недавно изменившимися складскими запасами на главной странице"
-#: common/models.py:1406
+#: common/models.py:1408
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1407
+#: common/models.py:1409
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1413
+#: common/models.py:1415
msgid "Show low stock"
msgstr "Показывать низкие складские запасы"
-#: common/models.py:1414
+#: common/models.py:1416
msgid "Show low stock items on the homepage"
msgstr "Показывать единицы хранения с низкими складскими запасами на главной странице"
-#: common/models.py:1420
+#: common/models.py:1422
msgid "Show depleted stock"
msgstr "Показывать закончившиеся детали"
-#: common/models.py:1421
+#: common/models.py:1423
msgid "Show depleted stock items on the homepage"
msgstr "Показывать закончившиеся на складе единицы хранения на главной странице"
-#: common/models.py:1427
+#: common/models.py:1429
msgid "Show needed stock"
msgstr "Показывать требуемые детали"
-#: common/models.py:1428
+#: common/models.py:1430
msgid "Show stock items needed for builds on the homepage"
msgstr "Показывать требуемые для сборки единицы хранения на главной странице"
-#: common/models.py:1434
+#: common/models.py:1436
msgid "Show expired stock"
msgstr "Показывать просрочку"
-#: common/models.py:1435
+#: common/models.py:1437
msgid "Show expired stock items on the homepage"
msgstr "Показывать единицы хранения с истёкшим сроком годности на главной странице"
-#: common/models.py:1441
+#: common/models.py:1443
msgid "Show stale stock"
msgstr "Показывать залежалые"
-#: common/models.py:1442
+#: common/models.py:1444
msgid "Show stale stock items on the homepage"
msgstr "Показывать залежалые единицы хранения на главной странице"
-#: common/models.py:1448
+#: common/models.py:1450
msgid "Show pending builds"
msgstr "Показывать незавершённые сборки"
-#: common/models.py:1449
+#: common/models.py:1451
msgid "Show pending builds on the homepage"
msgstr "Показывать незавершённые сборки на главной странице"
-#: common/models.py:1455
+#: common/models.py:1457
msgid "Show overdue builds"
msgstr "Показывать просроченные сборки"
-#: common/models.py:1456
+#: common/models.py:1458
msgid "Show overdue builds on the homepage"
msgstr "Показывать просроченные сборки на главной странице"
-#: common/models.py:1462
+#: common/models.py:1464
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1463
+#: common/models.py:1465
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1469
+#: common/models.py:1471
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1470
+#: common/models.py:1472
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1476
+#: common/models.py:1478
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1477
+#: common/models.py:1479
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1483
+#: common/models.py:1485
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1484
+#: common/models.py:1486
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1490
+#: common/models.py:1492
msgid "Inline label display"
msgstr ""
-#: common/models.py:1491
+#: common/models.py:1493
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1499
msgid "Inline report display"
msgstr ""
-#: common/models.py:1498
+#: common/models.py:1500
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1506
msgid "Search Parts"
msgstr ""
-#: common/models.py:1505
+#: common/models.py:1507
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1513
msgid "Seach Supplier Parts"
msgstr ""
-#: common/models.py:1512
+#: common/models.py:1514
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1520
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:1519
+#: common/models.py:1521
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:1525
+#: common/models.py:1527
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1526
+#: common/models.py:1528
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1532
+#: common/models.py:1534
msgid "Search Categories"
msgstr ""
-#: common/models.py:1533
+#: common/models.py:1535
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1539
+#: common/models.py:1541
msgid "Search Stock"
msgstr ""
-#: common/models.py:1540
+#: common/models.py:1542
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1546
+#: common/models.py:1548
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1547
+#: common/models.py:1549
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1553
+#: common/models.py:1555
msgid "Search Locations"
msgstr ""
-#: common/models.py:1554
+#: common/models.py:1556
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1560
+#: common/models.py:1562
msgid "Search Companies"
msgstr ""
-#: common/models.py:1561
+#: common/models.py:1563
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1567
+#: common/models.py:1569
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1568
+#: common/models.py:1570
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1574
+#: common/models.py:1576
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1575
+#: common/models.py:1577
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1581
+#: common/models.py:1583
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1582
+#: common/models.py:1584
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1588
+#: common/models.py:1590
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1591
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1595
+#: common/models.py:1597
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1598
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1602
+#: common/models.py:1604
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1605
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1609
+#: common/models.py:1611
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1610
+#: common/models.py:1612
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1616
+#: common/models.py:1618
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1617
+#: common/models.py:1619
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1623
+#: common/models.py:1625
msgid "Date Format"
msgstr ""
-#: common/models.py:1624
+#: common/models.py:1626
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1638 part/templates/part/detail.html:41
+#: common/models.py:1640 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1641
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1698
+#: common/models.py:1702
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1705 company/serializers.py:366
-#: company/templates/company/supplier_part.html:284 order/models.py:938
-#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181
+#: common/models.py:1709 company/serializers.py:372
+#: company/templates/company/supplier_part.html:296 order/models.py:942
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:2210
msgid "Price"
msgstr "Цена"
-#: common/models.py:1706
+#: common/models.py:1710
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1866 common/models.py:2044
+#: common/models.py:1870 common/models.py:2048
msgid "Endpoint"
msgstr ""
-#: common/models.py:1867
+#: common/models.py:1871
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1876
+#: common/models.py:1880
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1881 part/models.py:921 plugin/models.py:100
+#: common/models.py:1885 part/models.py:921 plugin/models.py:100
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:104
#: templates/js/translated/table_filters.js:316
@@ -2625,67 +2626,67 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1886
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1896
+#: common/models.py:1900
msgid "Token"
msgstr ""
-#: common/models.py:1897
+#: common/models.py:1901
msgid "Token for access"
msgstr ""
-#: common/models.py:1904
+#: common/models.py:1908
msgid "Secret"
msgstr ""
-#: common/models.py:1905
+#: common/models.py:1909
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2011
+#: common/models.py:2015
msgid "Message ID"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2016
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2020
+#: common/models.py:2024
msgid "Host"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2025
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2032
msgid "Header"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2033
msgid "Header of this message"
msgstr ""
-#: common/models.py:2035
+#: common/models.py:2039
msgid "Body"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2040
msgid "Body of this message"
msgstr ""
-#: common/models.py:2045
+#: common/models.py:2049
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2054
msgid "Worked on"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2055
msgid "Was the work on this message finished?"
msgstr ""
@@ -2747,7 +2748,7 @@ msgstr "Описание компании"
#: company/models.py:105 company/templates/company/company_base.html:100
#: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:413
+#: templates/js/translated/company.js:448
msgid "Website"
msgstr "Сайт"
@@ -2824,7 +2825,7 @@ msgstr "производитель"
msgid "Does this company manufacture parts?"
msgstr "Является ли компания производителем деталей?"
-#: company/models.py:148 company/serializers.py:372
+#: company/models.py:148 company/serializers.py:378
#: company/templates/company/company_base.html:106 part/serializers.py:153
#: part/serializers.py:184 stock/serializers.py:178
msgid "Currency"
@@ -2834,24 +2835,24 @@ msgstr "Валюта"
msgid "Default currency used for this company"
msgstr "Для этой компании используется валюта по умолчанию"
-#: company/models.py:248 company/models.py:481 stock/models.py:598
+#: company/models.py:248 company/models.py:482 stock/models.py:598
#: stock/serializers.py:85 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:542
msgid "Base Part"
msgstr "Базовая деталь"
-#: company/models.py:252 company/models.py:485
+#: company/models.py:252 company/models.py:486
msgid "Select part"
msgstr "Выберите деталь"
#: company/models.py:263 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:124
-#: stock/templates/stock/item_base.html:207
-#: templates/js/translated/company.js:397
-#: templates/js/translated/company.js:498
-#: templates/js/translated/company.js:633
-#: templates/js/translated/company.js:919 templates/js/translated/part.js:236
+#: company/templates/company/supplier_part.html:129
+#: stock/templates/stock/item_base.html:210
+#: templates/js/translated/company.js:432
+#: templates/js/translated/company.js:533
+#: templates/js/translated/company.js:668
+#: templates/js/translated/company.js:956 templates/js/translated/part.js:236
#: templates/js/translated/table_filters.js:419
msgid "Manufacturer"
msgstr "Производитель"
@@ -2861,12 +2862,12 @@ msgid "Select manufacturer"
msgstr "Выберите производителя"
#: company/models.py:270 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:132
-#: templates/js/translated/company.js:269
-#: templates/js/translated/company.js:497
-#: templates/js/translated/company.js:649
-#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077
-#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027
+#: company/templates/company/supplier_part.html:137
+#: templates/js/translated/company.js:304
+#: templates/js/translated/company.js:532
+#: templates/js/translated/company.js:684
+#: templates/js/translated/company.js:975 templates/js/translated/order.js:2239
+#: templates/js/translated/part.js:247 templates/js/translated/part.js:1025
msgid "MPN"
msgstr ""
@@ -2882,10 +2883,10 @@ msgstr "Ссылка на сайт производителя"
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:328 company/models.py:352 company/models.py:504
+#: company/models.py:328 company/models.py:352 company/models.py:505
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:220
msgid "Manufacturer Part"
msgstr "Деталь производителя"
@@ -2895,8 +2896,8 @@ msgstr "Наименование параметра"
#: company/models.py:365
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2095 templates/js/translated/company.js:546
-#: templates/js/translated/company.js:764 templates/js/translated/part.js:849
+#: stock/models.py:2095 templates/js/translated/company.js:581
+#: templates/js/translated/company.js:799 templates/js/translated/part.js:847
#: templates/js/translated/stock.js:1360
msgid "Value"
msgstr "Значение"
@@ -2905,10 +2906,10 @@ msgstr "Значение"
msgid "Parameter value"
msgstr "Значение параметра"
-#: company/models.py:372 part/models.py:888 part/models.py:2425
+#: company/models.py:372 part/models.py:888 part/models.py:2433
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:352
-#: templates/js/translated/company.js:770 templates/js/translated/part.js:855
+#: templates/js/translated/company.js:805 templates/js/translated/part.js:853
msgid "Units"
msgstr "Ед.изм"
@@ -2916,106 +2917,119 @@ msgstr "Ед.изм"
msgid "Parameter units"
msgstr "Единицы измерения"
-#: company/models.py:449
+#: company/models.py:450
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:491 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:108 order/models.py:258
-#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:224
+#: company/models.py:492 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:113 order/models.py:258
+#: order/templates/order/order_base.html:121 part/bom.py:237 part/bom.py:265
+#: stock/templates/stock/item_base.html:227
#: templates/email/overdue_purchase_order.html:16
-#: templates/js/translated/company.js:268
-#: templates/js/translated/company.js:401
-#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813
-#: templates/js/translated/part.js:217 templates/js/translated/part.js:995
+#: templates/js/translated/company.js:303
+#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:929 templates/js/translated/order.js:1975
+#: templates/js/translated/part.js:217 templates/js/translated/part.js:993
#: templates/js/translated/table_filters.js:423
msgid "Supplier"
msgstr "Поставщик"
-#: company/models.py:492 templates/js/translated/part.js:218
+#: company/models.py:493 templates/js/translated/part.js:218
msgid "Select supplier"
msgstr "Выберите поставщика"
-#: company/models.py:497 company/templates/company/supplier_part.html:118
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267
-#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228
-#: templates/js/translated/part.js:1013
+#: company/models.py:498 company/templates/company/supplier_part.html:123
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:302
+#: templates/js/translated/order.js:2226 templates/js/translated/part.js:228
+#: templates/js/translated/part.js:1011
msgid "SKU"
msgstr ""
-#: company/models.py:498 templates/js/translated/part.js:229
+#: company/models.py:499 templates/js/translated/part.js:229
msgid "Supplier stock keeping unit"
msgstr "Код поставщика"
-#: company/models.py:505
+#: company/models.py:506
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:511
+#: company/models.py:512
msgid "URL for external supplier part link"
msgstr "Ссылка на сайт поставщика"
-#: company/models.py:517
+#: company/models.py:518
msgid "Supplier part description"
msgstr ""
-#: company/models.py:522 company/templates/company/supplier_part.html:146
-#: part/models.py:2666 part/templates/part/upload_bom.html:59
+#: company/models.py:523 company/templates/company/supplier_part.html:158
+#: part/models.py:2674 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399
msgid "Note"
msgstr "Заметка"
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "base cost"
msgstr ""
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:528 company/templates/company/supplier_part.html:139
-#: stock/models.py:624 stock/templates/stock/item_base.html:240
-#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976
+#: company/models.py:529 company/templates/company/supplier_part.html:144
+#: stock/models.py:624 stock/templates/stock/item_base.html:243
+#: templates/js/translated/company.js:991 templates/js/translated/stock.js:1972
msgid "Packaging"
msgstr "Упаковка"
-#: company/models.py:528
+#: company/models.py:529
msgid "Part packaging"
msgstr ""
-#: company/models.py:530 part/models.py:1783
+#: company/models.py:532 company/serializers.py:242
+#: company/templates/company/supplier_part.html:151
+#: templates/js/translated/company.js:996 templates/js/translated/order.js:820
+#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:2270 templates/js/translated/order.js:2287
+#: templates/js/translated/part.js:1043 templates/js/translated/part.js:1095
+msgid "Pack Quantity"
+msgstr ""
+
+#: company/models.py:533
+msgid "Unit quantity supplied in a single pack"
+msgstr ""
+
+#: company/models.py:539 part/models.py:1783
msgid "multiple"
msgstr ""
-#: company/models.py:530
+#: company/models.py:539
msgid "Order multiple"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part.html:94
+#: company/models.py:547 company/templates/company/supplier_part.html:99
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823
-#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979
-#: templates/js/translated/part.js:600 templates/js/translated/part.js:603
+#: templates/js/translated/bom.js:915 templates/js/translated/build.js:1823
+#: templates/js/translated/build.js:2686 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:601
#: templates/js/translated/table_filters.js:186
msgid "Available"
msgstr ""
-#: company/models.py:539
+#: company/models.py:548
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:543
+#: company/models.py:552
msgid "Availability Updated"
msgstr ""
-#: company/models.py:544
+#: company/models.py:553
msgid "Date of last update of availability data"
msgstr ""
-#: company/models.py:672
+#: company/models.py:681
msgid "last updated"
msgstr ""
@@ -3029,12 +3043,12 @@ msgstr "Код валюты"
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386
+#: templates/InvenTree/search.html:179 templates/js/translated/company.js:421
msgid "Company"
msgstr "Компания"
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:624
+#: templates/js/translated/order.js:689
msgid "Create Purchase Order"
msgstr "Создать заказ на закупку"
@@ -3047,7 +3061,7 @@ msgid "Edit company information"
msgstr "Редактировать информацию о компании"
#: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:329
+#: templates/js/translated/company.js:364
msgid "Edit Company"
msgstr "Редактировать компанию"
@@ -3070,13 +3084,13 @@ msgstr "Загрузить новое изображение"
msgid "Download image from URL"
msgstr "Скачать изображение по ссылке"
-#: company/templates/company/company_base.html:86 order/models.py:637
+#: company/templates/company/company_base.html:86 order/models.py:641
#: order/templates/order/sales_order_base.html:116 stock/models.py:643
#: stock/models.py:644 stock/serializers.py:809
-#: stock/templates/stock/item_base.html:396
+#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
-#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619
-#: templates/js/translated/stock.js:2559
+#: templates/js/translated/company.js:428 templates/js/translated/order.js:2813
+#: templates/js/translated/stock.js:2555
#: templates/js/translated/table_filters.js:427
msgid "Customer"
msgstr "Покупатель"
@@ -3211,23 +3225,23 @@ msgid "Manufacturers"
msgstr "Производители"
#: company/templates/company/manufacturer_part.html:35
-#: company/templates/company/supplier_part.html:186
+#: company/templates/company/supplier_part.html:198
#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80
msgid "Order part"
msgstr ""
#: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:681
+#: templates/js/translated/company.js:716
msgid "Edit manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:682
+#: templates/js/translated/company.js:717
msgid "Delete manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:65
-#: company/templates/company/supplier_part.html:77
+#: company/templates/company/supplier_part.html:82
msgid "Internal Part"
msgstr ""
@@ -3250,8 +3264,8 @@ msgstr "Удалить деталь поставщика"
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:371 part/templates/part/detail.html:401
-#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34
-#: users/models.py:220
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:34
+#: users/models.py:222
msgid "Delete"
msgstr "Удалить"
@@ -3296,9 +3310,9 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:607
-#: stock/templates/stock/item_base.html:233
-#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041
-#: templates/js/translated/stock.js:1933
+#: stock/templates/stock/item_base.html:236
+#: templates/js/translated/company.js:945 templates/js/translated/order.js:1135
+#: templates/js/translated/stock.js:1929
msgid "Supplier Part"
msgstr "Деталь поставщика"
@@ -3308,7 +3322,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:40
#: company/templates/company/supplier_part.html:41
-#: company/templates/company/supplier_part.html:187
+#: company/templates/company/supplier_part.html:199
#: part/templates/part/detail.html:88
msgid "Order Part"
msgstr ""
@@ -3320,81 +3334,87 @@ msgstr ""
#: company/templates/company/supplier_part.html:48
#: company/templates/company/supplier_part.html:49
-#: templates/js/translated/company.js:212
+#: templates/js/translated/company.js:247
msgid "Edit Supplier Part"
msgstr "Редактировать деталь поставщика"
#: company/templates/company/supplier_part.html:53
+#: company/templates/company/supplier_part.html:54
+#: templates/js/translated/company.js:222
+msgid "Duplicate Supplier Part"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:58
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:54
+#: company/templates/company/supplier_part.html:59
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:112
+#: company/templates/company/supplier_part.html:117
msgid "No supplier information available"
msgstr ""
-#: company/templates/company/supplier_part.html:165
+#: company/templates/company/supplier_part.html:177
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr ""
-#: company/templates/company/supplier_part.html:168
+#: company/templates/company/supplier_part.html:180
#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181
msgid "Create new stock item"
msgstr "Создать единицу хранения"
-#: company/templates/company/supplier_part.html:169
+#: company/templates/company/supplier_part.html:181
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182
#: templates/js/translated/stock.js:435
msgid "New Stock Item"
msgstr "Новая единица хранения"
-#: company/templates/company/supplier_part.html:182
+#: company/templates/company/supplier_part.html:194
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr ""
-#: company/templates/company/supplier_part.html:207
+#: company/templates/company/supplier_part.html:219
#: part/templates/part/prices.html:10
msgid "Pricing Information"
msgstr "Информация о цене"
-#: company/templates/company/supplier_part.html:212
-#: company/templates/company/supplier_part.html:326
-#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253
+#: company/templates/company/supplier_part.html:224
+#: company/templates/company/supplier_part.html:338
+#: part/templates/part/prices.html:276 templates/js/translated/part.js:2282
msgid "Add Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:250
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:252
-#: templates/js/translated/part.js:2263
+#: company/templates/company/supplier_part.html:264
+#: templates/js/translated/part.js:2292
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:266
-#: templates/js/translated/part.js:2277
+#: company/templates/company/supplier_part.html:278
+#: templates/js/translated/part.js:2306
msgid "Edit Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:291
+#: company/templates/company/supplier_part.html:303
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part.html:292
+#: company/templates/company/supplier_part.html:304
msgid "Delete price break"
msgstr ""
-#: company/templates/company/supplier_part.html:301
+#: company/templates/company/supplier_part.html:313
msgid "Last updated"
msgstr "Последнее обновление"
-#: company/templates/company/supplier_part.html:382
+#: company/templates/company/supplier_part.html:394
msgid "Update Part Availability"
msgstr ""
@@ -3404,8 +3424,8 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313
-#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959
+#: templates/js/translated/part.js:749 templates/js/translated/part.js:1334
+#: templates/js/translated/part.js:1495 templates/js/translated/stock.js:959
#: templates/js/translated/stock.js:1754 templates/navbar.html:31
msgid "Stock"
msgstr "Склад"
@@ -3432,7 +3452,7 @@ msgstr ""
#: stock/templates/stock/location.html:178
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2436 users/models.py:40
+#: templates/js/translated/stock.js:2432 users/models.py:40
msgid "Stock Items"
msgstr "Детали на складе"
@@ -3534,7 +3554,7 @@ msgstr ""
msgid "Order description"
msgstr ""
-#: order/models.py:84 order/models.py:1246
+#: order/models.py:84 order/models.py:1250
msgid "Link to external page"
msgstr ""
@@ -3550,11 +3570,11 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:241 order/models.py:624
+#: order/models.py:241 order/models.py:628
msgid "Order reference"
msgstr ""
-#: order/models.py:249 order/models.py:642
+#: order/models.py:249 order/models.py:646
msgid "Purchase order status"
msgstr ""
@@ -3562,8 +3582,8 @@ msgstr ""
msgid "Company from which the items are being ordered"
msgstr "Компания, в которой детали заказываются"
-#: order/models.py:262 order/templates/order/order_base.html:127
-#: templates/js/translated/order.js:1822
+#: order/models.py:262 order/templates/order/order_base.html:133
+#: templates/js/translated/order.js:1984
msgid "Supplier Reference"
msgstr ""
@@ -3603,245 +3623,245 @@ msgstr ""
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:638
+#: order/models.py:642
msgid "Company to which the items are being sold"
msgstr "Компания, которой детали продаются"
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer Reference "
msgstr ""
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:649
+#: order/models.py:653
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:652 order/models.py:1204
-#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828
+#: order/models.py:656 order/models.py:1208
+#: templates/js/translated/order.js:2860 templates/js/translated/order.js:3022
msgid "Shipment Date"
msgstr ""
-#: order/models.py:659
+#: order/models.py:663
msgid "shipped by"
msgstr ""
-#: order/models.py:714
+#: order/models.py:718
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:718
+#: order/models.py:722
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:721
+#: order/models.py:725 templates/js/translated/order.js:419
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:724
+#: order/models.py:728
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:898
+#: order/models.py:902
msgid "Item quantity"
msgstr ""
-#: order/models.py:904
+#: order/models.py:908
msgid "Line item reference"
msgstr ""
-#: order/models.py:906
+#: order/models.py:910
msgid "Line item notes"
msgstr ""
-#: order/models.py:911
+#: order/models.py:915
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:929
+#: order/models.py:933
msgid "Context"
msgstr ""
-#: order/models.py:930
+#: order/models.py:934
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:939
+#: order/models.py:943
msgid "Unit price"
msgstr ""
-#: order/models.py:969
+#: order/models.py:973
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:977
+#: order/models.py:981
msgid "deleted"
msgstr ""
-#: order/models.py:983 order/models.py:1063 order/models.py:1104
-#: order/models.py:1198 order/models.py:1330
-#: templates/js/translated/order.js:3284
+#: order/models.py:987 order/models.py:1067 order/models.py:1108
+#: order/models.py:1202 order/models.py:1334
+#: templates/js/translated/order.js:3478
msgid "Order"
msgstr ""
-#: order/models.py:984 order/models.py:1063
+#: order/models.py:988 order/models.py:1067
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:179
+#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
-#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042
-#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972
-#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540
+#: templates/js/translated/order.js:619 templates/js/translated/order.js:1136
+#: templates/js/translated/order.js:1959 templates/js/translated/part.js:970
+#: templates/js/translated/stock.js:1909 templates/js/translated/stock.js:2536
msgid "Purchase Order"
msgstr "Заказ на закупку"
-#: order/models.py:1002
+#: order/models.py:1006
msgid "Supplier part"
msgstr ""
-#: order/models.py:1009 order/templates/order/order_base.html:172
-#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105
+#: order/models.py:1013 order/templates/order/order_base.html:178
+#: templates/js/translated/order.js:1641 templates/js/translated/order.js:2373
+#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1125
#: templates/js/translated/table_filters.js:338
msgid "Received"
msgstr ""
-#: order/models.py:1010
+#: order/models.py:1014
msgid "Number of items received"
msgstr ""
-#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734
-#: stock/serializers.py:169 stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1964
+#: order/models.py:1021 part/templates/part/prices.html:181 stock/models.py:734
+#: stock/serializers.py:169 stock/templates/stock/item_base.html:189
+#: templates/js/translated/stock.js:1960
msgid "Purchase Price"
msgstr "Закупочная цена"
-#: order/models.py:1018
+#: order/models.py:1022
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1026
+#: order/models.py:1030
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1092
+#: order/models.py:1096
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1097
+#: order/models.py:1101
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1123 part/templates/part/part_pricing.html:115
+#: order/models.py:1127 part/templates/part/part_pricing.html:115
#: part/templates/part/prices.html:121 part/templates/part/prices.html:290
msgid "Sale Price"
msgstr "Цена продажи"
-#: order/models.py:1124
+#: order/models.py:1128
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1129
+#: order/models.py:1133
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1205
+#: order/models.py:1209
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1212
+#: order/models.py:1216
msgid "Checked By"
msgstr ""
-#: order/models.py:1213
+#: order/models.py:1217
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1220 order/models.py:1405 order/serializers.py:1170
-#: order/serializers.py:1294 templates/js/translated/model_renderers.js:314
+#: order/models.py:1224 order/models.py:1409 order/serializers.py:1224
+#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314
msgid "Shipment"
msgstr ""
-#: order/models.py:1221
+#: order/models.py:1225
msgid "Shipment number"
msgstr ""
-#: order/models.py:1225
+#: order/models.py:1229
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1231
+#: order/models.py:1235
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1232
+#: order/models.py:1236
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1239
+#: order/models.py:1243
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1240
+#: order/models.py:1244
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1258
+#: order/models.py:1262
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1261
+#: order/models.py:1265
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1364 order/models.py:1366
+#: order/models.py:1368 order/models.py:1370
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1370
+#: order/models.py:1374
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1372
+#: order/models.py:1376
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1375
+#: order/models.py:1379
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1385 order/serializers.py:1066
+#: order/models.py:1389 order/serializers.py:1086
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1388
+#: order/models.py:1392
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1389
+#: order/models.py:1393
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1397
+#: order/models.py:1401
msgid "Line"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1410
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1419 templates/js/translated/notification.js:55
+#: order/models.py:1423 templates/js/translated/notification.js:55
msgid "Item"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1424
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1423
+#: order/models.py:1427
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3853,111 +3873,119 @@ msgstr ""
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:294
+#: order/serializers.py:209 order/serializers.py:1104
+msgid "Allow order to be closed with incomplete line items"
+msgstr ""
+
+#: order/serializers.py:220 order/serializers.py:1115
+msgid "Order has incomplete line items"
+msgstr ""
+
+#: order/serializers.py:311
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:318
+#: order/serializers.py:335
msgid "Purchase price currency"
msgstr "Курс покупки валюты"
-#: order/serializers.py:337
+#: order/serializers.py:354
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:342
+#: order/serializers.py:359
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:348
+#: order/serializers.py:365
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:349
+#: order/serializers.py:366
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:413 order/serializers.py:1138
+#: order/serializers.py:430 order/serializers.py:1192
msgid "Line Item"
msgstr ""
-#: order/serializers.py:419
+#: order/serializers.py:436
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:429 order/serializers.py:533
+#: order/serializers.py:446 order/serializers.py:553
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:448 templates/js/translated/order.js:1354
+#: order/serializers.py:465 templates/js/translated/order.js:1497
msgid "Enter batch code for incoming stock items"
msgstr "Введите код партии для поступающих единиц хранения"
-#: order/serializers.py:456 templates/js/translated/order.js:1365
+#: order/serializers.py:473 templates/js/translated/order.js:1508
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:469
+#: order/serializers.py:486
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:470
+#: order/serializers.py:487
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:484
+#: order/serializers.py:501
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:507
+#: order/serializers.py:527
msgid "An integer quantity must be provided for trackable parts"
msgstr "Для отслеживаемых деталей должно быть указано целочисленное количество"
-#: order/serializers.py:549
+#: order/serializers.py:569
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:566
+#: order/serializers.py:586
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:577
+#: order/serializers.py:597
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:883
+#: order/serializers.py:903
msgid "Sale price currency"
msgstr "Курс продажи валюты"
-#: order/serializers.py:964
+#: order/serializers.py:984
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1027 order/serializers.py:1147
+#: order/serializers.py:1047 order/serializers.py:1201
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1049
+#: order/serializers.py:1069
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1160
+#: order/serializers.py:1214
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1182 order/serializers.py:1302
+#: order/serializers.py:1236 order/serializers.py:1356
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1185 order/serializers.py:1305
+#: order/serializers.py:1239 order/serializers.py:1359
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1235
+#: order/serializers.py:1289
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1245
+#: order/serializers.py:1299
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3993,83 +4021,83 @@ msgstr ""
msgid "Order actions"
msgstr "Действия с заказом"
-#: order/templates/order/order_base.html:45
+#: order/templates/order/order_base.html:46
#: order/templates/order/sales_order_base.html:58
msgid "Edit order"
msgstr ""
-#: order/templates/order/order_base.html:47
+#: order/templates/order/order_base.html:50
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr "Отменить заказ"
-#: order/templates/order/order_base.html:50
+#: order/templates/order/order_base.html:55
msgid "Duplicate order"
msgstr ""
-#: order/templates/order/order_base.html:55
+#: order/templates/order/order_base.html:61
msgid "Place order"
msgstr ""
-#: order/templates/order/order_base.html:59
+#: order/templates/order/order_base.html:65
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:61
+#: order/templates/order/order_base.html:67
#: order/templates/order/purchase_order_detail.html:30
msgid "Receive Items"
msgstr ""
-#: order/templates/order/order_base.html:63
+#: order/templates/order/order_base.html:69
msgid "Mark order as complete"
msgstr ""
-#: order/templates/order/order_base.html:65
+#: order/templates/order/order_base.html:71
#: order/templates/order/sales_order_base.html:68
msgid "Complete Order"
msgstr ""
-#: order/templates/order/order_base.html:87
+#: order/templates/order/order_base.html:93
#: order/templates/order/sales_order_base.html:80
msgid "Order Reference"
msgstr ""
-#: order/templates/order/order_base.html:92
+#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:85
msgid "Order Description"
msgstr ""
-#: order/templates/order/order_base.html:97
+#: order/templates/order/order_base.html:103
#: order/templates/order/sales_order_base.html:90
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:120
+#: order/templates/order/order_base.html:126
msgid "No suppplier information available"
msgstr ""
-#: order/templates/order/order_base.html:133
+#: order/templates/order/order_base.html:139
#: order/templates/order/sales_order_base.html:129
msgid "Completed Line Items"
msgstr ""
-#: order/templates/order/order_base.html:139
+#: order/templates/order/order_base.html:145
#: order/templates/order/sales_order_base.html:135
#: order/templates/order/sales_order_base.html:145
msgid "Incomplete"
msgstr ""
-#: order/templates/order/order_base.html:158
+#: order/templates/order/order_base.html:164
#: report/templates/report/inventree_build_order_base.html:121
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:186
+#: order/templates/order/order_base.html:192
#: order/templates/order/sales_order_base.html:190
msgid "Total cost"
msgstr ""
-#: order/templates/order/order_base.html:190
+#: order/templates/order/order_base.html:196
#: order/templates/order/sales_order_base.html:194
msgid "Total cost could not be calculated"
msgstr ""
@@ -4102,8 +4130,8 @@ msgstr "Выберите деталь поставщика"
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463
#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015
-#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443
-#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625
+#: templates/js/translated/order.js:1084 templates/js/translated/order.js:1586
+#: templates/js/translated/order.js:3097 templates/js/translated/stock.js:625
#: templates/js/translated/stock.js:793
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
@@ -4139,7 +4167,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:26
#: order/templates/order/sales_order_detail.html:22
#: order/templates/order/sales_order_detail.html:255
-#: templates/js/translated/order.js:663
+#: templates/js/translated/order.js:728
msgid "Add Line Item"
msgstr ""
@@ -4167,7 +4195,7 @@ msgstr ""
msgid "Order Notes"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:228
+#: order/templates/order/purchase_order_detail.html:232
msgid "Add Order Line"
msgstr ""
@@ -4185,12 +4213,12 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:231
+#: templates/js/translated/order.js:232
msgid "Complete Shipments"
msgstr ""
#: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:258
+#: templates/js/translated/order.js:397
msgid "Complete Sales Order"
msgstr ""
@@ -4199,7 +4227,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2632
+#: templates/js/translated/order.js:2826
msgid "Customer Reference"
msgstr ""
@@ -4223,7 +4251,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:72
-#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1116
#: templates/js/translated/build.js:1923
msgid "Actions"
msgstr "Действия"
@@ -4308,14 +4336,14 @@ msgid "Total Stock"
msgstr ""
#: part/bom.py:129 part/templates/part/part_base.html:189
-#: templates/js/translated/order.js:3724
+#: templates/js/translated/order.js:3918
msgid "Available Stock"
msgstr "Доступный запас"
#: part/bom.py:130 part/templates/part/part_base.html:207
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853
-#: templates/js/translated/part.js:590 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503
+#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1853
+#: templates/js/translated/part.js:588 templates/js/translated/part.js:608
+#: templates/js/translated/part.js:1337 templates/js/translated/part.js:1520
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr ""
@@ -4344,7 +4372,7 @@ msgstr ""
msgid "Icon (optional)"
msgstr ""
-#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16
+#: part/models.py:122 part/models.py:2516 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Категория детали"
@@ -4361,7 +4389,7 @@ msgstr ""
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146
+#: templates/js/translated/part.js:2004 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr "Детали"
@@ -4391,7 +4419,7 @@ msgstr ""
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:745 part/models.py:2562
+#: part/models.py:745 part/models.py:2570
msgid "Part name"
msgstr "Наименование детали"
@@ -4424,11 +4452,11 @@ msgstr "Ключевые слова"
msgid "Part keywords to improve visibility in search results"
msgstr "Ключевые слова для улучшения видимости в результатах поиска"
-#: part/models.py:783 part/models.py:2257 part/models.py:2507
+#: part/models.py:783 part/models.py:2265 part/models.py:2515
#: part/templates/part/part_base.html:257
#: templates/InvenTree/settings/settings.html:232
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688
+#: templates/js/translated/part.js:1477 templates/js/translated/part.js:1717
msgid "Category"
msgstr "Категория"
@@ -4437,7 +4465,7 @@ msgid "Part category"
msgstr "Категория"
#: part/models.py:789 part/templates/part/part_base.html:266
-#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:1430
#: templates/js/translated/stock.js:1726
msgid "IPN"
msgstr ""
@@ -4451,7 +4479,7 @@ msgid "Part revision or version number"
msgstr "Версия детали"
#: part/models.py:797 part/templates/part/part_base.html:273
-#: report/models.py:171 templates/js/translated/part.js:743
+#: report/models.py:171 templates/js/translated/part.js:741
msgid "Revision"
msgstr "Версия"
@@ -4543,245 +4571,245 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2304
+#: part/models.py:2312
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2321
+#: part/models.py:2329
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2341 templates/js/translated/part.js:2026
+#: part/models.py:2349 templates/js/translated/part.js:2055
#: templates/js/translated/stock.js:1340
msgid "Test Name"
msgstr ""
-#: part/models.py:2342
+#: part/models.py:2350
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2347
+#: part/models.py:2355
msgid "Test Description"
msgstr ""
-#: part/models.py:2348
+#: part/models.py:2356
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2353 templates/js/translated/part.js:2035
+#: part/models.py:2361 templates/js/translated/part.js:2064
#: templates/js/translated/table_filters.js:302
msgid "Required"
msgstr ""
-#: part/models.py:2354
+#: part/models.py:2362
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2359 templates/js/translated/part.js:2043
+#: part/models.py:2367 templates/js/translated/part.js:2072
msgid "Requires Value"
msgstr ""
-#: part/models.py:2360
+#: part/models.py:2368
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2365 templates/js/translated/part.js:2050
+#: part/models.py:2373 templates/js/translated/part.js:2079
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2366
+#: part/models.py:2374
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2374
+#: part/models.py:2382
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2410
+#: part/models.py:2418
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2418
+#: part/models.py:2426
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2433
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2430
+#: part/models.py:2438
msgid "Parameter description"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2471
msgid "Parent Part"
msgstr "Родительская деталь"
-#: part/models.py:2465 part/models.py:2513 part/models.py:2514
+#: part/models.py:2473 part/models.py:2521 part/models.py:2522
#: templates/InvenTree/settings/settings.html:227
msgid "Parameter Template"
msgstr "Шаблон параметра"
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Data"
msgstr ""
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2518 templates/InvenTree/settings/settings.html:236
+#: part/models.py:2526 templates/InvenTree/settings/settings.html:236
msgid "Default Value"
msgstr ""
-#: part/models.py:2519
+#: part/models.py:2527
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2554
+#: part/models.py:2562
msgid "Part ID or part name"
msgstr "Артикул или наименование детали"
-#: part/models.py:2557 templates/js/translated/model_renderers.js:212
+#: part/models.py:2565 templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr "Артикул"
-#: part/models.py:2558
+#: part/models.py:2566
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2561
+#: part/models.py:2569
msgid "Part Name"
msgstr "Наименование детали"
-#: part/models.py:2565
+#: part/models.py:2573
msgid "Part IPN"
msgstr "IPN"
-#: part/models.py:2566
+#: part/models.py:2574
msgid "Part IPN value"
msgstr "Значение IPN"
-#: part/models.py:2569
+#: part/models.py:2577
msgid "Level"
msgstr ""
-#: part/models.py:2570
+#: part/models.py:2578
msgid "BOM level"
msgstr ""
-#: part/models.py:2639
+#: part/models.py:2647
msgid "Select parent part"
msgstr "Выберите родительскую деталь"
-#: part/models.py:2647
+#: part/models.py:2655
msgid "Sub part"
msgstr ""
-#: part/models.py:2648
+#: part/models.py:2656
msgid "Select part to be used in BOM"
msgstr "Выбрать деталь для использования в BOM"
-#: part/models.py:2654
+#: part/models.py:2662
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2656 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997
+#: part/models.py:2664 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:876 templates/js/translated/bom.js:1005
#: templates/js/translated/table_filters.js:100
msgid "Optional"
msgstr ""
-#: part/models.py:2656
+#: part/models.py:2664
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2659 part/templates/part/upload_bom.html:55
+#: part/models.py:2667 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2660
+#: part/models.py:2668
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2671
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2666
+#: part/models.py:2674
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "Checksum"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2672 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1014
+#: part/models.py:2680 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:1022
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:96
msgid "Inherited"
msgstr ""
-#: part/models.py:2673
+#: part/models.py:2681
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2678 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1006
+#: part/models.py:2686 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:1014
msgid "Allow Variants"
msgstr "Разрешить разновидности"
-#: part/models.py:2679
+#: part/models.py:2687
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2757 stock/models.py:468
+#: part/models.py:2765 stock/models.py:468
msgid "Quantity must be integer value for trackable parts"
msgstr "Для отслеживаемых деталей количество должно быть целым числом"
-#: part/models.py:2766 part/models.py:2768
+#: part/models.py:2774 part/models.py:2776
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2873
+#: part/models.py:2881
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2902
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2915
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2923
msgid "Substitute part"
msgstr ""
-#: part/models.py:2930
+#: part/models.py:2938
msgid "Part 1"
msgstr "Часть 1"
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Part 2"
msgstr "Часть 2"
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2960
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:2956
+#: part/models.py:2964
msgid "Duplicate relationship already exists"
msgstr ""
@@ -5309,10 +5337,10 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:624
-#: templates/js/translated/company.js:884
+#: templates/js/translated/company.js:659
+#: templates/js/translated/company.js:920
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:654 templates/js/translated/part.js:731
+#: templates/js/translated/part.js:652 templates/js/translated/part.js:729
msgid "Inactive"
msgstr ""
@@ -5327,28 +5355,28 @@ msgid "This part is a variant of %(link)s"
msgstr "Эта деталь является разновидностью %(link)s"
#: part/templates/part/part_base.html:194
-#: templates/js/translated/company.js:974
+#: templates/js/translated/company.js:1027
#: templates/js/translated/table_filters.js:201
msgid "In Stock"
msgstr "На складе"
#: part/templates/part/part_base.html:215
-#: stock/templates/stock/item_base.html:379
+#: stock/templates/stock/item_base.html:382
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:224
-#: stock/templates/stock/item_base.html:372
+#: stock/templates/stock/item_base.html:375
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1043
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320
-#: templates/js/translated/part.js:1510
+#: part/templates/part/part_base.html:238 templates/js/translated/part.js:591
+#: templates/js/translated/part.js:611 templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1527
msgid "Building"
msgstr ""
@@ -5361,7 +5389,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:328
+#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
@@ -5400,7 +5428,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:989
+#: templates/js/translated/bom.js:997
msgid "No supplier pricing available"
msgstr ""
@@ -5439,7 +5467,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:53
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468
+#: templates/js/translated/order.js:2001 templates/js/translated/stock.js:2464
msgid "Date"
msgstr ""
@@ -5495,7 +5523,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983
+#: part/templates/part/prices.html:160 templates/js/translated/bom.js:991
msgid "Supplier Cost"
msgstr ""
@@ -5533,8 +5561,8 @@ msgstr ""
msgid "No sale pice history available for this part."
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616
-#: templates/js/translated/part.js:1308
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:614
+#: templates/js/translated/part.js:1329 templates/js/translated/part.js:1331
msgid "No Stock"
msgstr ""
@@ -5735,19 +5763,19 @@ msgstr ""
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:186
+#: plugin/models.py:188
msgid "Plugin"
msgstr ""
-#: plugin/models.py:249
+#: plugin/models.py:253
msgid "Method"
msgstr ""
-#: plugin/plugin.py:251
+#: plugin/plugin.py:252
msgid "No author found"
msgstr "Автор не найден"
-#: plugin/plugin.py:263
+#: plugin/plugin.py:264
msgid "No date found"
msgstr "Дата не найдена"
@@ -5925,12 +5953,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:648 stock/templates/stock/item_base.html:317
+#: stock/models.py:648 stock/templates/stock/item_base.html:320
#: templates/js/translated/build.js:456 templates/js/translated/build.js:608
#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706
#: templates/js/translated/model_renderers.js:118
-#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403
-#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490
+#: templates/js/translated/order.js:121 templates/js/translated/order.js:3597
+#: templates/js/translated/order.js:3684 templates/js/translated/stock.js:490
msgid "Serial Number"
msgstr "Серийный номер"
@@ -5963,7 +5991,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780
-#: templates/js/translated/stock.js:2717
+#: templates/js/translated/stock.js:2713
msgid "Serial"
msgstr ""
@@ -5980,7 +6008,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
#: stock/models.py:89 stock/models.py:739
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:250
msgid "Owner"
msgstr ""
@@ -6046,7 +6074,7 @@ msgstr ""
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:631 stock/templates/stock/item_base.html:356
+#: stock/models.py:631 stock/templates/stock/item_base.html:359
msgid "Installed In"
msgstr ""
@@ -6086,8 +6114,8 @@ msgstr ""
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:706 stock/templates/stock/item_base.html:424
-#: templates/js/translated/stock.js:1883
+#: stock/models.py:706 stock/templates/stock/item_base.html:427
+#: templates/js/translated/stock.js:1879
msgid "Expiry Date"
msgstr ""
@@ -6379,7 +6407,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr "Установленные единицы хранения"
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2857
msgid "Install Stock Item"
msgstr "Установить единицу хранения"
@@ -6479,134 +6507,135 @@ msgstr "Редактировать единицу хранения"
msgid "Delete stock item"
msgstr "Удалить единицу хранения"
-#: stock/templates/stock/item_base.html:158
+#: stock/templates/stock/item_base.html:161
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:193
+#: stock/templates/stock/item_base.html:196
msgid "Parent Item"
msgstr "Родительский элемент"
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:214
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:254
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/location.html:132
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:268
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:266
+#: stock/templates/stock/item_base.html:269
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:279
+#: stock/templates/stock/item_base.html:282
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:290
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:298
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:301
+#: stock/templates/stock/item_base.html:304
msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
msgstr ""
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:345
+#: stock/templates/stock/item_base.html:348
msgid "Available Quantity"
msgstr ""
-#: stock/templates/stock/item_base.html:389
+#: stock/templates/stock/item_base.html:392
#: templates/js/translated/build.js:1729
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:404
+#: stock/templates/stock/item_base.html:407
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#: templates/js/translated/table_filters.js:269
msgid "Expired"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:275
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:437
-#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899
+#: stock/templates/stock/item_base.html:440
+#: templates/js/translated/company.js:1038
+#: templates/js/translated/stock.js:1895
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:442
+#: stock/templates/stock/item_base.html:445
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:516
+#: stock/templates/stock/item_base.html:519
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:589
+#: stock/templates/stock/item_base.html:592
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:592
+#: stock/templates/stock/item_base.html:595
msgid "Warning"
msgstr "Предупреждение"
-#: stock/templates/stock/item_base.html:593
+#: stock/templates/stock/item_base.html:596
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:601
+#: stock/templates/stock/item_base.html:604
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:629
+#: stock/templates/stock/item_base.html:632
msgid "Return to Stock"
msgstr ""
@@ -6739,11 +6768,11 @@ msgstr ""
msgid "Refer to the error log in the admin interface for further details"
msgstr ""
-#: templates/503.html:11 templates/503.html:36
+#: templates/503.html:11 templates/503.html:34
msgid "Site is in Maintenance"
msgstr ""
-#: templates/503.html:42
+#: templates/503.html:40
msgid "The site is currently in maintenance and should be up again soon!"
msgstr ""
@@ -7509,7 +7538,7 @@ msgstr "Подтверждение адреса электронной почт
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr "Пожалуйста, подтвердите, что %(email)s является адресом электронной почты пользователя %(user_display)s."
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:644
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "Подтвердить"
@@ -7728,7 +7757,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1481
+#: templates/js/translated/bom.js:1489
msgid "Required Quantity"
msgstr ""
@@ -7742,7 +7771,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2522
+#: templates/js/translated/part.js:2551
msgid "Minimum Quantity"
msgstr "Минимальное количество"
@@ -7947,7 +7976,7 @@ msgstr ""
#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620
#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601
#: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003
-#: templates/js/translated/order.js:1085 templates/modals.html:15
+#: templates/js/translated/order.js:1179 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -7957,12 +7986,12 @@ msgid "Download BOM Template"
msgstr "Скачать шаблон BOM"
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145
+#: templates/js/translated/order.js:960 templates/js/translated/tables.js:145
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:867
+#: templates/js/translated/order.js:961
msgid "Select file format"
msgstr ""
@@ -8058,73 +8087,73 @@ msgstr ""
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857
-#: templates/js/translated/order.js:3738
+#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1857
+#: templates/js/translated/order.js:3932
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861
+#: templates/js/translated/bom.js:940 templates/js/translated/build.js:1861
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516
+#: templates/js/translated/bom.js:942 templates/js/translated/build.js:1863
+#: templates/js/translated/part.js:761 templates/js/translated/part.js:1533
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865
+#: templates/js/translated/bom.js:944 templates/js/translated/build.js:1865
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:954
+#: templates/js/translated/bom.js:962
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:969
+#: templates/js/translated/bom.js:977
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:976
+#: templates/js/translated/bom.js:984
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145
+#: templates/js/translated/bom.js:1033 templates/js/translated/bom.js:1153
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1052
+#: templates/js/translated/bom.js:1060
msgid "Including On Order"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1124
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1118
+#: templates/js/translated/bom.js:1126
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1120
+#: templates/js/translated/bom.js:1128
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284
+#: templates/js/translated/bom.js:1130 templates/js/translated/bom.js:1292
msgid "Edit BOM Item"
msgstr "Редактировать элемент BOM"
-#: templates/js/translated/bom.js:1124
+#: templates/js/translated/bom.js:1132
msgid "Delete BOM Item"
msgstr "Удалить элемент BOM"
-#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650
+#: templates/js/translated/bom.js:1228 templates/js/translated/build.js:1650
msgid "No BOM items found"
msgstr "Элементы BOM не найдены"
-#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789
+#: templates/js/translated/bom.js:1472 templates/js/translated/build.js:1789
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1486
+#: templates/js/translated/bom.js:1498
msgid "Inherited from parent BOM"
msgstr "Унаследовано от родительского BOM"
@@ -8267,12 +8296,12 @@ msgid "No required tests for this build"
msgstr ""
#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697
-#: templates/js/translated/order.js:3438
+#: templates/js/translated/order.js:3632
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698
-#: templates/js/translated/order.js:3439
+#: templates/js/translated/order.js:3633
msgid "Delete stock allocation"
msgstr ""
@@ -8292,20 +8321,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745
+#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3939
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743
+#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3937
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127
-#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757
+#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3951
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837
+#: templates/js/translated/build.js:1930 templates/js/translated/order.js:4031
msgid "Build stock"
msgstr ""
@@ -8313,21 +8342,21 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830
+#: templates/js/translated/build.js:1937 templates/js/translated/order.js:4024
msgid "Allocate stock"
msgstr ""
#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965
+#: templates/js/translated/order.js:1007 templates/js/translated/order.js:3159
#: templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966
+#: templates/js/translated/build.js:1977 templates/js/translated/order.js:3160
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914
+#: templates/js/translated/build.js:2026 templates/js/translated/order.js:3108
msgid "Specify stock allocation quantity"
msgstr ""
@@ -8339,7 +8368,7 @@ msgstr ""
msgid "All selected parts have been fully allocated"
msgstr ""
-#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980
+#: templates/js/translated/build.js:2115 templates/js/translated/order.js:3174
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
@@ -8347,11 +8376,11 @@ msgstr ""
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077
+#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3271
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154
+#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3348
msgid "No matching stock items"
msgstr ""
@@ -8383,9 +8412,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401
-#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1422
+#: templates/js/translated/part.js:1948 templates/js/translated/stock.js:1686
+#: templates/js/translated/stock.js:2382
msgid "Select"
msgstr ""
@@ -8397,7 +8426,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647
+#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2643
msgid "No user information"
msgstr ""
@@ -8405,111 +8434,115 @@ msgstr ""
msgid "No parts allocated for"
msgstr ""
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
msgid "Add Manufacturer"
msgstr "Добавить производителя"
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:179
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:181
msgid "Add Manufacturer Part"
msgstr "Добавить деталь производителя"
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
msgid "Edit Manufacturer Part"
msgstr "Редактировать деталь производителя"
-#: templates/js/translated/company.js:167 templates/js/translated/order.js:511
+#: templates/js/translated/company.js:169 templates/js/translated/order.js:576
msgid "Add Supplier"
msgstr "Добавить поставщика"
-#: templates/js/translated/company.js:195 templates/js/translated/order.js:734
+#: templates/js/translated/company.js:197 templates/js/translated/order.js:828
msgid "Add Supplier Part"
msgstr "Добавить деталь поставщика"
-#: templates/js/translated/company.js:262
+#: templates/js/translated/company.js:297
msgid "All selected supplier parts will be deleted"
msgstr "Все выбранные детали поставщика будут удалены"
-#: templates/js/translated/company.js:278
+#: templates/js/translated/company.js:313
msgid "Delete Supplier Parts"
msgstr ""
-#: templates/js/translated/company.js:350
+#: templates/js/translated/company.js:385
msgid "Add new Company"
msgstr "Добавить новую компанию"
-#: templates/js/translated/company.js:427
+#: templates/js/translated/company.js:462
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:471
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:451
+#: templates/js/translated/company.js:486
msgid "No company information found"
msgstr "Информация о компании не найдена"
-#: templates/js/translated/company.js:492
+#: templates/js/translated/company.js:527
msgid "All selected manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:507
+#: templates/js/translated/company.js:542
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:541
+#: templates/js/translated/company.js:576
msgid "All selected parameters will be deleted"
msgstr ""
-#: templates/js/translated/company.js:555
+#: templates/js/translated/company.js:590
msgid "Delete Parameters"
msgstr "Удалить параметры"
-#: templates/js/translated/company.js:596
+#: templates/js/translated/company.js:631
msgid "No manufacturer parts found"
msgstr "Информация о детали производителя не найдена"
-#: templates/js/translated/company.js:616
-#: templates/js/translated/company.js:876 templates/js/translated/part.js:638
-#: templates/js/translated/part.js:723
+#: templates/js/translated/company.js:651
+#: templates/js/translated/company.js:912 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:721
msgid "Template part"
msgstr "Деталь-шаблон"
-#: templates/js/translated/company.js:620
-#: templates/js/translated/company.js:880 templates/js/translated/part.js:642
-#: templates/js/translated/part.js:727
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:916 templates/js/translated/part.js:640
+#: templates/js/translated/part.js:725
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:748 templates/js/translated/part.js:830
+#: templates/js/translated/company.js:783 templates/js/translated/part.js:828
msgid "No parameters found"
msgstr "Параметры не найдены"
-#: templates/js/translated/company.js:785 templates/js/translated/part.js:872
+#: templates/js/translated/company.js:820 templates/js/translated/part.js:870
msgid "Edit parameter"
msgstr "Редактировать параметр"
-#: templates/js/translated/company.js:786 templates/js/translated/part.js:873
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:871
msgid "Delete parameter"
msgstr "Удалить параметр"
-#: templates/js/translated/company.js:805 templates/js/translated/part.js:890
+#: templates/js/translated/company.js:840 templates/js/translated/part.js:888
msgid "Edit Parameter"
msgstr "Редактировать параметр"
-#: templates/js/translated/company.js:816 templates/js/translated/part.js:902
+#: templates/js/translated/company.js:851 templates/js/translated/part.js:900
msgid "Delete Parameter"
msgstr "Удалить параметр"
-#: templates/js/translated/company.js:856
+#: templates/js/translated/company.js:891
msgid "No supplier parts found"
msgstr "Информация о детали поставщика не найдена"
-#: templates/js/translated/company.js:1002
+#: templates/js/translated/company.js:1032
+msgid "Availability"
+msgstr ""
+
+#: templates/js/translated/company.js:1055
msgid "Edit supplier part"
msgstr "Редактировать деталь поставщика"
-#: templates/js/translated/company.js:1003
+#: templates/js/translated/company.js:1056
msgid "Delete supplier part"
msgstr "Удалить деталь поставщика"
@@ -8547,61 +8580,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:367 templates/js/translated/forms.js:382
-#: templates/js/translated/forms.js:396 templates/js/translated/forms.js:410
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:369
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr "Операция создания не разрешена"
-#: templates/js/translated/forms.js:384
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr "Операция обновления не разрешена"
-#: templates/js/translated/forms.js:398
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr "Операция удаления не разрешена"
-#: templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr "Операция просмотра не разрешена"
-#: templates/js/translated/forms.js:670
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:771
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1269 templates/modals.html:19
+#: templates/js/translated/forms.js:1274 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr "Форма содержит ошибки"
-#: templates/js/translated/forms.js:1702
+#: templates/js/translated/forms.js:1707
msgid "No results found"
msgstr "Не найдено"
-#: templates/js/translated/forms.js:1917 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2170
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2648
+#: templates/js/translated/forms.js:2653
msgid "Select Columns"
msgstr ""
@@ -8792,409 +8825,422 @@ msgstr ""
msgid "Notifications will load here"
msgstr ""
-#: templates/js/translated/order.js:96
+#: templates/js/translated/order.js:97
msgid "No stock items have been allocated to this shipment"
msgstr ""
-#: templates/js/translated/order.js:101
+#: templates/js/translated/order.js:102
msgid "The following stock items will be shipped"
msgstr ""
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:142
msgid "Complete Shipment"
msgstr ""
-#: templates/js/translated/order.js:161
+#: templates/js/translated/order.js:162
msgid "Confirm Shipment"
msgstr ""
-#: templates/js/translated/order.js:217
+#: templates/js/translated/order.js:218
msgid "No pending shipments found"
msgstr ""
-#: templates/js/translated/order.js:221
+#: templates/js/translated/order.js:222
msgid "No stock items have been allocated to pending shipments"
msgstr ""
-#: templates/js/translated/order.js:253
+#: templates/js/translated/order.js:254
msgid "Skip"
msgstr ""
-#: templates/js/translated/order.js:283
+#: templates/js/translated/order.js:284
msgid "Complete Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:289
+#: templates/js/translated/order.js:301 templates/js/translated/order.js:413
msgid "Mark this order as complete?"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:307
msgid "All line items have been received"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:312
msgid "This order has line items which have not been marked as received."
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:313 templates/js/translated/order.js:427
msgid "Completing this order means that the order and line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:324
+#: templates/js/translated/order.js:336
msgid "Cancel Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:329
+#: templates/js/translated/order.js:341
msgid "Are you sure you wish to cancel this purchase order?"
msgstr ""
-#: templates/js/translated/order.js:335
+#: templates/js/translated/order.js:347
msgid "This purchase order can not be cancelled"
msgstr ""
-#: templates/js/translated/order.js:358
+#: templates/js/translated/order.js:370
msgid "Issue Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:363
+#: templates/js/translated/order.js:375
msgid "After placing this purchase order, line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:385
+#: templates/js/translated/order.js:426
+msgid "This order has line items which have not been completed."
+msgstr ""
+
+#: templates/js/translated/order.js:450
msgid "Cancel Sales Order"
msgstr ""
-#: templates/js/translated/order.js:390
+#: templates/js/translated/order.js:455
msgid "Cancelling this order means that the order will no longer be editable."
msgstr "Отмена этого заказа означает, что заказ нельзя будет редактировать."
-#: templates/js/translated/order.js:444
+#: templates/js/translated/order.js:509
msgid "Create New Shipment"
msgstr ""
-#: templates/js/translated/order.js:469
+#: templates/js/translated/order.js:534
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:494
+#: templates/js/translated/order.js:559
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:555
+#: templates/js/translated/order.js:620
msgid "Select purchase order to duplicate"
msgstr ""
-#: templates/js/translated/order.js:562
+#: templates/js/translated/order.js:627
msgid "Duplicate Line Items"
msgstr ""
-#: templates/js/translated/order.js:563
+#: templates/js/translated/order.js:628
msgid "Duplicate all line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:570
+#: templates/js/translated/order.js:635
msgid "Duplicate Extra Lines"
msgstr ""
-#: templates/js/translated/order.js:571
+#: templates/js/translated/order.js:636
msgid "Duplicate extra line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:588
+#: templates/js/translated/order.js:653
msgid "Edit Purchase Order"
msgstr "Редактировать заказ на закупку"
-#: templates/js/translated/order.js:605
+#: templates/js/translated/order.js:670
msgid "Duplication Options"
msgstr ""
-#: templates/js/translated/order.js:863
+#: templates/js/translated/order.js:957
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:914
+#: templates/js/translated/order.js:1008
msgid "At least one purchaseable part must be selected"
msgstr ""
-#: templates/js/translated/order.js:939
+#: templates/js/translated/order.js:1033
msgid "Quantity to order"
msgstr ""
-#: templates/js/translated/order.js:948
+#: templates/js/translated/order.js:1042
msgid "New supplier part"
msgstr ""
-#: templates/js/translated/order.js:966
+#: templates/js/translated/order.js:1060
msgid "New purchase order"
msgstr ""
-#: templates/js/translated/order.js:999
+#: templates/js/translated/order.js:1093
msgid "Add to purchase order"
msgstr ""
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1233
msgid "No matching supplier parts"
msgstr ""
-#: templates/js/translated/order.js:1123
+#: templates/js/translated/order.js:1252
msgid "No matching purchase orders"
msgstr ""
-#: templates/js/translated/order.js:1300
+#: templates/js/translated/order.js:1429
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1430
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420
+#: templates/js/translated/order.js:1450 templates/js/translated/order.js:1563
msgid "Add batch code"
msgstr "Добавить код партии"
-#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431
+#: templates/js/translated/order.js:1456 templates/js/translated/order.js:1574
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1339
+#: templates/js/translated/order.js:1471
+msgid "Received Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:1482
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144
+#: templates/js/translated/order.js:1546 templates/js/translated/stock.js:2140
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:1494
+#: templates/js/translated/order.js:1639
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:1495
+#: templates/js/translated/order.js:1640
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:1497
+#: templates/js/translated/order.js:1642
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:1516
+#: templates/js/translated/order.js:1661
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:1517
+#: templates/js/translated/order.js:1662
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943
+#: templates/js/translated/order.js:1940 templates/js/translated/part.js:941
msgid "No purchase orders found"
msgstr "Заказов на закупку не найдено"
-#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2803
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674
-#: templates/js/translated/order.js:2815
+#: templates/js/translated/order.js:2017 templates/js/translated/order.js:2868
+#: templates/js/translated/order.js:3009
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889
+#: templates/js/translated/order.js:2115 templates/js/translated/order.js:4083
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911
+#: templates/js/translated/order.js:2132 templates/js/translated/order.js:4105
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:4116
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:2026
+#: templates/js/translated/order.js:2188
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:2215 templates/js/translated/order.js:3817
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309
-#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156
-#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753
+#: templates/js/translated/order.js:2270 templates/js/translated/part.js:1043
+#: templates/js/translated/part.js:1095
+msgid "Total Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:2301 templates/js/translated/order.js:2503
+#: templates/js/translated/order.js:3842 templates/js/translated/order.js:4350
+#: templates/js/translated/part.js:2184 templates/js/translated/part.js:2782
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325
-#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172
+#: templates/js/translated/order.js:2316 templates/js/translated/order.js:2519
+#: templates/js/translated/order.js:3858 templates/js/translated/order.js:4366
msgid "Total Price"
msgstr "Общая стоимость"
-#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706
-#: templates/js/translated/part.js:1070
+#: templates/js/translated/order.js:2357 templates/js/translated/order.js:3900
+#: templates/js/translated/part.js:1079
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110
+#: templates/js/translated/order.js:2416 templates/js/translated/part.js:1130
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2420 templates/js/translated/order.js:4037
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844
+#: templates/js/translated/order.js:2421 templates/js/translated/order.js:4038
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848
+#: templates/js/translated/order.js:2422 templates/js/translated/order.js:4042
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221
+#: templates/js/translated/order.js:2568 templates/js/translated/order.js:4415
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222
+#: templates/js/translated/order.js:2569 templates/js/translated/order.js:4416
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223
+#: templates/js/translated/order.js:2570 templates/js/translated/order.js:4417
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253
+#: templates/js/translated/order.js:2600 templates/js/translated/order.js:4447
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274
+#: templates/js/translated/order.js:2621 templates/js/translated/order.js:4468
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285
+#: templates/js/translated/order.js:2632 templates/js/translated/order.js:4479
msgid "Delete Line"
msgstr ""
-#: templates/js/translated/order.js:2449
+#: templates/js/translated/order.js:2643
msgid "No matching line"
msgstr ""
-#: templates/js/translated/order.js:2560
+#: templates/js/translated/order.js:2754
msgid "No sales orders found"
msgstr "Заказы на продажу не найдены"
-#: templates/js/translated/order.js:2623
+#: templates/js/translated/order.js:2817
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:2721
+#: templates/js/translated/order.js:2915
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:2724
+#: templates/js/translated/order.js:2918
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:2729
+#: templates/js/translated/order.js:2923
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:2749
+#: templates/js/translated/order.js:2943
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:2766
+#: templates/js/translated/order.js:2960
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:2800
+#: templates/js/translated/order.js:2994
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:2810
+#: templates/js/translated/order.js:3004
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:2834
+#: templates/js/translated/order.js:3028
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:2840
+#: templates/js/translated/order.js:3034
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:2844
+#: templates/js/translated/order.js:3038
msgid "Invoice"
msgstr ""
-#: templates/js/translated/order.js:3013
+#: templates/js/translated/order.js:3207
msgid "Add Shipment"
msgstr ""
-#: templates/js/translated/order.js:3064
+#: templates/js/translated/order.js:3258
msgid "Confirm stock allocation"
msgstr "Подтвердите выделение запасов"
-#: templates/js/translated/order.js:3065
+#: templates/js/translated/order.js:3259
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:3273
+#: templates/js/translated/order.js:3467
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:3352
+#: templates/js/translated/order.js:3546
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3369
+#: templates/js/translated/order.js:3563
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:3370
+#: templates/js/translated/order.js:3564
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504
+#: templates/js/translated/order.js:3609 templates/js/translated/order.js:3698
#: templates/js/translated/stock.js:1602
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513
+#: templates/js/translated/order.js:3617 templates/js/translated/order.js:3707
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3827
+#: templates/js/translated/order.js:4021
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3833
+#: templates/js/translated/order.js:4027
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038
+#: templates/js/translated/order.js:4034 templates/js/translated/order.js:4232
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3852
+#: templates/js/translated/order.js:4046
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3855
+#: templates/js/translated/order.js:4049
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3937
+#: templates/js/translated/order.js:4131
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:4046
+#: templates/js/translated/order.js:4240
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:4060
+#: templates/js/translated/order.js:4254
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4296
+#: templates/js/translated/order.js:4490
msgid "No matching lines"
msgstr ""
@@ -9374,173 +9420,177 @@ msgstr ""
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498
+#: templates/js/translated/part.js:584 templates/js/translated/part.js:1515
#: templates/js/translated/table_filters.js:468
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:596
+#: templates/js/translated/part.js:594
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:715
+#: templates/js/translated/part.js:628 templates/js/translated/part.js:713
msgid "Trackable part"
msgstr "Отслеживаемая деталь"
-#: templates/js/translated/part.js:634 templates/js/translated/part.js:719
+#: templates/js/translated/part.js:632 templates/js/translated/part.js:717
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:646
+#: templates/js/translated/part.js:644
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:650
+#: templates/js/translated/part.js:648
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:778
+#: templates/js/translated/part.js:776
msgid "No variants found"
msgstr "Разновидности не найдены"
-#: templates/js/translated/part.js:1180
+#: templates/js/translated/part.js:1200
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1204
+#: templates/js/translated/part.js:1224
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573
+#: templates/js/translated/part.js:1291 templates/js/translated/part.js:1602
msgid "No parts found"
msgstr "Детали не найдены"
-#: templates/js/translated/part.js:1310
-msgid "Not available"
-msgstr ""
-
-#: templates/js/translated/part.js:1461
+#: templates/js/translated/part.js:1482
msgid "No category"
msgstr "Нет категории"
-#: templates/js/translated/part.js:1496
+#: templates/js/translated/part.js:1513
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840
-#: templates/js/translated/stock.js:2347
+#: templates/js/translated/part.js:1537
+msgid "Allocated to build orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1541
+msgid "Allocated to sales orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1626 templates/js/translated/part.js:1869
+#: templates/js/translated/stock.js:2343
msgid "Display as list"
msgstr "Список"
-#: templates/js/translated/part.js:1613
+#: templates/js/translated/part.js:1642
msgid "Display as grid"
msgstr "Таблица"
-#: templates/js/translated/part.js:1679
+#: templates/js/translated/part.js:1708
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1684
+#: templates/js/translated/part.js:1713
msgid "Set Part Category"
msgstr "Укажите категорию"
-#: templates/js/translated/part.js:1689
+#: templates/js/translated/part.js:1718
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1702
+#: templates/js/translated/part.js:1731
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366
+#: templates/js/translated/part.js:1888 templates/js/translated/stock.js:2362
msgid "Display as tree"
msgstr "Дерево"
-#: templates/js/translated/part.js:1938
+#: templates/js/translated/part.js:1967
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:1954
+#: templates/js/translated/part.js:1983
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2012
+#: templates/js/translated/part.js:2041
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299
+#: templates/js/translated/part.js:2092 templates/js/translated/stock.js:1299
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300
+#: templates/js/translated/part.js:2093 templates/js/translated/stock.js:1300
#: templates/js/translated/stock.js:1560
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2070
+#: templates/js/translated/part.js:2099
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2092
+#: templates/js/translated/part.js:2121
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2106
+#: templates/js/translated/part.js:2135
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2131
+#: templates/js/translated/part.js:2160
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:2188
+#: templates/js/translated/part.js:2217
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2189
+#: templates/js/translated/part.js:2218
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355
+#: templates/js/translated/part.js:2383 templates/js/translated/part.js:2384
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2357
+#: templates/js/translated/part.js:2386
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2363
+#: templates/js/translated/part.js:2392
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2413
+#: templates/js/translated/part.js:2442
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2419
+#: templates/js/translated/part.js:2448
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2515
+#: templates/js/translated/part.js:2544
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2531
+#: templates/js/translated/part.js:2560
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2576
+#: templates/js/translated/part.js:2605
msgid "Minimum Stock Level"
msgstr ""
-#: templates/js/translated/part.js:2677
+#: templates/js/translated/part.js:2706
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:2696
+#: templates/js/translated/part.js:2725
msgid "Single Price Difference"
msgstr ""
@@ -9778,7 +9828,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:942 users/models.py:216
+#: templates/js/translated/stock.js:942 users/models.py:218
msgid "Add"
msgstr ""
@@ -9854,156 +9904,156 @@ msgstr ""
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1775
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1780
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1787
+#: templates/js/translated/stock.js:1783
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1790
+#: templates/js/translated/stock.js:1786
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1792
+#: templates/js/translated/stock.js:1788
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1794
+#: templates/js/translated/stock.js:1790
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1797
+#: templates/js/translated/stock.js:1793
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1797
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1803
+#: templates/js/translated/stock.js:1799
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1810
+#: templates/js/translated/stock.js:1806
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:1808
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1814
+#: templates/js/translated/stock.js:1810
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1818
+#: templates/js/translated/stock.js:1814
#: templates/js/translated/table_filters.js:196
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1869
+#: templates/js/translated/stock.js:1865
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1948
+#: templates/js/translated/stock.js:1944
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1986
+#: templates/js/translated/stock.js:1982
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2159
+#: templates/js/translated/stock.js:2155
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2173
+#: templates/js/translated/stock.js:2169
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2174
+#: templates/js/translated/stock.js:2170
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2404
+#: templates/js/translated/stock.js:2400
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2493
+#: templates/js/translated/stock.js:2489
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2509
+#: templates/js/translated/stock.js:2505
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2531
+#: templates/js/translated/stock.js:2527
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2550
+#: templates/js/translated/stock.js:2546
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2569
+#: templates/js/translated/stock.js:2565
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2587
+#: templates/js/translated/stock.js:2583
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2610
+#: templates/js/translated/stock.js:2606
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2618
+#: templates/js/translated/stock.js:2614
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2694
+#: templates/js/translated/stock.js:2690
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781
+#: templates/js/translated/stock.js:2741 templates/js/translated/stock.js:2777
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2790
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2815
+#: templates/js/translated/stock.js:2811
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2816
+#: templates/js/translated/stock.js:2812
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2818
+#: templates/js/translated/stock.js:2814
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2819
+#: templates/js/translated/stock.js:2815
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2820
+#: templates/js/translated/stock.js:2816
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2821
+#: templates/js/translated/stock.js:2817
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2834
+#: templates/js/translated/stock.js:2830
msgid "Select part to install"
msgstr ""
@@ -10525,35 +10575,35 @@ msgstr "Права доступа"
msgid "Important dates"
msgstr ""
-#: users/models.py:203
+#: users/models.py:205
msgid "Permission set"
msgstr "Права доступа"
-#: users/models.py:211
+#: users/models.py:213
msgid "Group"
msgstr ""
-#: users/models.py:214
+#: users/models.py:216
msgid "View"
msgstr "Вид"
-#: users/models.py:214
+#: users/models.py:216
msgid "Permission to view items"
msgstr "Разрешение на просмотр элементов"
-#: users/models.py:216
+#: users/models.py:218
msgid "Permission to add items"
msgstr "Разрешение на добавление элементов"
-#: users/models.py:218
+#: users/models.py:220
msgid "Change"
msgstr ""
-#: users/models.py:218
+#: users/models.py:220
msgid "Permissions to edit items"
msgstr "Разрешение на редактирование элементов"
-#: users/models.py:220
+#: users/models.py:222
msgid "Permission to delete items"
msgstr "Разрешение на удаление элементов"
diff --git a/InvenTree/locale/sv/LC_MESSAGES/django.po b/InvenTree/locale/sv/LC_MESSAGES/django.po
index fb03246f87..bc7ecac4b1 100644
--- a/InvenTree/locale/sv/LC_MESSAGES/django.po
+++ b/InvenTree/locale/sv/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-08-25 10:08+0000\n"
-"PO-Revision-Date: 2022-08-26 01:55\n"
+"POT-Creation-Date: 2022-09-09 02:44+0000\n"
+"PO-Revision-Date: 2022-09-09 03:57\n"
"Last-Translator: \n"
"Language-Team: Swedish\n"
"Language: sv_SE\n"
@@ -29,9 +29,9 @@ msgstr "Information om felet finns under Error i adminpanelen"
msgid "Enter date"
msgstr "Ange datum"
-#: InvenTree/fields.py:186 build/serializers.py:384
-#: build/templates/build/sidebar.html:21 company/models.py:523
-#: company/templates/company/sidebar.html:25 order/models.py:906
+#: InvenTree/fields.py:183 build/serializers.py:384
+#: build/templates/build/sidebar.html:21 company/models.py:524
+#: company/templates/company/sidebar.html:25 order/models.py:910
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17
#: part/templates/part/part_sidebar.html:59
@@ -40,11 +40,12 @@ msgstr "Ange datum"
#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823
#: stock/serializers.py:922 stock/serializers.py:1054
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099
-#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210
-#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859
-#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208
-#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1107
+#: templates/js/translated/company.js:1022
+#: templates/js/translated/order.js:2404 templates/js/translated/order.js:2555
+#: templates/js/translated/order.js:3053 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:4402 templates/js/translated/stock.js:1374
+#: templates/js/translated/stock.js:1976
msgid "Notes"
msgstr "Anteeckningar"
@@ -210,12 +211,12 @@ msgid "Select file to attach"
msgstr "Välj fil att bifoga"
#: InvenTree/models.py:402 company/models.py:124 company/models.py:276
-#: company/models.py:510 order/models.py:84 order/models.py:1245
+#: company/models.py:511 order/models.py:84 order/models.py:1249
#: part/models.py:802 part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
-#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848
-#: templates/js/translated/part.js:1534
+#: templates/js/translated/company.js:691
+#: templates/js/translated/company.js:1011
+#: templates/js/translated/order.js:3042 templates/js/translated/part.js:1563
msgid "Link"
msgstr "Länk"
@@ -233,12 +234,12 @@ msgstr "Kommentar"
msgid "File comment"
msgstr "Fil kommentar"
-#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665
-#: common/models.py:1666 common/models.py:1889 common/models.py:1890
-#: common/models.py:2152 common/models.py:2153 part/models.py:2239
-#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257
+#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1669
+#: common/models.py:1670 common/models.py:1893 common/models.py:1894
+#: common/models.py:2156 common/models.py:2157 part/models.py:2247
+#: part/models.py:2267 plugin/models.py:260 plugin/models.py:261
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2641
+#: templates/js/translated/stock.js:2637
msgid "User"
msgstr "Användare"
@@ -275,28 +276,28 @@ msgstr "Fel vid namnbyte av fil"
msgid "Invalid choice"
msgstr "Ogiltigt val"
-#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875
+#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1879
#: company/models.py:358 label/models.py:101 part/models.py:746
-#: part/models.py:2417 plugin/models.py:94 report/models.py:152
+#: part/models.py:2425 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin.html:134
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:347
-#: templates/js/translated/company.js:545
-#: templates/js/translated/company.js:758
+#: templates/js/translated/company.js:580
+#: templates/js/translated/company.js:793
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:688 templates/js/translated/part.js:840
-#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392
+#: templates/js/translated/part.js:686 templates/js/translated/part.js:838
+#: templates/js/translated/part.js:1955 templates/js/translated/stock.js:2388
msgid "Name"
msgstr "Namn"
#: InvenTree/models.py:544 build/models.py:174
#: build/templates/build/detail.html:24 company/models.py:282
-#: company/models.py:516 company/templates/company/company_base.html:71
+#: company/models.py:517 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:87 label/models.py:108
-#: order/models.py:82 part/models.py:769 part/models.py:2429
+#: company/templates/company/supplier_part.html:92 label/models.py:108
+#: order/models.py:82 part/models.py:769 part/models.py:2437
#: part/templates/part/category.html:80 part/templates/part/part_base.html:167
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
@@ -305,14 +306,14 @@ msgstr "Namn"
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/InvenTree/settings/settings.html:358
#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846
-#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409
-#: templates/js/translated/company.js:667
-#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637
-#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167
-#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962
-#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743
-#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478
+#: templates/js/translated/build.js:2512 templates/js/translated/company.js:444
+#: templates/js/translated/company.js:702
+#: templates/js/translated/company.js:986 templates/js/translated/order.js:1988
+#: templates/js/translated/order.js:2220 templates/js/translated/order.js:2831
+#: templates/js/translated/part.js:745 templates/js/translated/part.js:1187
+#: templates/js/translated/part.js:1463 templates/js/translated/part.js:1991
+#: templates/js/translated/part.js:2060 templates/js/translated/stock.js:1743
+#: templates/js/translated/stock.js:2420 templates/js/translated/stock.js:2474
msgid "Description"
msgstr "Beskrivning"
@@ -325,7 +326,7 @@ msgid "parent"
msgstr "överordnad"
#: InvenTree/models.py:560 InvenTree/models.py:561
-#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:2426
msgid "Path"
msgstr "Sökväg"
@@ -337,7 +338,7 @@ msgstr "Serverfel"
msgid "An error has been logged by the server."
msgstr "Ett fel har loggats av servern."
-#: InvenTree/serializers.py:55 part/models.py:2745
+#: InvenTree/serializers.py:55 part/models.py:2753
msgid "Must be a valid number"
msgstr "Måste vara ett giltigt nummer"
@@ -522,7 +523,7 @@ msgid "Placed"
msgstr "Placerad"
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr "Slutför"
@@ -542,8 +543,8 @@ msgstr "Förlorad"
msgid "Returned"
msgstr "Återlämnad"
-#: InvenTree/status_codes.py:141 order/models.py:1128
-#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785
+#: InvenTree/status_codes.py:141 order/models.py:1132
+#: templates/js/translated/order.js:3630 templates/js/translated/order.js:3979
msgid "Shipped"
msgstr "Skickad"
@@ -627,7 +628,7 @@ msgstr "Dela från överordnat objekt"
msgid "Split child item"
msgstr "Dela underordnat objekt"
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080
msgid "Merged stock items"
msgstr "Sammanfogade lagerposter"
@@ -717,7 +718,7 @@ msgstr "Systeminformation"
msgid "About InvenTree"
msgstr "Om InvenTree"
-#: build/api.py:217
+#: build/api.py:219
msgid "Build must be cancelled before it can be deleted"
msgstr "Byggnationen måste avbrytas innan den kan tas bort"
@@ -748,15 +749,15 @@ msgstr "Byggordrar"
msgid "Build Order Reference"
msgstr "Byggorderreferens"
-#: build/models.py:166 order/models.py:240 order/models.py:623
-#: order/models.py:904 part/models.py:2663
+#: build/models.py:166 order/models.py:240 order/models.py:627
+#: order/models.py:908 part/models.py:2671
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853
-#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089
-#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629
-#: templates/js/translated/order.js:4137
+#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2251
+#: templates/js/translated/order.js:2484 templates/js/translated/order.js:3823
+#: templates/js/translated/order.js:4331
msgid "Reference"
msgstr "Referens"
@@ -774,12 +775,12 @@ msgid "BuildOrder to which this build is allocated"
msgstr "Byggorder till vilken detta bygge är tilldelad"
#: build/models.py:191 build/templates/build/build_base.html:80
-#: build/templates/build/detail.html:29 company/models.py:670
-#: order/models.py:1001 order/models.py:1112 order/models.py:1113
-#: part/models.py:343 part/models.py:2185 part/models.py:2200
-#: part/models.py:2219 part/models.py:2237 part/models.py:2336
-#: part/models.py:2463 part/models.py:2553 part/models.py:2638
-#: part/models.py:2914 part/serializers.py:814
+#: build/templates/build/detail.html:29 company/models.py:679
+#: order/models.py:1005 order/models.py:1116 order/models.py:1117
+#: part/models.py:343 part/models.py:2193 part/models.py:2208
+#: part/models.py:2227 part/models.py:2245 part/models.py:2344
+#: part/models.py:2471 part/models.py:2561 part/models.py:2646
+#: part/models.py:2922 part/serializers.py:814
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -795,18 +796,18 @@ msgstr "Byggorder till vilken detta bygge är tilldelad"
#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800
#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682
#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517
-#: templates/js/translated/company.js:266
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:608
-#: templates/js/translated/company.js:868 templates/js/translated/order.js:105
-#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493
-#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613
-#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224
-#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586
+#: templates/js/translated/company.js:301
+#: templates/js/translated/company.js:531
+#: templates/js/translated/company.js:643
+#: templates/js/translated/company.js:904 templates/js/translated/order.js:106
+#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1638
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:3185
+#: templates/js/translated/order.js:3581 templates/js/translated/order.js:3807
+#: templates/js/translated/part.js:1172 templates/js/translated/part.js:1244
+#: templates/js/translated/part.js:1441 templates/js/translated/stock.js:586
#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504
-#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833
+#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2500
+#: templates/js/translated/stock.js:2695 templates/js/translated/stock.js:2829
msgid "Part"
msgstr "Del"
@@ -823,7 +824,7 @@ msgid "SalesOrder to which this build is allocated"
msgstr "Försäljningsorder till vilken detta bygge allokeras"
#: build/models.py:213 build/serializers.py:800
-#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979
+#: templates/js/translated/build.js:2114 templates/js/translated/order.js:3173
msgid "Source Location"
msgstr "Källa Plats"
@@ -863,8 +864,8 @@ msgstr "Byggstatus"
msgid "Build status code"
msgstr "Bygg statuskod"
-#: build/models.py:251 build/serializers.py:225 order/serializers.py:447
-#: stock/models.py:662 templates/js/translated/order.js:1353
+#: build/models.py:251 build/serializers.py:225 order/serializers.py:464
+#: stock/models.py:662 templates/js/translated/order.js:1496
msgid "Batch Code"
msgstr "Batchkod"
@@ -873,11 +874,11 @@ msgid "Batch code for this build output"
msgstr "Batch-kod för denna byggutdata"
#: build/models.py:258 order/models.py:86 part/models.py:938
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2844
msgid "Creation Date"
msgstr "Skapad"
-#: build/models.py:262 order/models.py:648
+#: build/models.py:262 order/models.py:652
msgid "Target completion date"
msgstr "Datum för slutförande"
@@ -904,10 +905,10 @@ msgstr "Användare som utfärdade denna byggorder"
#: build/models.py:289 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:100
-#: order/templates/order/order_base.html:179
+#: order/templates/order/order_base.html:185
#: order/templates/order/sales_order_base.html:183 part/models.py:942
#: report/templates/report/inventree_build_order_base.html:158
-#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860
+#: templates/js/translated/build.js:2574 templates/js/translated/order.js:2022
msgid "Responsible"
msgstr "Ansvarig"
@@ -917,9 +918,9 @@ msgstr "Användare som ansvarar för denna byggorder"
#: build/models.py:295 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
-#: company/templates/company/supplier_part.html:153
+#: company/templates/company/supplier_part.html:165
#: part/templates/part/part_base.html:346 stock/models.py:656
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr "Extern länk"
@@ -957,11 +958,11 @@ msgstr "Byggobjekt måste ange en byggutgång, eftersom huvuddelen är markerad
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Tilldelad kvantitet ({q}) får inte överstiga tillgängligt lagersaldo ({a})"
-#: build/models.py:1188 order/models.py:1379
+#: build/models.py:1188 order/models.py:1383
msgid "Stock item is over-allocated"
msgstr "Lagerposten är överallokerad"
-#: build/models.py:1194 order/models.py:1382
+#: build/models.py:1194 order/models.py:1386
msgid "Allocation quantity must be greater than zero"
msgstr "Allokeringsmängden måste vara större än noll"
@@ -973,7 +974,7 @@ msgstr "Antal måste vara 1 för serialiserat lager"
msgid "Selected stock item not found in BOM"
msgstr "Vald lagervara hittades inte i BOM"
-#: build/models.py:1326 stock/templates/stock/item_base.html:172
+#: build/models.py:1326 stock/templates/stock/item_base.html:175
#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496
#: templates/navbar.html:38
msgid "Build"
@@ -983,18 +984,18 @@ msgstr "Bygg"
msgid "Build to allocate parts"
msgstr "Bygg för att allokera delar"
-#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015
-#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754
+#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1035
+#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754
#: stock/serializers.py:880 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:197
#: templates/js/translated/build.js:774 templates/js/translated/build.js:779
#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679
-#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992
-#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299
-#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486
+#: templates/js/translated/order.js:107 templates/js/translated/order.js:3186
+#: templates/js/translated/order.js:3488 templates/js/translated/order.js:3493
+#: templates/js/translated/order.js:3588 templates/js/translated/order.js:3680
#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752
-#: templates/js/translated/stock.js:2577
+#: templates/js/translated/stock.js:2573
msgid "Stock Item"
msgstr "Artikel i lager"
@@ -1004,11 +1005,11 @@ msgstr "Källa lagervara"
#: build/models.py:1356 build/serializers.py:193
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1697
-#: company/templates/company/supplier_part.html:279 order/models.py:897
-#: order/models.py:1423 order/serializers.py:1155
+#: build/templates/build/detail.html:34 common/models.py:1701
+#: company/templates/company/supplier_part.html:291 order/models.py:901
+#: order/models.py:1427 order/serializers.py:1209
#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40
-#: part/models.py:2654 part/templates/part/detail.html:951
+#: part/models.py:2662 part/templates/part/detail.html:951
#: part/templates/part/detail.html:1037
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -1017,8 +1018,8 @@ msgstr "Källa lagervara"
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:291 stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
+#: stock/serializers.py:291 stock/templates/stock/item_base.html:290
+#: stock/templates/stock/item_base.html:298
#: templates/email/build_order_completed.html:18
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691
#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458
@@ -1026,16 +1027,16 @@ msgstr "Källa lagervara"
#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708
#: templates/js/translated/build.js:2129
#: templates/js/translated/model_renderers.js:120
-#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043
-#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313
-#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492
-#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143
-#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176
-#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686
-#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458
+#: templates/js/translated/order.js:123 templates/js/translated/order.js:1137
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:2490
+#: templates/js/translated/order.js:3187 templates/js/translated/order.js:3507
+#: templates/js/translated/order.js:3594 templates/js/translated/order.js:3686
+#: templates/js/translated/order.js:3829 templates/js/translated/order.js:4337
+#: templates/js/translated/part.js:1036 templates/js/translated/part.js:2205
+#: templates/js/translated/part.js:2674 templates/js/translated/part.js:2715
+#: templates/js/translated/part.js:2793 templates/js/translated/stock.js:458
#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782
-#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2707
msgid "Quantity"
msgstr "Antal"
@@ -1077,7 +1078,7 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:208 build/serializers.py:665 order/models.py:318
-#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545
+#: order/serializers.py:304 order/serializers.py:459 part/serializers.py:545
#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251
#: stock/serializers.py:300
msgid "Quantity must be greater than zero"
@@ -1091,8 +1092,8 @@ msgstr ""
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159
-#: stock/serializers.py:309 templates/js/translated/order.js:1364
+#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213
+#: stock/serializers.py:309 templates/js/translated/order.js:1507
#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459
msgid "Serial Numbers"
msgstr "Serienummer"
@@ -1117,18 +1118,18 @@ msgstr ""
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532
+#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552
#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532
#: stock/serializers.py:915 stock/serializers.py:1148
-#: stock/templates/stock/item_base.html:385
+#: stock/templates/stock/item_base.html:388
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786
-#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391
-#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411
-#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500
+#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1534
+#: templates/js/translated/order.js:3500 templates/js/translated/order.js:3605
+#: templates/js/translated/order.js:3613 templates/js/translated/order.js:3694
#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588
#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960
-#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2514
msgid "Location"
msgstr "Plats"
@@ -1137,12 +1138,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:373 build/templates/build/build_base.html:145
-#: build/templates/build/detail.html:62 order/models.py:642
-#: order/serializers.py:465 stock/templates/stock/item_base.html:418
+#: build/templates/build/detail.html:62 order/models.py:646
+#: order/serializers.py:482 stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546
-#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830
-#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829
-#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727
+#: templates/js/translated/order.js:1643 templates/js/translated/order.js:1992
+#: templates/js/translated/order.js:2836 templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:2591 templates/js/translated/stock.js:2723
msgid "Status"
msgstr "Status"
@@ -1202,7 +1203,7 @@ msgstr ""
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:527
+#: build/serializers.py:527 order/serializers.py:208 order/serializers.py:1103
msgid "Accept Incomplete"
msgstr "Acceptera ofullständig"
@@ -1218,8 +1219,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772
-#: part/models.py:2906
+#: build/serializers.py:577 build/serializers.py:622 part/models.py:2780
+#: part/models.py:2914
msgid "BOM Item"
msgstr ""
@@ -1239,7 +1240,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:709 order/serializers.py:1073
+#: build/serializers.py:709 order/serializers.py:1093
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1256,7 +1257,7 @@ msgstr ""
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:750 order/serializers.py:1319
+#: build/serializers.py:750 order/serializers.py:1373
msgid "Allocation items must be provided"
msgstr ""
@@ -1371,13 +1372,13 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:154
-#: build/templates/build/detail.html:131 order/models.py:910
-#: order/templates/order/order_base.html:165
+#: build/templates/build/detail.html:131 order/models.py:914
+#: order/templates/order/order_base.html:171
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:125
-#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847
-#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658
-#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042
+#: templates/js/translated/build.js:2586 templates/js/translated/order.js:2009
+#: templates/js/translated/order.js:2351 templates/js/translated/order.js:2852
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1051
msgid "Target Date"
msgstr "Måldatum"
@@ -1388,7 +1389,7 @@ msgstr ""
#: build/templates/build/build_base.html:159
#: build/templates/build/build_base.html:204
-#: order/templates/order/order_base.html:101
+#: order/templates/order/order_base.html:107
#: order/templates/order/sales_order_base.html:94
#: templates/js/translated/table_filters.js:320
#: templates/js/translated/table_filters.js:361
@@ -1404,15 +1405,15 @@ msgid "Completed"
msgstr "Slutförd"
#: build/templates/build/build_base.html:179
-#: build/templates/build/detail.html:94 order/models.py:1105
-#: order/models.py:1199 order/models.py:1330
+#: build/templates/build/detail.html:94 order/models.py:1109
+#: order/models.py:1203 order/models.py:1334
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:365
+#: stock/templates/stock/item_base.html:368
#: templates/email/overdue_sales_order.html:15
-#: templates/js/translated/order.js:2604
+#: templates/js/translated/order.js:2798
msgid "Sales Order"
msgstr "Försäljningsorder"
@@ -1438,8 +1439,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1023
-#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199
+#: build/templates/build/detail.html:49 order/models.py:1027
+#: templates/js/translated/order.js:1644 templates/js/translated/order.js:2393
msgid "Destination"
msgstr "Mål"
@@ -1452,18 +1453,18 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:165
+#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1215
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843
-#: templates/js/translated/stock.js:2734
+#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1839
+#: templates/js/translated/stock.js:2730
#: templates/js/translated/table_filters.js:159
#: templates/js/translated/table_filters.js:250
msgid "Batch"
msgstr ""
#: build/templates/build/detail.html:126
-#: order/templates/order/order_base.html:152
+#: order/templates/order/order_base.html:158
#: order/templates/order/sales_order_base.html:158
#: templates/js/translated/build.js:2554
msgid "Created"
@@ -1516,7 +1517,7 @@ msgstr "Beställ obligatoriska delar"
#: build/templates/build/detail.html:187
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:85
-#: part/templates/part/category.html:183 templates/js/translated/order.js:1083
+#: part/templates/part/category.html:183 templates/js/translated/order.js:1177
msgid "Order Parts"
msgstr "Beställ delar"
@@ -1851,7 +1852,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:951 part/models.py:2465 report/models.py:158
+#: common/models.py:951 part/models.py:2473 report/models.py:158
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:484
msgid "Template"
@@ -1861,7 +1862,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446
+#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1454
#: templates/js/translated/table_filters.js:176
#: templates/js/translated/table_filters.js:447
msgid "Assembly"
@@ -2275,349 +2276,349 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1342 common/models.py:1658
+#: common/models.py:1344 common/models.py:1662
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1364
+#: common/models.py:1366
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1365
+#: common/models.py:1367
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1371
+#: common/models.py:1373
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1372
+#: common/models.py:1374
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1378
+#: common/models.py:1380
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1379
+#: common/models.py:1381
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1385
+#: common/models.py:1387
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1386
+#: common/models.py:1388
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1392
+#: common/models.py:1394
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1393
+#: common/models.py:1395
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1399
+#: common/models.py:1401
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1400
+#: common/models.py:1402
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1406
+#: common/models.py:1408
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1407
+#: common/models.py:1409
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1413
+#: common/models.py:1415
msgid "Show low stock"
msgstr ""
-#: common/models.py:1414
+#: common/models.py:1416
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1420
+#: common/models.py:1422
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1421
+#: common/models.py:1423
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1427
+#: common/models.py:1429
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1430
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1434
+#: common/models.py:1436
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1435
+#: common/models.py:1437
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1441
+#: common/models.py:1443
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1442
+#: common/models.py:1444
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1448
+#: common/models.py:1450
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1449
+#: common/models.py:1451
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1455
+#: common/models.py:1457
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1456
+#: common/models.py:1458
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1462
+#: common/models.py:1464
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1463
+#: common/models.py:1465
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1469
+#: common/models.py:1471
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1470
+#: common/models.py:1472
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1476
+#: common/models.py:1478
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1477
+#: common/models.py:1479
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1483
+#: common/models.py:1485
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1484
+#: common/models.py:1486
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1490
+#: common/models.py:1492
msgid "Inline label display"
msgstr ""
-#: common/models.py:1491
+#: common/models.py:1493
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1499
msgid "Inline report display"
msgstr ""
-#: common/models.py:1498
+#: common/models.py:1500
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1506
msgid "Search Parts"
msgstr ""
-#: common/models.py:1505
+#: common/models.py:1507
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1513
msgid "Seach Supplier Parts"
msgstr ""
-#: common/models.py:1512
+#: common/models.py:1514
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1520
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:1519
+#: common/models.py:1521
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:1525
+#: common/models.py:1527
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1526
+#: common/models.py:1528
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1532
+#: common/models.py:1534
msgid "Search Categories"
msgstr ""
-#: common/models.py:1533
+#: common/models.py:1535
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1539
+#: common/models.py:1541
msgid "Search Stock"
msgstr ""
-#: common/models.py:1540
+#: common/models.py:1542
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1546
+#: common/models.py:1548
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1547
+#: common/models.py:1549
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1553
+#: common/models.py:1555
msgid "Search Locations"
msgstr ""
-#: common/models.py:1554
+#: common/models.py:1556
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1560
+#: common/models.py:1562
msgid "Search Companies"
msgstr ""
-#: common/models.py:1561
+#: common/models.py:1563
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1567
+#: common/models.py:1569
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1568
+#: common/models.py:1570
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1574
+#: common/models.py:1576
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1575
+#: common/models.py:1577
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1581
+#: common/models.py:1583
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1582
+#: common/models.py:1584
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1588
+#: common/models.py:1590
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1591
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1595
+#: common/models.py:1597
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1598
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1602
+#: common/models.py:1604
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1605
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1609
+#: common/models.py:1611
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1610
+#: common/models.py:1612
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1616
+#: common/models.py:1618
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1617
+#: common/models.py:1619
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1623
+#: common/models.py:1625
msgid "Date Format"
msgstr ""
-#: common/models.py:1624
+#: common/models.py:1626
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1638 part/templates/part/detail.html:41
+#: common/models.py:1640 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1641
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1698
+#: common/models.py:1702
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1705 company/serializers.py:366
-#: company/templates/company/supplier_part.html:284 order/models.py:938
-#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181
+#: common/models.py:1709 company/serializers.py:372
+#: company/templates/company/supplier_part.html:296 order/models.py:942
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:2210
msgid "Price"
msgstr ""
-#: common/models.py:1706
+#: common/models.py:1710
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1866 common/models.py:2044
+#: common/models.py:1870 common/models.py:2048
msgid "Endpoint"
msgstr ""
-#: common/models.py:1867
+#: common/models.py:1871
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1876
+#: common/models.py:1880
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1881 part/models.py:921 plugin/models.py:100
+#: common/models.py:1885 part/models.py:921 plugin/models.py:100
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:104
#: templates/js/translated/table_filters.js:316
@@ -2625,67 +2626,67 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1886
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1896
+#: common/models.py:1900
msgid "Token"
msgstr ""
-#: common/models.py:1897
+#: common/models.py:1901
msgid "Token for access"
msgstr ""
-#: common/models.py:1904
+#: common/models.py:1908
msgid "Secret"
msgstr ""
-#: common/models.py:1905
+#: common/models.py:1909
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2011
+#: common/models.py:2015
msgid "Message ID"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2016
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2020
+#: common/models.py:2024
msgid "Host"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2025
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2032
msgid "Header"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2033
msgid "Header of this message"
msgstr ""
-#: common/models.py:2035
+#: common/models.py:2039
msgid "Body"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2040
msgid "Body of this message"
msgstr ""
-#: common/models.py:2045
+#: common/models.py:2049
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2054
msgid "Worked on"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2055
msgid "Was the work on this message finished?"
msgstr ""
@@ -2747,7 +2748,7 @@ msgstr ""
#: company/models.py:105 company/templates/company/company_base.html:100
#: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:413
+#: templates/js/translated/company.js:448
msgid "Website"
msgstr ""
@@ -2824,7 +2825,7 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:148 company/serializers.py:372
+#: company/models.py:148 company/serializers.py:378
#: company/templates/company/company_base.html:106 part/serializers.py:153
#: part/serializers.py:184 stock/serializers.py:178
msgid "Currency"
@@ -2834,24 +2835,24 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:248 company/models.py:481 stock/models.py:598
+#: company/models.py:248 company/models.py:482 stock/models.py:598
#: stock/serializers.py:85 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:542
msgid "Base Part"
msgstr ""
-#: company/models.py:252 company/models.py:485
+#: company/models.py:252 company/models.py:486
msgid "Select part"
msgstr ""
#: company/models.py:263 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:124
-#: stock/templates/stock/item_base.html:207
-#: templates/js/translated/company.js:397
-#: templates/js/translated/company.js:498
-#: templates/js/translated/company.js:633
-#: templates/js/translated/company.js:919 templates/js/translated/part.js:236
+#: company/templates/company/supplier_part.html:129
+#: stock/templates/stock/item_base.html:210
+#: templates/js/translated/company.js:432
+#: templates/js/translated/company.js:533
+#: templates/js/translated/company.js:668
+#: templates/js/translated/company.js:956 templates/js/translated/part.js:236
#: templates/js/translated/table_filters.js:419
msgid "Manufacturer"
msgstr ""
@@ -2861,12 +2862,12 @@ msgid "Select manufacturer"
msgstr ""
#: company/models.py:270 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:132
-#: templates/js/translated/company.js:269
-#: templates/js/translated/company.js:497
-#: templates/js/translated/company.js:649
-#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077
-#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027
+#: company/templates/company/supplier_part.html:137
+#: templates/js/translated/company.js:304
+#: templates/js/translated/company.js:532
+#: templates/js/translated/company.js:684
+#: templates/js/translated/company.js:975 templates/js/translated/order.js:2239
+#: templates/js/translated/part.js:247 templates/js/translated/part.js:1025
msgid "MPN"
msgstr ""
@@ -2882,10 +2883,10 @@ msgstr ""
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:328 company/models.py:352 company/models.py:504
+#: company/models.py:328 company/models.py:352 company/models.py:505
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:220
msgid "Manufacturer Part"
msgstr ""
@@ -2895,8 +2896,8 @@ msgstr ""
#: company/models.py:365
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2095 templates/js/translated/company.js:546
-#: templates/js/translated/company.js:764 templates/js/translated/part.js:849
+#: stock/models.py:2095 templates/js/translated/company.js:581
+#: templates/js/translated/company.js:799 templates/js/translated/part.js:847
#: templates/js/translated/stock.js:1360
msgid "Value"
msgstr ""
@@ -2905,10 +2906,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:372 part/models.py:888 part/models.py:2425
+#: company/models.py:372 part/models.py:888 part/models.py:2433
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:352
-#: templates/js/translated/company.js:770 templates/js/translated/part.js:855
+#: templates/js/translated/company.js:805 templates/js/translated/part.js:853
msgid "Units"
msgstr ""
@@ -2916,106 +2917,119 @@ msgstr ""
msgid "Parameter units"
msgstr ""
-#: company/models.py:449
+#: company/models.py:450
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:491 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:108 order/models.py:258
-#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:224
+#: company/models.py:492 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:113 order/models.py:258
+#: order/templates/order/order_base.html:121 part/bom.py:237 part/bom.py:265
+#: stock/templates/stock/item_base.html:227
#: templates/email/overdue_purchase_order.html:16
-#: templates/js/translated/company.js:268
-#: templates/js/translated/company.js:401
-#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813
-#: templates/js/translated/part.js:217 templates/js/translated/part.js:995
+#: templates/js/translated/company.js:303
+#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:929 templates/js/translated/order.js:1975
+#: templates/js/translated/part.js:217 templates/js/translated/part.js:993
#: templates/js/translated/table_filters.js:423
msgid "Supplier"
msgstr ""
-#: company/models.py:492 templates/js/translated/part.js:218
+#: company/models.py:493 templates/js/translated/part.js:218
msgid "Select supplier"
msgstr ""
-#: company/models.py:497 company/templates/company/supplier_part.html:118
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267
-#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228
-#: templates/js/translated/part.js:1013
+#: company/models.py:498 company/templates/company/supplier_part.html:123
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:302
+#: templates/js/translated/order.js:2226 templates/js/translated/part.js:228
+#: templates/js/translated/part.js:1011
msgid "SKU"
msgstr ""
-#: company/models.py:498 templates/js/translated/part.js:229
+#: company/models.py:499 templates/js/translated/part.js:229
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:505
+#: company/models.py:506
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:511
+#: company/models.py:512
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:517
+#: company/models.py:518
msgid "Supplier part description"
msgstr ""
-#: company/models.py:522 company/templates/company/supplier_part.html:146
-#: part/models.py:2666 part/templates/part/upload_bom.html:59
+#: company/models.py:523 company/templates/company/supplier_part.html:158
+#: part/models.py:2674 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399
msgid "Note"
msgstr ""
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "base cost"
msgstr ""
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:528 company/templates/company/supplier_part.html:139
-#: stock/models.py:624 stock/templates/stock/item_base.html:240
-#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976
+#: company/models.py:529 company/templates/company/supplier_part.html:144
+#: stock/models.py:624 stock/templates/stock/item_base.html:243
+#: templates/js/translated/company.js:991 templates/js/translated/stock.js:1972
msgid "Packaging"
msgstr ""
-#: company/models.py:528
+#: company/models.py:529
msgid "Part packaging"
msgstr ""
-#: company/models.py:530 part/models.py:1783
+#: company/models.py:532 company/serializers.py:242
+#: company/templates/company/supplier_part.html:151
+#: templates/js/translated/company.js:996 templates/js/translated/order.js:820
+#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:2270 templates/js/translated/order.js:2287
+#: templates/js/translated/part.js:1043 templates/js/translated/part.js:1095
+msgid "Pack Quantity"
+msgstr ""
+
+#: company/models.py:533
+msgid "Unit quantity supplied in a single pack"
+msgstr ""
+
+#: company/models.py:539 part/models.py:1783
msgid "multiple"
msgstr ""
-#: company/models.py:530
+#: company/models.py:539
msgid "Order multiple"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part.html:94
+#: company/models.py:547 company/templates/company/supplier_part.html:99
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823
-#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979
-#: templates/js/translated/part.js:600 templates/js/translated/part.js:603
+#: templates/js/translated/bom.js:915 templates/js/translated/build.js:1823
+#: templates/js/translated/build.js:2686 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:601
#: templates/js/translated/table_filters.js:186
msgid "Available"
msgstr ""
-#: company/models.py:539
+#: company/models.py:548
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:543
+#: company/models.py:552
msgid "Availability Updated"
msgstr ""
-#: company/models.py:544
+#: company/models.py:553
msgid "Date of last update of availability data"
msgstr ""
-#: company/models.py:672
+#: company/models.py:681
msgid "last updated"
msgstr ""
@@ -3029,12 +3043,12 @@ msgstr ""
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386
+#: templates/InvenTree/search.html:179 templates/js/translated/company.js:421
msgid "Company"
msgstr ""
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:624
+#: templates/js/translated/order.js:689
msgid "Create Purchase Order"
msgstr ""
@@ -3047,7 +3061,7 @@ msgid "Edit company information"
msgstr ""
#: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:329
+#: templates/js/translated/company.js:364
msgid "Edit Company"
msgstr ""
@@ -3070,13 +3084,13 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:86 order/models.py:637
+#: company/templates/company/company_base.html:86 order/models.py:641
#: order/templates/order/sales_order_base.html:116 stock/models.py:643
#: stock/models.py:644 stock/serializers.py:809
-#: stock/templates/stock/item_base.html:396
+#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
-#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619
-#: templates/js/translated/stock.js:2559
+#: templates/js/translated/company.js:428 templates/js/translated/order.js:2813
+#: templates/js/translated/stock.js:2555
#: templates/js/translated/table_filters.js:427
msgid "Customer"
msgstr ""
@@ -3211,23 +3225,23 @@ msgid "Manufacturers"
msgstr ""
#: company/templates/company/manufacturer_part.html:35
-#: company/templates/company/supplier_part.html:186
+#: company/templates/company/supplier_part.html:198
#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80
msgid "Order part"
msgstr ""
#: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:681
+#: templates/js/translated/company.js:716
msgid "Edit manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:682
+#: templates/js/translated/company.js:717
msgid "Delete manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:65
-#: company/templates/company/supplier_part.html:77
+#: company/templates/company/supplier_part.html:82
msgid "Internal Part"
msgstr ""
@@ -3250,8 +3264,8 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:371 part/templates/part/detail.html:401
-#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34
-#: users/models.py:220
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:34
+#: users/models.py:222
msgid "Delete"
msgstr ""
@@ -3296,9 +3310,9 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:607
-#: stock/templates/stock/item_base.html:233
-#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041
-#: templates/js/translated/stock.js:1933
+#: stock/templates/stock/item_base.html:236
+#: templates/js/translated/company.js:945 templates/js/translated/order.js:1135
+#: templates/js/translated/stock.js:1929
msgid "Supplier Part"
msgstr ""
@@ -3308,7 +3322,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:40
#: company/templates/company/supplier_part.html:41
-#: company/templates/company/supplier_part.html:187
+#: company/templates/company/supplier_part.html:199
#: part/templates/part/detail.html:88
msgid "Order Part"
msgstr ""
@@ -3320,81 +3334,87 @@ msgstr ""
#: company/templates/company/supplier_part.html:48
#: company/templates/company/supplier_part.html:49
-#: templates/js/translated/company.js:212
+#: templates/js/translated/company.js:247
msgid "Edit Supplier Part"
msgstr ""
#: company/templates/company/supplier_part.html:53
+#: company/templates/company/supplier_part.html:54
+#: templates/js/translated/company.js:222
+msgid "Duplicate Supplier Part"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:58
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:54
+#: company/templates/company/supplier_part.html:59
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:112
+#: company/templates/company/supplier_part.html:117
msgid "No supplier information available"
msgstr ""
-#: company/templates/company/supplier_part.html:165
+#: company/templates/company/supplier_part.html:177
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr ""
-#: company/templates/company/supplier_part.html:168
+#: company/templates/company/supplier_part.html:180
#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181
msgid "Create new stock item"
msgstr ""
-#: company/templates/company/supplier_part.html:169
+#: company/templates/company/supplier_part.html:181
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182
#: templates/js/translated/stock.js:435
msgid "New Stock Item"
msgstr ""
-#: company/templates/company/supplier_part.html:182
+#: company/templates/company/supplier_part.html:194
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr ""
-#: company/templates/company/supplier_part.html:207
+#: company/templates/company/supplier_part.html:219
#: part/templates/part/prices.html:10
msgid "Pricing Information"
msgstr ""
-#: company/templates/company/supplier_part.html:212
-#: company/templates/company/supplier_part.html:326
-#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253
+#: company/templates/company/supplier_part.html:224
+#: company/templates/company/supplier_part.html:338
+#: part/templates/part/prices.html:276 templates/js/translated/part.js:2282
msgid "Add Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:250
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:252
-#: templates/js/translated/part.js:2263
+#: company/templates/company/supplier_part.html:264
+#: templates/js/translated/part.js:2292
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:266
-#: templates/js/translated/part.js:2277
+#: company/templates/company/supplier_part.html:278
+#: templates/js/translated/part.js:2306
msgid "Edit Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:291
+#: company/templates/company/supplier_part.html:303
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part.html:292
+#: company/templates/company/supplier_part.html:304
msgid "Delete price break"
msgstr ""
-#: company/templates/company/supplier_part.html:301
+#: company/templates/company/supplier_part.html:313
msgid "Last updated"
msgstr ""
-#: company/templates/company/supplier_part.html:382
+#: company/templates/company/supplier_part.html:394
msgid "Update Part Availability"
msgstr ""
@@ -3404,8 +3424,8 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313
-#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959
+#: templates/js/translated/part.js:749 templates/js/translated/part.js:1334
+#: templates/js/translated/part.js:1495 templates/js/translated/stock.js:959
#: templates/js/translated/stock.js:1754 templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -3432,7 +3452,7 @@ msgstr ""
#: stock/templates/stock/location.html:178
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2436 users/models.py:40
+#: templates/js/translated/stock.js:2432 users/models.py:40
msgid "Stock Items"
msgstr ""
@@ -3534,7 +3554,7 @@ msgstr ""
msgid "Order description"
msgstr ""
-#: order/models.py:84 order/models.py:1246
+#: order/models.py:84 order/models.py:1250
msgid "Link to external page"
msgstr ""
@@ -3550,11 +3570,11 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:241 order/models.py:624
+#: order/models.py:241 order/models.py:628
msgid "Order reference"
msgstr ""
-#: order/models.py:249 order/models.py:642
+#: order/models.py:249 order/models.py:646
msgid "Purchase order status"
msgstr ""
@@ -3562,8 +3582,8 @@ msgstr ""
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:262 order/templates/order/order_base.html:127
-#: templates/js/translated/order.js:1822
+#: order/models.py:262 order/templates/order/order_base.html:133
+#: templates/js/translated/order.js:1984
msgid "Supplier Reference"
msgstr ""
@@ -3603,245 +3623,245 @@ msgstr ""
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:638
+#: order/models.py:642
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer Reference "
msgstr ""
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:649
+#: order/models.py:653
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:652 order/models.py:1204
-#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828
+#: order/models.py:656 order/models.py:1208
+#: templates/js/translated/order.js:2860 templates/js/translated/order.js:3022
msgid "Shipment Date"
msgstr ""
-#: order/models.py:659
+#: order/models.py:663
msgid "shipped by"
msgstr ""
-#: order/models.py:714
+#: order/models.py:718
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:718
+#: order/models.py:722
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:721
+#: order/models.py:725 templates/js/translated/order.js:419
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:724
+#: order/models.py:728
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:898
+#: order/models.py:902
msgid "Item quantity"
msgstr ""
-#: order/models.py:904
+#: order/models.py:908
msgid "Line item reference"
msgstr ""
-#: order/models.py:906
+#: order/models.py:910
msgid "Line item notes"
msgstr ""
-#: order/models.py:911
+#: order/models.py:915
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:929
+#: order/models.py:933
msgid "Context"
msgstr ""
-#: order/models.py:930
+#: order/models.py:934
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:939
+#: order/models.py:943
msgid "Unit price"
msgstr ""
-#: order/models.py:969
+#: order/models.py:973
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:977
+#: order/models.py:981
msgid "deleted"
msgstr ""
-#: order/models.py:983 order/models.py:1063 order/models.py:1104
-#: order/models.py:1198 order/models.py:1330
-#: templates/js/translated/order.js:3284
+#: order/models.py:987 order/models.py:1067 order/models.py:1108
+#: order/models.py:1202 order/models.py:1334
+#: templates/js/translated/order.js:3478
msgid "Order"
msgstr ""
-#: order/models.py:984 order/models.py:1063
+#: order/models.py:988 order/models.py:1067
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:179
+#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
-#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042
-#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972
-#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540
+#: templates/js/translated/order.js:619 templates/js/translated/order.js:1136
+#: templates/js/translated/order.js:1959 templates/js/translated/part.js:970
+#: templates/js/translated/stock.js:1909 templates/js/translated/stock.js:2536
msgid "Purchase Order"
msgstr ""
-#: order/models.py:1002
+#: order/models.py:1006
msgid "Supplier part"
msgstr ""
-#: order/models.py:1009 order/templates/order/order_base.html:172
-#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105
+#: order/models.py:1013 order/templates/order/order_base.html:178
+#: templates/js/translated/order.js:1641 templates/js/translated/order.js:2373
+#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1125
#: templates/js/translated/table_filters.js:338
msgid "Received"
msgstr ""
-#: order/models.py:1010
+#: order/models.py:1014
msgid "Number of items received"
msgstr ""
-#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734
-#: stock/serializers.py:169 stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1964
+#: order/models.py:1021 part/templates/part/prices.html:181 stock/models.py:734
+#: stock/serializers.py:169 stock/templates/stock/item_base.html:189
+#: templates/js/translated/stock.js:1960
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1018
+#: order/models.py:1022
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1026
+#: order/models.py:1030
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1092
+#: order/models.py:1096
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1097
+#: order/models.py:1101
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1123 part/templates/part/part_pricing.html:115
+#: order/models.py:1127 part/templates/part/part_pricing.html:115
#: part/templates/part/prices.html:121 part/templates/part/prices.html:290
msgid "Sale Price"
msgstr ""
-#: order/models.py:1124
+#: order/models.py:1128
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1129
+#: order/models.py:1133
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1205
+#: order/models.py:1209
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1212
+#: order/models.py:1216
msgid "Checked By"
msgstr ""
-#: order/models.py:1213
+#: order/models.py:1217
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1220 order/models.py:1405 order/serializers.py:1170
-#: order/serializers.py:1294 templates/js/translated/model_renderers.js:314
+#: order/models.py:1224 order/models.py:1409 order/serializers.py:1224
+#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314
msgid "Shipment"
msgstr ""
-#: order/models.py:1221
+#: order/models.py:1225
msgid "Shipment number"
msgstr ""
-#: order/models.py:1225
+#: order/models.py:1229
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1231
+#: order/models.py:1235
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1232
+#: order/models.py:1236
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1239
+#: order/models.py:1243
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1240
+#: order/models.py:1244
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1258
+#: order/models.py:1262
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1261
+#: order/models.py:1265
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1364 order/models.py:1366
+#: order/models.py:1368 order/models.py:1370
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1370
+#: order/models.py:1374
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1372
+#: order/models.py:1376
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1375
+#: order/models.py:1379
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1385 order/serializers.py:1066
+#: order/models.py:1389 order/serializers.py:1086
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1388
+#: order/models.py:1392
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1389
+#: order/models.py:1393
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1397
+#: order/models.py:1401
msgid "Line"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1410
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1419 templates/js/translated/notification.js:55
+#: order/models.py:1423 templates/js/translated/notification.js:55
msgid "Item"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1424
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1423
+#: order/models.py:1427
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3853,111 +3873,119 @@ msgstr ""
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:294
+#: order/serializers.py:209 order/serializers.py:1104
+msgid "Allow order to be closed with incomplete line items"
+msgstr ""
+
+#: order/serializers.py:220 order/serializers.py:1115
+msgid "Order has incomplete line items"
+msgstr ""
+
+#: order/serializers.py:311
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:318
+#: order/serializers.py:335
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:354
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:342
+#: order/serializers.py:359
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:348
+#: order/serializers.py:365
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:349
+#: order/serializers.py:366
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:413 order/serializers.py:1138
+#: order/serializers.py:430 order/serializers.py:1192
msgid "Line Item"
msgstr ""
-#: order/serializers.py:419
+#: order/serializers.py:436
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:429 order/serializers.py:533
+#: order/serializers.py:446 order/serializers.py:553
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:448 templates/js/translated/order.js:1354
+#: order/serializers.py:465 templates/js/translated/order.js:1497
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:456 templates/js/translated/order.js:1365
+#: order/serializers.py:473 templates/js/translated/order.js:1508
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:469
+#: order/serializers.py:486
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:470
+#: order/serializers.py:487
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:484
+#: order/serializers.py:501
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:507
+#: order/serializers.py:527
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:549
+#: order/serializers.py:569
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:566
+#: order/serializers.py:586
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:577
+#: order/serializers.py:597
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:883
+#: order/serializers.py:903
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:964
+#: order/serializers.py:984
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1027 order/serializers.py:1147
+#: order/serializers.py:1047 order/serializers.py:1201
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1049
+#: order/serializers.py:1069
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1160
+#: order/serializers.py:1214
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1182 order/serializers.py:1302
+#: order/serializers.py:1236 order/serializers.py:1356
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1185 order/serializers.py:1305
+#: order/serializers.py:1239 order/serializers.py:1359
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1235
+#: order/serializers.py:1289
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1245
+#: order/serializers.py:1299
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3993,83 +4021,83 @@ msgstr ""
msgid "Order actions"
msgstr ""
-#: order/templates/order/order_base.html:45
+#: order/templates/order/order_base.html:46
#: order/templates/order/sales_order_base.html:58
msgid "Edit order"
msgstr ""
-#: order/templates/order/order_base.html:47
+#: order/templates/order/order_base.html:50
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr ""
-#: order/templates/order/order_base.html:50
+#: order/templates/order/order_base.html:55
msgid "Duplicate order"
msgstr ""
-#: order/templates/order/order_base.html:55
+#: order/templates/order/order_base.html:61
msgid "Place order"
msgstr ""
-#: order/templates/order/order_base.html:59
+#: order/templates/order/order_base.html:65
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:61
+#: order/templates/order/order_base.html:67
#: order/templates/order/purchase_order_detail.html:30
msgid "Receive Items"
msgstr ""
-#: order/templates/order/order_base.html:63
+#: order/templates/order/order_base.html:69
msgid "Mark order as complete"
msgstr ""
-#: order/templates/order/order_base.html:65
+#: order/templates/order/order_base.html:71
#: order/templates/order/sales_order_base.html:68
msgid "Complete Order"
msgstr ""
-#: order/templates/order/order_base.html:87
+#: order/templates/order/order_base.html:93
#: order/templates/order/sales_order_base.html:80
msgid "Order Reference"
msgstr ""
-#: order/templates/order/order_base.html:92
+#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:85
msgid "Order Description"
msgstr ""
-#: order/templates/order/order_base.html:97
+#: order/templates/order/order_base.html:103
#: order/templates/order/sales_order_base.html:90
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:120
+#: order/templates/order/order_base.html:126
msgid "No suppplier information available"
msgstr ""
-#: order/templates/order/order_base.html:133
+#: order/templates/order/order_base.html:139
#: order/templates/order/sales_order_base.html:129
msgid "Completed Line Items"
msgstr ""
-#: order/templates/order/order_base.html:139
+#: order/templates/order/order_base.html:145
#: order/templates/order/sales_order_base.html:135
#: order/templates/order/sales_order_base.html:145
msgid "Incomplete"
msgstr ""
-#: order/templates/order/order_base.html:158
+#: order/templates/order/order_base.html:164
#: report/templates/report/inventree_build_order_base.html:121
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:186
+#: order/templates/order/order_base.html:192
#: order/templates/order/sales_order_base.html:190
msgid "Total cost"
msgstr ""
-#: order/templates/order/order_base.html:190
+#: order/templates/order/order_base.html:196
#: order/templates/order/sales_order_base.html:194
msgid "Total cost could not be calculated"
msgstr ""
@@ -4102,8 +4130,8 @@ msgstr ""
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463
#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015
-#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443
-#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625
+#: templates/js/translated/order.js:1084 templates/js/translated/order.js:1586
+#: templates/js/translated/order.js:3097 templates/js/translated/stock.js:625
#: templates/js/translated/stock.js:793
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
@@ -4139,7 +4167,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:26
#: order/templates/order/sales_order_detail.html:22
#: order/templates/order/sales_order_detail.html:255
-#: templates/js/translated/order.js:663
+#: templates/js/translated/order.js:728
msgid "Add Line Item"
msgstr ""
@@ -4167,7 +4195,7 @@ msgstr ""
msgid "Order Notes"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:228
+#: order/templates/order/purchase_order_detail.html:232
msgid "Add Order Line"
msgstr ""
@@ -4185,12 +4213,12 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:231
+#: templates/js/translated/order.js:232
msgid "Complete Shipments"
msgstr ""
#: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:258
+#: templates/js/translated/order.js:397
msgid "Complete Sales Order"
msgstr ""
@@ -4199,7 +4227,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2632
+#: templates/js/translated/order.js:2826
msgid "Customer Reference"
msgstr ""
@@ -4223,7 +4251,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:72
-#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1116
#: templates/js/translated/build.js:1923
msgid "Actions"
msgstr ""
@@ -4308,14 +4336,14 @@ msgid "Total Stock"
msgstr ""
#: part/bom.py:129 part/templates/part/part_base.html:189
-#: templates/js/translated/order.js:3724
+#: templates/js/translated/order.js:3918
msgid "Available Stock"
msgstr ""
#: part/bom.py:130 part/templates/part/part_base.html:207
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853
-#: templates/js/translated/part.js:590 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503
+#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1853
+#: templates/js/translated/part.js:588 templates/js/translated/part.js:608
+#: templates/js/translated/part.js:1337 templates/js/translated/part.js:1520
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr ""
@@ -4344,7 +4372,7 @@ msgstr ""
msgid "Icon (optional)"
msgstr ""
-#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16
+#: part/models.py:122 part/models.py:2516 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -4361,7 +4389,7 @@ msgstr ""
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146
+#: templates/js/translated/part.js:2004 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr ""
@@ -4391,7 +4419,7 @@ msgstr ""
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:745 part/models.py:2562
+#: part/models.py:745 part/models.py:2570
msgid "Part name"
msgstr ""
@@ -4424,11 +4452,11 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:783 part/models.py:2257 part/models.py:2507
+#: part/models.py:783 part/models.py:2265 part/models.py:2515
#: part/templates/part/part_base.html:257
#: templates/InvenTree/settings/settings.html:232
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688
+#: templates/js/translated/part.js:1477 templates/js/translated/part.js:1717
msgid "Category"
msgstr ""
@@ -4437,7 +4465,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:789 part/templates/part/part_base.html:266
-#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:1430
#: templates/js/translated/stock.js:1726
msgid "IPN"
msgstr ""
@@ -4451,7 +4479,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:797 part/templates/part/part_base.html:273
-#: report/models.py:171 templates/js/translated/part.js:743
+#: report/models.py:171 templates/js/translated/part.js:741
msgid "Revision"
msgstr ""
@@ -4543,245 +4571,245 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2304
+#: part/models.py:2312
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2321
+#: part/models.py:2329
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2341 templates/js/translated/part.js:2026
+#: part/models.py:2349 templates/js/translated/part.js:2055
#: templates/js/translated/stock.js:1340
msgid "Test Name"
msgstr ""
-#: part/models.py:2342
+#: part/models.py:2350
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2347
+#: part/models.py:2355
msgid "Test Description"
msgstr ""
-#: part/models.py:2348
+#: part/models.py:2356
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2353 templates/js/translated/part.js:2035
+#: part/models.py:2361 templates/js/translated/part.js:2064
#: templates/js/translated/table_filters.js:302
msgid "Required"
msgstr ""
-#: part/models.py:2354
+#: part/models.py:2362
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2359 templates/js/translated/part.js:2043
+#: part/models.py:2367 templates/js/translated/part.js:2072
msgid "Requires Value"
msgstr ""
-#: part/models.py:2360
+#: part/models.py:2368
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2365 templates/js/translated/part.js:2050
+#: part/models.py:2373 templates/js/translated/part.js:2079
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2366
+#: part/models.py:2374
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2374
+#: part/models.py:2382
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2410
+#: part/models.py:2418
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2418
+#: part/models.py:2426
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2433
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2430
+#: part/models.py:2438
msgid "Parameter description"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2471
msgid "Parent Part"
msgstr ""
-#: part/models.py:2465 part/models.py:2513 part/models.py:2514
+#: part/models.py:2473 part/models.py:2521 part/models.py:2522
#: templates/InvenTree/settings/settings.html:227
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Data"
msgstr ""
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2518 templates/InvenTree/settings/settings.html:236
+#: part/models.py:2526 templates/InvenTree/settings/settings.html:236
msgid "Default Value"
msgstr ""
-#: part/models.py:2519
+#: part/models.py:2527
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2554
+#: part/models.py:2562
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2557 templates/js/translated/model_renderers.js:212
+#: part/models.py:2565 templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr ""
-#: part/models.py:2558
+#: part/models.py:2566
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2561
+#: part/models.py:2569
msgid "Part Name"
msgstr ""
-#: part/models.py:2565
+#: part/models.py:2573
msgid "Part IPN"
msgstr ""
-#: part/models.py:2566
+#: part/models.py:2574
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2569
+#: part/models.py:2577
msgid "Level"
msgstr ""
-#: part/models.py:2570
+#: part/models.py:2578
msgid "BOM level"
msgstr ""
-#: part/models.py:2639
+#: part/models.py:2647
msgid "Select parent part"
msgstr ""
-#: part/models.py:2647
+#: part/models.py:2655
msgid "Sub part"
msgstr ""
-#: part/models.py:2648
+#: part/models.py:2656
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2654
+#: part/models.py:2662
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2656 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997
+#: part/models.py:2664 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:876 templates/js/translated/bom.js:1005
#: templates/js/translated/table_filters.js:100
msgid "Optional"
msgstr ""
-#: part/models.py:2656
+#: part/models.py:2664
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2659 part/templates/part/upload_bom.html:55
+#: part/models.py:2667 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2660
+#: part/models.py:2668
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2671
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2666
+#: part/models.py:2674
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "Checksum"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2672 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1014
+#: part/models.py:2680 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:1022
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:96
msgid "Inherited"
msgstr ""
-#: part/models.py:2673
+#: part/models.py:2681
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2678 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1006
+#: part/models.py:2686 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:1014
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2679
+#: part/models.py:2687
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2757 stock/models.py:468
+#: part/models.py:2765 stock/models.py:468
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2766 part/models.py:2768
+#: part/models.py:2774 part/models.py:2776
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2873
+#: part/models.py:2881
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2902
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2915
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2923
msgid "Substitute part"
msgstr ""
-#: part/models.py:2930
+#: part/models.py:2938
msgid "Part 1"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Part 2"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2960
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:2956
+#: part/models.py:2964
msgid "Duplicate relationship already exists"
msgstr ""
@@ -5309,10 +5337,10 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:624
-#: templates/js/translated/company.js:884
+#: templates/js/translated/company.js:659
+#: templates/js/translated/company.js:920
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:654 templates/js/translated/part.js:731
+#: templates/js/translated/part.js:652 templates/js/translated/part.js:729
msgid "Inactive"
msgstr ""
@@ -5327,28 +5355,28 @@ msgid "This part is a variant of %(link)s"
msgstr ""
#: part/templates/part/part_base.html:194
-#: templates/js/translated/company.js:974
+#: templates/js/translated/company.js:1027
#: templates/js/translated/table_filters.js:201
msgid "In Stock"
msgstr ""
#: part/templates/part/part_base.html:215
-#: stock/templates/stock/item_base.html:379
+#: stock/templates/stock/item_base.html:382
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:224
-#: stock/templates/stock/item_base.html:372
+#: stock/templates/stock/item_base.html:375
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1043
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320
-#: templates/js/translated/part.js:1510
+#: part/templates/part/part_base.html:238 templates/js/translated/part.js:591
+#: templates/js/translated/part.js:611 templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1527
msgid "Building"
msgstr ""
@@ -5361,7 +5389,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:328
+#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
@@ -5400,7 +5428,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:989
+#: templates/js/translated/bom.js:997
msgid "No supplier pricing available"
msgstr ""
@@ -5439,7 +5467,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:53
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468
+#: templates/js/translated/order.js:2001 templates/js/translated/stock.js:2464
msgid "Date"
msgstr ""
@@ -5495,7 +5523,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983
+#: part/templates/part/prices.html:160 templates/js/translated/bom.js:991
msgid "Supplier Cost"
msgstr ""
@@ -5533,8 +5561,8 @@ msgstr ""
msgid "No sale pice history available for this part."
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616
-#: templates/js/translated/part.js:1308
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:614
+#: templates/js/translated/part.js:1329 templates/js/translated/part.js:1331
msgid "No Stock"
msgstr ""
@@ -5735,19 +5763,19 @@ msgstr ""
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:186
+#: plugin/models.py:188
msgid "Plugin"
msgstr ""
-#: plugin/models.py:249
+#: plugin/models.py:253
msgid "Method"
msgstr ""
-#: plugin/plugin.py:251
+#: plugin/plugin.py:252
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:263
+#: plugin/plugin.py:264
msgid "No date found"
msgstr ""
@@ -5925,12 +5953,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:648 stock/templates/stock/item_base.html:317
+#: stock/models.py:648 stock/templates/stock/item_base.html:320
#: templates/js/translated/build.js:456 templates/js/translated/build.js:608
#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706
#: templates/js/translated/model_renderers.js:118
-#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403
-#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490
+#: templates/js/translated/order.js:121 templates/js/translated/order.js:3597
+#: templates/js/translated/order.js:3684 templates/js/translated/stock.js:490
msgid "Serial Number"
msgstr ""
@@ -5963,7 +5991,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780
-#: templates/js/translated/stock.js:2717
+#: templates/js/translated/stock.js:2713
msgid "Serial"
msgstr ""
@@ -5980,7 +6008,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
#: stock/models.py:89 stock/models.py:739
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:250
msgid "Owner"
msgstr ""
@@ -6046,7 +6074,7 @@ msgstr ""
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:631 stock/templates/stock/item_base.html:356
+#: stock/models.py:631 stock/templates/stock/item_base.html:359
msgid "Installed In"
msgstr ""
@@ -6086,8 +6114,8 @@ msgstr ""
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:706 stock/templates/stock/item_base.html:424
-#: templates/js/translated/stock.js:1883
+#: stock/models.py:706 stock/templates/stock/item_base.html:427
+#: templates/js/translated/stock.js:1879
msgid "Expiry Date"
msgstr ""
@@ -6379,7 +6407,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2857
msgid "Install Stock Item"
msgstr ""
@@ -6479,134 +6507,135 @@ msgstr ""
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:158
+#: stock/templates/stock/item_base.html:161
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:193
+#: stock/templates/stock/item_base.html:196
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:214
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:254
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/location.html:132
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:268
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:266
+#: stock/templates/stock/item_base.html:269
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:279
+#: stock/templates/stock/item_base.html:282
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:290
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:298
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:301
+#: stock/templates/stock/item_base.html:304
msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
msgstr ""
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:345
+#: stock/templates/stock/item_base.html:348
msgid "Available Quantity"
msgstr ""
-#: stock/templates/stock/item_base.html:389
+#: stock/templates/stock/item_base.html:392
#: templates/js/translated/build.js:1729
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:404
+#: stock/templates/stock/item_base.html:407
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#: templates/js/translated/table_filters.js:269
msgid "Expired"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:275
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:437
-#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899
+#: stock/templates/stock/item_base.html:440
+#: templates/js/translated/company.js:1038
+#: templates/js/translated/stock.js:1895
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:442
+#: stock/templates/stock/item_base.html:445
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:516
+#: stock/templates/stock/item_base.html:519
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:589
+#: stock/templates/stock/item_base.html:592
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:592
+#: stock/templates/stock/item_base.html:595
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:593
+#: stock/templates/stock/item_base.html:596
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:601
+#: stock/templates/stock/item_base.html:604
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:629
+#: stock/templates/stock/item_base.html:632
msgid "Return to Stock"
msgstr ""
@@ -6739,11 +6768,11 @@ msgstr ""
msgid "Refer to the error log in the admin interface for further details"
msgstr ""
-#: templates/503.html:11 templates/503.html:36
+#: templates/503.html:11 templates/503.html:34
msgid "Site is in Maintenance"
msgstr ""
-#: templates/503.html:42
+#: templates/503.html:40
msgid "The site is currently in maintenance and should be up again soon!"
msgstr ""
@@ -7509,7 +7538,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:644
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "Bekräfta"
@@ -7728,7 +7757,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1481
+#: templates/js/translated/bom.js:1489
msgid "Required Quantity"
msgstr ""
@@ -7742,7 +7771,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2522
+#: templates/js/translated/part.js:2551
msgid "Minimum Quantity"
msgstr ""
@@ -7947,7 +7976,7 @@ msgstr ""
#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620
#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601
#: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003
-#: templates/js/translated/order.js:1085 templates/modals.html:15
+#: templates/js/translated/order.js:1179 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -7957,12 +7986,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145
+#: templates/js/translated/order.js:960 templates/js/translated/tables.js:145
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:867
+#: templates/js/translated/order.js:961
msgid "Select file format"
msgstr ""
@@ -8058,73 +8087,73 @@ msgstr ""
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857
-#: templates/js/translated/order.js:3738
+#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1857
+#: templates/js/translated/order.js:3932
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861
+#: templates/js/translated/bom.js:940 templates/js/translated/build.js:1861
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516
+#: templates/js/translated/bom.js:942 templates/js/translated/build.js:1863
+#: templates/js/translated/part.js:761 templates/js/translated/part.js:1533
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865
+#: templates/js/translated/bom.js:944 templates/js/translated/build.js:1865
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:954
+#: templates/js/translated/bom.js:962
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:969
+#: templates/js/translated/bom.js:977
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:976
+#: templates/js/translated/bom.js:984
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145
+#: templates/js/translated/bom.js:1033 templates/js/translated/bom.js:1153
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1052
+#: templates/js/translated/bom.js:1060
msgid "Including On Order"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1124
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1118
+#: templates/js/translated/bom.js:1126
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1120
+#: templates/js/translated/bom.js:1128
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284
+#: templates/js/translated/bom.js:1130 templates/js/translated/bom.js:1292
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1124
+#: templates/js/translated/bom.js:1132
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650
+#: templates/js/translated/bom.js:1228 templates/js/translated/build.js:1650
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789
+#: templates/js/translated/bom.js:1472 templates/js/translated/build.js:1789
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1486
+#: templates/js/translated/bom.js:1498
msgid "Inherited from parent BOM"
msgstr ""
@@ -8267,12 +8296,12 @@ msgid "No required tests for this build"
msgstr ""
#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697
-#: templates/js/translated/order.js:3438
+#: templates/js/translated/order.js:3632
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698
-#: templates/js/translated/order.js:3439
+#: templates/js/translated/order.js:3633
msgid "Delete stock allocation"
msgstr ""
@@ -8292,20 +8321,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745
+#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3939
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743
+#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3937
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127
-#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757
+#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3951
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837
+#: templates/js/translated/build.js:1930 templates/js/translated/order.js:4031
msgid "Build stock"
msgstr ""
@@ -8313,21 +8342,21 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830
+#: templates/js/translated/build.js:1937 templates/js/translated/order.js:4024
msgid "Allocate stock"
msgstr ""
#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965
+#: templates/js/translated/order.js:1007 templates/js/translated/order.js:3159
#: templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966
+#: templates/js/translated/build.js:1977 templates/js/translated/order.js:3160
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914
+#: templates/js/translated/build.js:2026 templates/js/translated/order.js:3108
msgid "Specify stock allocation quantity"
msgstr ""
@@ -8339,7 +8368,7 @@ msgstr ""
msgid "All selected parts have been fully allocated"
msgstr ""
-#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980
+#: templates/js/translated/build.js:2115 templates/js/translated/order.js:3174
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
@@ -8347,11 +8376,11 @@ msgstr ""
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077
+#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3271
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154
+#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3348
msgid "No matching stock items"
msgstr ""
@@ -8383,9 +8412,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401
-#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1422
+#: templates/js/translated/part.js:1948 templates/js/translated/stock.js:1686
+#: templates/js/translated/stock.js:2382
msgid "Select"
msgstr ""
@@ -8397,7 +8426,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647
+#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2643
msgid "No user information"
msgstr ""
@@ -8405,111 +8434,115 @@ msgstr ""
msgid "No parts allocated for"
msgstr ""
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:179
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:181
msgid "Add Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
msgid "Edit Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:167 templates/js/translated/order.js:511
+#: templates/js/translated/company.js:169 templates/js/translated/order.js:576
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:195 templates/js/translated/order.js:734
+#: templates/js/translated/company.js:197 templates/js/translated/order.js:828
msgid "Add Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:262
+#: templates/js/translated/company.js:297
msgid "All selected supplier parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:278
+#: templates/js/translated/company.js:313
msgid "Delete Supplier Parts"
msgstr ""
-#: templates/js/translated/company.js:350
+#: templates/js/translated/company.js:385
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:427
+#: templates/js/translated/company.js:462
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:471
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:451
+#: templates/js/translated/company.js:486
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:492
+#: templates/js/translated/company.js:527
msgid "All selected manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:507
+#: templates/js/translated/company.js:542
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:541
+#: templates/js/translated/company.js:576
msgid "All selected parameters will be deleted"
msgstr ""
-#: templates/js/translated/company.js:555
+#: templates/js/translated/company.js:590
msgid "Delete Parameters"
msgstr ""
-#: templates/js/translated/company.js:596
+#: templates/js/translated/company.js:631
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:616
-#: templates/js/translated/company.js:876 templates/js/translated/part.js:638
-#: templates/js/translated/part.js:723
+#: templates/js/translated/company.js:651
+#: templates/js/translated/company.js:912 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:721
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:620
-#: templates/js/translated/company.js:880 templates/js/translated/part.js:642
-#: templates/js/translated/part.js:727
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:916 templates/js/translated/part.js:640
+#: templates/js/translated/part.js:725
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:748 templates/js/translated/part.js:830
+#: templates/js/translated/company.js:783 templates/js/translated/part.js:828
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:785 templates/js/translated/part.js:872
+#: templates/js/translated/company.js:820 templates/js/translated/part.js:870
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:786 templates/js/translated/part.js:873
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:871
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:805 templates/js/translated/part.js:890
+#: templates/js/translated/company.js:840 templates/js/translated/part.js:888
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:816 templates/js/translated/part.js:902
+#: templates/js/translated/company.js:851 templates/js/translated/part.js:900
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:856
+#: templates/js/translated/company.js:891
msgid "No supplier parts found"
msgstr ""
-#: templates/js/translated/company.js:1002
+#: templates/js/translated/company.js:1032
+msgid "Availability"
+msgstr ""
+
+#: templates/js/translated/company.js:1055
msgid "Edit supplier part"
msgstr ""
-#: templates/js/translated/company.js:1003
+#: templates/js/translated/company.js:1056
msgid "Delete supplier part"
msgstr ""
@@ -8547,61 +8580,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:367 templates/js/translated/forms.js:382
-#: templates/js/translated/forms.js:396 templates/js/translated/forms.js:410
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:369
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:384
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:398
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:670
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:771
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1269 templates/modals.html:19
+#: templates/js/translated/forms.js:1274 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1702
+#: templates/js/translated/forms.js:1707
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1917 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2170
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2648
+#: templates/js/translated/forms.js:2653
msgid "Select Columns"
msgstr ""
@@ -8792,409 +8825,422 @@ msgstr ""
msgid "Notifications will load here"
msgstr ""
-#: templates/js/translated/order.js:96
+#: templates/js/translated/order.js:97
msgid "No stock items have been allocated to this shipment"
msgstr ""
-#: templates/js/translated/order.js:101
+#: templates/js/translated/order.js:102
msgid "The following stock items will be shipped"
msgstr ""
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:142
msgid "Complete Shipment"
msgstr ""
-#: templates/js/translated/order.js:161
+#: templates/js/translated/order.js:162
msgid "Confirm Shipment"
msgstr ""
-#: templates/js/translated/order.js:217
+#: templates/js/translated/order.js:218
msgid "No pending shipments found"
msgstr ""
-#: templates/js/translated/order.js:221
+#: templates/js/translated/order.js:222
msgid "No stock items have been allocated to pending shipments"
msgstr ""
-#: templates/js/translated/order.js:253
+#: templates/js/translated/order.js:254
msgid "Skip"
msgstr ""
-#: templates/js/translated/order.js:283
+#: templates/js/translated/order.js:284
msgid "Complete Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:289
+#: templates/js/translated/order.js:301 templates/js/translated/order.js:413
msgid "Mark this order as complete?"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:307
msgid "All line items have been received"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:312
msgid "This order has line items which have not been marked as received."
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:313 templates/js/translated/order.js:427
msgid "Completing this order means that the order and line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:324
+#: templates/js/translated/order.js:336
msgid "Cancel Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:329
+#: templates/js/translated/order.js:341
msgid "Are you sure you wish to cancel this purchase order?"
msgstr ""
-#: templates/js/translated/order.js:335
+#: templates/js/translated/order.js:347
msgid "This purchase order can not be cancelled"
msgstr ""
-#: templates/js/translated/order.js:358
+#: templates/js/translated/order.js:370
msgid "Issue Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:363
+#: templates/js/translated/order.js:375
msgid "After placing this purchase order, line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:385
+#: templates/js/translated/order.js:426
+msgid "This order has line items which have not been completed."
+msgstr ""
+
+#: templates/js/translated/order.js:450
msgid "Cancel Sales Order"
msgstr ""
-#: templates/js/translated/order.js:390
+#: templates/js/translated/order.js:455
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:444
+#: templates/js/translated/order.js:509
msgid "Create New Shipment"
msgstr ""
-#: templates/js/translated/order.js:469
+#: templates/js/translated/order.js:534
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:494
+#: templates/js/translated/order.js:559
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:555
+#: templates/js/translated/order.js:620
msgid "Select purchase order to duplicate"
msgstr ""
-#: templates/js/translated/order.js:562
+#: templates/js/translated/order.js:627
msgid "Duplicate Line Items"
msgstr ""
-#: templates/js/translated/order.js:563
+#: templates/js/translated/order.js:628
msgid "Duplicate all line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:570
+#: templates/js/translated/order.js:635
msgid "Duplicate Extra Lines"
msgstr ""
-#: templates/js/translated/order.js:571
+#: templates/js/translated/order.js:636
msgid "Duplicate extra line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:588
+#: templates/js/translated/order.js:653
msgid "Edit Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:605
+#: templates/js/translated/order.js:670
msgid "Duplication Options"
msgstr ""
-#: templates/js/translated/order.js:863
+#: templates/js/translated/order.js:957
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:914
+#: templates/js/translated/order.js:1008
msgid "At least one purchaseable part must be selected"
msgstr ""
-#: templates/js/translated/order.js:939
+#: templates/js/translated/order.js:1033
msgid "Quantity to order"
msgstr ""
-#: templates/js/translated/order.js:948
+#: templates/js/translated/order.js:1042
msgid "New supplier part"
msgstr ""
-#: templates/js/translated/order.js:966
+#: templates/js/translated/order.js:1060
msgid "New purchase order"
msgstr ""
-#: templates/js/translated/order.js:999
+#: templates/js/translated/order.js:1093
msgid "Add to purchase order"
msgstr ""
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1233
msgid "No matching supplier parts"
msgstr ""
-#: templates/js/translated/order.js:1123
+#: templates/js/translated/order.js:1252
msgid "No matching purchase orders"
msgstr ""
-#: templates/js/translated/order.js:1300
+#: templates/js/translated/order.js:1429
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1430
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420
+#: templates/js/translated/order.js:1450 templates/js/translated/order.js:1563
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431
+#: templates/js/translated/order.js:1456 templates/js/translated/order.js:1574
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1339
+#: templates/js/translated/order.js:1471
+msgid "Received Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:1482
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144
+#: templates/js/translated/order.js:1546 templates/js/translated/stock.js:2140
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:1494
+#: templates/js/translated/order.js:1639
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:1495
+#: templates/js/translated/order.js:1640
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:1497
+#: templates/js/translated/order.js:1642
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:1516
+#: templates/js/translated/order.js:1661
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:1517
+#: templates/js/translated/order.js:1662
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943
+#: templates/js/translated/order.js:1940 templates/js/translated/part.js:941
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2803
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674
-#: templates/js/translated/order.js:2815
+#: templates/js/translated/order.js:2017 templates/js/translated/order.js:2868
+#: templates/js/translated/order.js:3009
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889
+#: templates/js/translated/order.js:2115 templates/js/translated/order.js:4083
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911
+#: templates/js/translated/order.js:2132 templates/js/translated/order.js:4105
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:4116
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:2026
+#: templates/js/translated/order.js:2188
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:2215 templates/js/translated/order.js:3817
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309
-#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156
-#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753
+#: templates/js/translated/order.js:2270 templates/js/translated/part.js:1043
+#: templates/js/translated/part.js:1095
+msgid "Total Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:2301 templates/js/translated/order.js:2503
+#: templates/js/translated/order.js:3842 templates/js/translated/order.js:4350
+#: templates/js/translated/part.js:2184 templates/js/translated/part.js:2782
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325
-#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172
+#: templates/js/translated/order.js:2316 templates/js/translated/order.js:2519
+#: templates/js/translated/order.js:3858 templates/js/translated/order.js:4366
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706
-#: templates/js/translated/part.js:1070
+#: templates/js/translated/order.js:2357 templates/js/translated/order.js:3900
+#: templates/js/translated/part.js:1079
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110
+#: templates/js/translated/order.js:2416 templates/js/translated/part.js:1130
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2420 templates/js/translated/order.js:4037
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844
+#: templates/js/translated/order.js:2421 templates/js/translated/order.js:4038
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848
+#: templates/js/translated/order.js:2422 templates/js/translated/order.js:4042
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221
+#: templates/js/translated/order.js:2568 templates/js/translated/order.js:4415
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222
+#: templates/js/translated/order.js:2569 templates/js/translated/order.js:4416
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223
+#: templates/js/translated/order.js:2570 templates/js/translated/order.js:4417
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253
+#: templates/js/translated/order.js:2600 templates/js/translated/order.js:4447
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274
+#: templates/js/translated/order.js:2621 templates/js/translated/order.js:4468
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285
+#: templates/js/translated/order.js:2632 templates/js/translated/order.js:4479
msgid "Delete Line"
msgstr ""
-#: templates/js/translated/order.js:2449
+#: templates/js/translated/order.js:2643
msgid "No matching line"
msgstr ""
-#: templates/js/translated/order.js:2560
+#: templates/js/translated/order.js:2754
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:2623
+#: templates/js/translated/order.js:2817
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:2721
+#: templates/js/translated/order.js:2915
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:2724
+#: templates/js/translated/order.js:2918
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:2729
+#: templates/js/translated/order.js:2923
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:2749
+#: templates/js/translated/order.js:2943
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:2766
+#: templates/js/translated/order.js:2960
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:2800
+#: templates/js/translated/order.js:2994
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:2810
+#: templates/js/translated/order.js:3004
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:2834
+#: templates/js/translated/order.js:3028
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:2840
+#: templates/js/translated/order.js:3034
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:2844
+#: templates/js/translated/order.js:3038
msgid "Invoice"
msgstr ""
-#: templates/js/translated/order.js:3013
+#: templates/js/translated/order.js:3207
msgid "Add Shipment"
msgstr ""
-#: templates/js/translated/order.js:3064
+#: templates/js/translated/order.js:3258
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/order.js:3065
+#: templates/js/translated/order.js:3259
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:3273
+#: templates/js/translated/order.js:3467
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:3352
+#: templates/js/translated/order.js:3546
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3369
+#: templates/js/translated/order.js:3563
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:3370
+#: templates/js/translated/order.js:3564
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504
+#: templates/js/translated/order.js:3609 templates/js/translated/order.js:3698
#: templates/js/translated/stock.js:1602
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513
+#: templates/js/translated/order.js:3617 templates/js/translated/order.js:3707
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3827
+#: templates/js/translated/order.js:4021
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3833
+#: templates/js/translated/order.js:4027
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038
+#: templates/js/translated/order.js:4034 templates/js/translated/order.js:4232
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3852
+#: templates/js/translated/order.js:4046
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3855
+#: templates/js/translated/order.js:4049
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3937
+#: templates/js/translated/order.js:4131
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:4046
+#: templates/js/translated/order.js:4240
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:4060
+#: templates/js/translated/order.js:4254
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4296
+#: templates/js/translated/order.js:4490
msgid "No matching lines"
msgstr ""
@@ -9374,173 +9420,177 @@ msgstr ""
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498
+#: templates/js/translated/part.js:584 templates/js/translated/part.js:1515
#: templates/js/translated/table_filters.js:468
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:596
+#: templates/js/translated/part.js:594
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:715
+#: templates/js/translated/part.js:628 templates/js/translated/part.js:713
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:634 templates/js/translated/part.js:719
+#: templates/js/translated/part.js:632 templates/js/translated/part.js:717
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:646
+#: templates/js/translated/part.js:644
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:650
+#: templates/js/translated/part.js:648
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:778
+#: templates/js/translated/part.js:776
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1180
+#: templates/js/translated/part.js:1200
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1204
+#: templates/js/translated/part.js:1224
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573
+#: templates/js/translated/part.js:1291 templates/js/translated/part.js:1602
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1310
-msgid "Not available"
-msgstr ""
-
-#: templates/js/translated/part.js:1461
+#: templates/js/translated/part.js:1482
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1496
+#: templates/js/translated/part.js:1513
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840
-#: templates/js/translated/stock.js:2347
+#: templates/js/translated/part.js:1537
+msgid "Allocated to build orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1541
+msgid "Allocated to sales orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1626 templates/js/translated/part.js:1869
+#: templates/js/translated/stock.js:2343
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1613
+#: templates/js/translated/part.js:1642
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1679
+#: templates/js/translated/part.js:1708
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1684
+#: templates/js/translated/part.js:1713
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:1689
+#: templates/js/translated/part.js:1718
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1702
+#: templates/js/translated/part.js:1731
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366
+#: templates/js/translated/part.js:1888 templates/js/translated/stock.js:2362
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1938
+#: templates/js/translated/part.js:1967
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:1954
+#: templates/js/translated/part.js:1983
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2012
+#: templates/js/translated/part.js:2041
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299
+#: templates/js/translated/part.js:2092 templates/js/translated/stock.js:1299
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300
+#: templates/js/translated/part.js:2093 templates/js/translated/stock.js:1300
#: templates/js/translated/stock.js:1560
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2070
+#: templates/js/translated/part.js:2099
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2092
+#: templates/js/translated/part.js:2121
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2106
+#: templates/js/translated/part.js:2135
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2131
+#: templates/js/translated/part.js:2160
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:2188
+#: templates/js/translated/part.js:2217
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2189
+#: templates/js/translated/part.js:2218
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355
+#: templates/js/translated/part.js:2383 templates/js/translated/part.js:2384
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2357
+#: templates/js/translated/part.js:2386
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2363
+#: templates/js/translated/part.js:2392
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2413
+#: templates/js/translated/part.js:2442
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2419
+#: templates/js/translated/part.js:2448
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2515
+#: templates/js/translated/part.js:2544
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2531
+#: templates/js/translated/part.js:2560
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2576
+#: templates/js/translated/part.js:2605
msgid "Minimum Stock Level"
msgstr ""
-#: templates/js/translated/part.js:2677
+#: templates/js/translated/part.js:2706
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:2696
+#: templates/js/translated/part.js:2725
msgid "Single Price Difference"
msgstr ""
@@ -9778,7 +9828,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:942 users/models.py:216
+#: templates/js/translated/stock.js:942 users/models.py:218
msgid "Add"
msgstr ""
@@ -9854,156 +9904,156 @@ msgstr ""
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1775
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1780
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1787
+#: templates/js/translated/stock.js:1783
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1790
+#: templates/js/translated/stock.js:1786
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1792
+#: templates/js/translated/stock.js:1788
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1794
+#: templates/js/translated/stock.js:1790
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1797
+#: templates/js/translated/stock.js:1793
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1797
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1803
+#: templates/js/translated/stock.js:1799
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1810
+#: templates/js/translated/stock.js:1806
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:1808
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1814
+#: templates/js/translated/stock.js:1810
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1818
+#: templates/js/translated/stock.js:1814
#: templates/js/translated/table_filters.js:196
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1869
+#: templates/js/translated/stock.js:1865
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1948
+#: templates/js/translated/stock.js:1944
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1986
+#: templates/js/translated/stock.js:1982
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2159
+#: templates/js/translated/stock.js:2155
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2173
+#: templates/js/translated/stock.js:2169
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2174
+#: templates/js/translated/stock.js:2170
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2404
+#: templates/js/translated/stock.js:2400
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2493
+#: templates/js/translated/stock.js:2489
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2509
+#: templates/js/translated/stock.js:2505
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2531
+#: templates/js/translated/stock.js:2527
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2550
+#: templates/js/translated/stock.js:2546
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2569
+#: templates/js/translated/stock.js:2565
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2587
+#: templates/js/translated/stock.js:2583
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2610
+#: templates/js/translated/stock.js:2606
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2618
+#: templates/js/translated/stock.js:2614
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2694
+#: templates/js/translated/stock.js:2690
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781
+#: templates/js/translated/stock.js:2741 templates/js/translated/stock.js:2777
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2790
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2815
+#: templates/js/translated/stock.js:2811
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2816
+#: templates/js/translated/stock.js:2812
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2818
+#: templates/js/translated/stock.js:2814
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2819
+#: templates/js/translated/stock.js:2815
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2820
+#: templates/js/translated/stock.js:2816
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2821
+#: templates/js/translated/stock.js:2817
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2834
+#: templates/js/translated/stock.js:2830
msgid "Select part to install"
msgstr ""
@@ -10525,35 +10575,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:203
+#: users/models.py:205
msgid "Permission set"
msgstr ""
-#: users/models.py:211
+#: users/models.py:213
msgid "Group"
msgstr ""
-#: users/models.py:214
+#: users/models.py:216
msgid "View"
msgstr ""
-#: users/models.py:214
+#: users/models.py:216
msgid "Permission to view items"
msgstr ""
-#: users/models.py:216
+#: users/models.py:218
msgid "Permission to add items"
msgstr ""
-#: users/models.py:218
+#: users/models.py:220
msgid "Change"
msgstr ""
-#: users/models.py:218
+#: users/models.py:220
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:222
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/th/LC_MESSAGES/django.po b/InvenTree/locale/th/LC_MESSAGES/django.po
index 164733c60e..9ab8a4423d 100644
--- a/InvenTree/locale/th/LC_MESSAGES/django.po
+++ b/InvenTree/locale/th/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-08-25 10:08+0000\n"
-"PO-Revision-Date: 2022-08-26 01:55\n"
+"POT-Creation-Date: 2022-09-09 02:44+0000\n"
+"PO-Revision-Date: 2022-09-09 03:57\n"
"Last-Translator: \n"
"Language-Team: Thai\n"
"Language: th_TH\n"
@@ -29,9 +29,9 @@ msgstr ""
msgid "Enter date"
msgstr ""
-#: InvenTree/fields.py:186 build/serializers.py:384
-#: build/templates/build/sidebar.html:21 company/models.py:523
-#: company/templates/company/sidebar.html:25 order/models.py:906
+#: InvenTree/fields.py:183 build/serializers.py:384
+#: build/templates/build/sidebar.html:21 company/models.py:524
+#: company/templates/company/sidebar.html:25 order/models.py:910
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17
#: part/templates/part/part_sidebar.html:59
@@ -40,11 +40,12 @@ msgstr ""
#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823
#: stock/serializers.py:922 stock/serializers.py:1054
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099
-#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210
-#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859
-#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208
-#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1107
+#: templates/js/translated/company.js:1022
+#: templates/js/translated/order.js:2404 templates/js/translated/order.js:2555
+#: templates/js/translated/order.js:3053 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:4402 templates/js/translated/stock.js:1374
+#: templates/js/translated/stock.js:1976
msgid "Notes"
msgstr ""
@@ -210,12 +211,12 @@ msgid "Select file to attach"
msgstr ""
#: InvenTree/models.py:402 company/models.py:124 company/models.py:276
-#: company/models.py:510 order/models.py:84 order/models.py:1245
+#: company/models.py:511 order/models.py:84 order/models.py:1249
#: part/models.py:802 part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
-#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848
-#: templates/js/translated/part.js:1534
+#: templates/js/translated/company.js:691
+#: templates/js/translated/company.js:1011
+#: templates/js/translated/order.js:3042 templates/js/translated/part.js:1563
msgid "Link"
msgstr ""
@@ -233,12 +234,12 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665
-#: common/models.py:1666 common/models.py:1889 common/models.py:1890
-#: common/models.py:2152 common/models.py:2153 part/models.py:2239
-#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257
+#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1669
+#: common/models.py:1670 common/models.py:1893 common/models.py:1894
+#: common/models.py:2156 common/models.py:2157 part/models.py:2247
+#: part/models.py:2267 plugin/models.py:260 plugin/models.py:261
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2641
+#: templates/js/translated/stock.js:2637
msgid "User"
msgstr ""
@@ -275,28 +276,28 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875
+#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1879
#: company/models.py:358 label/models.py:101 part/models.py:746
-#: part/models.py:2417 plugin/models.py:94 report/models.py:152
+#: part/models.py:2425 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin.html:134
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:347
-#: templates/js/translated/company.js:545
-#: templates/js/translated/company.js:758
+#: templates/js/translated/company.js:580
+#: templates/js/translated/company.js:793
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:688 templates/js/translated/part.js:840
-#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392
+#: templates/js/translated/part.js:686 templates/js/translated/part.js:838
+#: templates/js/translated/part.js:1955 templates/js/translated/stock.js:2388
msgid "Name"
msgstr ""
#: InvenTree/models.py:544 build/models.py:174
#: build/templates/build/detail.html:24 company/models.py:282
-#: company/models.py:516 company/templates/company/company_base.html:71
+#: company/models.py:517 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:87 label/models.py:108
-#: order/models.py:82 part/models.py:769 part/models.py:2429
+#: company/templates/company/supplier_part.html:92 label/models.py:108
+#: order/models.py:82 part/models.py:769 part/models.py:2437
#: part/templates/part/category.html:80 part/templates/part/part_base.html:167
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
@@ -305,14 +306,14 @@ msgstr ""
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/InvenTree/settings/settings.html:358
#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846
-#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409
-#: templates/js/translated/company.js:667
-#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637
-#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167
-#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962
-#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743
-#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478
+#: templates/js/translated/build.js:2512 templates/js/translated/company.js:444
+#: templates/js/translated/company.js:702
+#: templates/js/translated/company.js:986 templates/js/translated/order.js:1988
+#: templates/js/translated/order.js:2220 templates/js/translated/order.js:2831
+#: templates/js/translated/part.js:745 templates/js/translated/part.js:1187
+#: templates/js/translated/part.js:1463 templates/js/translated/part.js:1991
+#: templates/js/translated/part.js:2060 templates/js/translated/stock.js:1743
+#: templates/js/translated/stock.js:2420 templates/js/translated/stock.js:2474
msgid "Description"
msgstr ""
@@ -325,7 +326,7 @@ msgid "parent"
msgstr ""
#: InvenTree/models.py:560 InvenTree/models.py:561
-#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:2426
msgid "Path"
msgstr ""
@@ -337,7 +338,7 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2745
+#: InvenTree/serializers.py:55 part/models.py:2753
msgid "Must be a valid number"
msgstr ""
@@ -522,7 +523,7 @@ msgid "Placed"
msgstr ""
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr ""
@@ -542,8 +543,8 @@ msgstr ""
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:141 order/models.py:1128
-#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785
+#: InvenTree/status_codes.py:141 order/models.py:1132
+#: templates/js/translated/order.js:3630 templates/js/translated/order.js:3979
msgid "Shipped"
msgstr ""
@@ -627,7 +628,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080
msgid "Merged stock items"
msgstr ""
@@ -717,7 +718,7 @@ msgstr ""
msgid "About InvenTree"
msgstr ""
-#: build/api.py:217
+#: build/api.py:219
msgid "Build must be cancelled before it can be deleted"
msgstr ""
@@ -748,15 +749,15 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:166 order/models.py:240 order/models.py:623
-#: order/models.py:904 part/models.py:2663
+#: build/models.py:166 order/models.py:240 order/models.py:627
+#: order/models.py:908 part/models.py:2671
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853
-#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089
-#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629
-#: templates/js/translated/order.js:4137
+#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2251
+#: templates/js/translated/order.js:2484 templates/js/translated/order.js:3823
+#: templates/js/translated/order.js:4331
msgid "Reference"
msgstr ""
@@ -774,12 +775,12 @@ msgid "BuildOrder to which this build is allocated"
msgstr ""
#: build/models.py:191 build/templates/build/build_base.html:80
-#: build/templates/build/detail.html:29 company/models.py:670
-#: order/models.py:1001 order/models.py:1112 order/models.py:1113
-#: part/models.py:343 part/models.py:2185 part/models.py:2200
-#: part/models.py:2219 part/models.py:2237 part/models.py:2336
-#: part/models.py:2463 part/models.py:2553 part/models.py:2638
-#: part/models.py:2914 part/serializers.py:814
+#: build/templates/build/detail.html:29 company/models.py:679
+#: order/models.py:1005 order/models.py:1116 order/models.py:1117
+#: part/models.py:343 part/models.py:2193 part/models.py:2208
+#: part/models.py:2227 part/models.py:2245 part/models.py:2344
+#: part/models.py:2471 part/models.py:2561 part/models.py:2646
+#: part/models.py:2922 part/serializers.py:814
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -795,18 +796,18 @@ msgstr ""
#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800
#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682
#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517
-#: templates/js/translated/company.js:266
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:608
-#: templates/js/translated/company.js:868 templates/js/translated/order.js:105
-#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493
-#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613
-#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224
-#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586
+#: templates/js/translated/company.js:301
+#: templates/js/translated/company.js:531
+#: templates/js/translated/company.js:643
+#: templates/js/translated/company.js:904 templates/js/translated/order.js:106
+#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1638
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:3185
+#: templates/js/translated/order.js:3581 templates/js/translated/order.js:3807
+#: templates/js/translated/part.js:1172 templates/js/translated/part.js:1244
+#: templates/js/translated/part.js:1441 templates/js/translated/stock.js:586
#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504
-#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833
+#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2500
+#: templates/js/translated/stock.js:2695 templates/js/translated/stock.js:2829
msgid "Part"
msgstr ""
@@ -823,7 +824,7 @@ msgid "SalesOrder to which this build is allocated"
msgstr ""
#: build/models.py:213 build/serializers.py:800
-#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979
+#: templates/js/translated/build.js:2114 templates/js/translated/order.js:3173
msgid "Source Location"
msgstr ""
@@ -863,8 +864,8 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:251 build/serializers.py:225 order/serializers.py:447
-#: stock/models.py:662 templates/js/translated/order.js:1353
+#: build/models.py:251 build/serializers.py:225 order/serializers.py:464
+#: stock/models.py:662 templates/js/translated/order.js:1496
msgid "Batch Code"
msgstr ""
@@ -873,11 +874,11 @@ msgid "Batch code for this build output"
msgstr ""
#: build/models.py:258 order/models.py:86 part/models.py:938
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2844
msgid "Creation Date"
msgstr ""
-#: build/models.py:262 order/models.py:648
+#: build/models.py:262 order/models.py:652
msgid "Target completion date"
msgstr ""
@@ -904,10 +905,10 @@ msgstr ""
#: build/models.py:289 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:100
-#: order/templates/order/order_base.html:179
+#: order/templates/order/order_base.html:185
#: order/templates/order/sales_order_base.html:183 part/models.py:942
#: report/templates/report/inventree_build_order_base.html:158
-#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860
+#: templates/js/translated/build.js:2574 templates/js/translated/order.js:2022
msgid "Responsible"
msgstr ""
@@ -917,9 +918,9 @@ msgstr ""
#: build/models.py:295 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
-#: company/templates/company/supplier_part.html:153
+#: company/templates/company/supplier_part.html:165
#: part/templates/part/part_base.html:346 stock/models.py:656
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr ""
@@ -957,11 +958,11 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1188 order/models.py:1379
+#: build/models.py:1188 order/models.py:1383
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1194 order/models.py:1382
+#: build/models.py:1194 order/models.py:1386
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -973,7 +974,7 @@ msgstr ""
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1326 stock/templates/stock/item_base.html:172
+#: build/models.py:1326 stock/templates/stock/item_base.html:175
#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496
#: templates/navbar.html:38
msgid "Build"
@@ -983,18 +984,18 @@ msgstr ""
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015
-#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754
+#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1035
+#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754
#: stock/serializers.py:880 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:197
#: templates/js/translated/build.js:774 templates/js/translated/build.js:779
#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679
-#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992
-#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299
-#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486
+#: templates/js/translated/order.js:107 templates/js/translated/order.js:3186
+#: templates/js/translated/order.js:3488 templates/js/translated/order.js:3493
+#: templates/js/translated/order.js:3588 templates/js/translated/order.js:3680
#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752
-#: templates/js/translated/stock.js:2577
+#: templates/js/translated/stock.js:2573
msgid "Stock Item"
msgstr ""
@@ -1004,11 +1005,11 @@ msgstr ""
#: build/models.py:1356 build/serializers.py:193
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1697
-#: company/templates/company/supplier_part.html:279 order/models.py:897
-#: order/models.py:1423 order/serializers.py:1155
+#: build/templates/build/detail.html:34 common/models.py:1701
+#: company/templates/company/supplier_part.html:291 order/models.py:901
+#: order/models.py:1427 order/serializers.py:1209
#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40
-#: part/models.py:2654 part/templates/part/detail.html:951
+#: part/models.py:2662 part/templates/part/detail.html:951
#: part/templates/part/detail.html:1037
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -1017,8 +1018,8 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:291 stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
+#: stock/serializers.py:291 stock/templates/stock/item_base.html:290
+#: stock/templates/stock/item_base.html:298
#: templates/email/build_order_completed.html:18
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691
#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458
@@ -1026,16 +1027,16 @@ msgstr ""
#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708
#: templates/js/translated/build.js:2129
#: templates/js/translated/model_renderers.js:120
-#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043
-#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313
-#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492
-#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143
-#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176
-#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686
-#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458
+#: templates/js/translated/order.js:123 templates/js/translated/order.js:1137
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:2490
+#: templates/js/translated/order.js:3187 templates/js/translated/order.js:3507
+#: templates/js/translated/order.js:3594 templates/js/translated/order.js:3686
+#: templates/js/translated/order.js:3829 templates/js/translated/order.js:4337
+#: templates/js/translated/part.js:1036 templates/js/translated/part.js:2205
+#: templates/js/translated/part.js:2674 templates/js/translated/part.js:2715
+#: templates/js/translated/part.js:2793 templates/js/translated/stock.js:458
#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782
-#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2707
msgid "Quantity"
msgstr ""
@@ -1077,7 +1078,7 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:208 build/serializers.py:665 order/models.py:318
-#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545
+#: order/serializers.py:304 order/serializers.py:459 part/serializers.py:545
#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251
#: stock/serializers.py:300
msgid "Quantity must be greater than zero"
@@ -1091,8 +1092,8 @@ msgstr ""
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159
-#: stock/serializers.py:309 templates/js/translated/order.js:1364
+#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213
+#: stock/serializers.py:309 templates/js/translated/order.js:1507
#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459
msgid "Serial Numbers"
msgstr ""
@@ -1117,18 +1118,18 @@ msgstr ""
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532
+#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552
#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532
#: stock/serializers.py:915 stock/serializers.py:1148
-#: stock/templates/stock/item_base.html:385
+#: stock/templates/stock/item_base.html:388
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786
-#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391
-#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411
-#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500
+#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1534
+#: templates/js/translated/order.js:3500 templates/js/translated/order.js:3605
+#: templates/js/translated/order.js:3613 templates/js/translated/order.js:3694
#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588
#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960
-#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2514
msgid "Location"
msgstr ""
@@ -1137,12 +1138,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:373 build/templates/build/build_base.html:145
-#: build/templates/build/detail.html:62 order/models.py:642
-#: order/serializers.py:465 stock/templates/stock/item_base.html:418
+#: build/templates/build/detail.html:62 order/models.py:646
+#: order/serializers.py:482 stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546
-#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830
-#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829
-#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727
+#: templates/js/translated/order.js:1643 templates/js/translated/order.js:1992
+#: templates/js/translated/order.js:2836 templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:2591 templates/js/translated/stock.js:2723
msgid "Status"
msgstr ""
@@ -1202,7 +1203,7 @@ msgstr ""
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:527
+#: build/serializers.py:527 order/serializers.py:208 order/serializers.py:1103
msgid "Accept Incomplete"
msgstr ""
@@ -1218,8 +1219,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772
-#: part/models.py:2906
+#: build/serializers.py:577 build/serializers.py:622 part/models.py:2780
+#: part/models.py:2914
msgid "BOM Item"
msgstr ""
@@ -1239,7 +1240,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:709 order/serializers.py:1073
+#: build/serializers.py:709 order/serializers.py:1093
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1256,7 +1257,7 @@ msgstr ""
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:750 order/serializers.py:1319
+#: build/serializers.py:750 order/serializers.py:1373
msgid "Allocation items must be provided"
msgstr ""
@@ -1371,13 +1372,13 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:154
-#: build/templates/build/detail.html:131 order/models.py:910
-#: order/templates/order/order_base.html:165
+#: build/templates/build/detail.html:131 order/models.py:914
+#: order/templates/order/order_base.html:171
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:125
-#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847
-#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658
-#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042
+#: templates/js/translated/build.js:2586 templates/js/translated/order.js:2009
+#: templates/js/translated/order.js:2351 templates/js/translated/order.js:2852
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1051
msgid "Target Date"
msgstr ""
@@ -1388,7 +1389,7 @@ msgstr ""
#: build/templates/build/build_base.html:159
#: build/templates/build/build_base.html:204
-#: order/templates/order/order_base.html:101
+#: order/templates/order/order_base.html:107
#: order/templates/order/sales_order_base.html:94
#: templates/js/translated/table_filters.js:320
#: templates/js/translated/table_filters.js:361
@@ -1404,15 +1405,15 @@ msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:179
-#: build/templates/build/detail.html:94 order/models.py:1105
-#: order/models.py:1199 order/models.py:1330
+#: build/templates/build/detail.html:94 order/models.py:1109
+#: order/models.py:1203 order/models.py:1334
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:365
+#: stock/templates/stock/item_base.html:368
#: templates/email/overdue_sales_order.html:15
-#: templates/js/translated/order.js:2604
+#: templates/js/translated/order.js:2798
msgid "Sales Order"
msgstr ""
@@ -1438,8 +1439,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1023
-#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199
+#: build/templates/build/detail.html:49 order/models.py:1027
+#: templates/js/translated/order.js:1644 templates/js/translated/order.js:2393
msgid "Destination"
msgstr ""
@@ -1452,18 +1453,18 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:165
+#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1215
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843
-#: templates/js/translated/stock.js:2734
+#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1839
+#: templates/js/translated/stock.js:2730
#: templates/js/translated/table_filters.js:159
#: templates/js/translated/table_filters.js:250
msgid "Batch"
msgstr ""
#: build/templates/build/detail.html:126
-#: order/templates/order/order_base.html:152
+#: order/templates/order/order_base.html:158
#: order/templates/order/sales_order_base.html:158
#: templates/js/translated/build.js:2554
msgid "Created"
@@ -1516,7 +1517,7 @@ msgstr ""
#: build/templates/build/detail.html:187
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:85
-#: part/templates/part/category.html:183 templates/js/translated/order.js:1083
+#: part/templates/part/category.html:183 templates/js/translated/order.js:1177
msgid "Order Parts"
msgstr ""
@@ -1851,7 +1852,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:951 part/models.py:2465 report/models.py:158
+#: common/models.py:951 part/models.py:2473 report/models.py:158
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:484
msgid "Template"
@@ -1861,7 +1862,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446
+#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1454
#: templates/js/translated/table_filters.js:176
#: templates/js/translated/table_filters.js:447
msgid "Assembly"
@@ -2275,349 +2276,349 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1342 common/models.py:1658
+#: common/models.py:1344 common/models.py:1662
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1364
+#: common/models.py:1366
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1365
+#: common/models.py:1367
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1371
+#: common/models.py:1373
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1372
+#: common/models.py:1374
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1378
+#: common/models.py:1380
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1379
+#: common/models.py:1381
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1385
+#: common/models.py:1387
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1386
+#: common/models.py:1388
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1392
+#: common/models.py:1394
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1393
+#: common/models.py:1395
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1399
+#: common/models.py:1401
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1400
+#: common/models.py:1402
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1406
+#: common/models.py:1408
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1407
+#: common/models.py:1409
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1413
+#: common/models.py:1415
msgid "Show low stock"
msgstr ""
-#: common/models.py:1414
+#: common/models.py:1416
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1420
+#: common/models.py:1422
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1421
+#: common/models.py:1423
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1427
+#: common/models.py:1429
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1430
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1434
+#: common/models.py:1436
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1435
+#: common/models.py:1437
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1441
+#: common/models.py:1443
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1442
+#: common/models.py:1444
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1448
+#: common/models.py:1450
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1449
+#: common/models.py:1451
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1455
+#: common/models.py:1457
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1456
+#: common/models.py:1458
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1462
+#: common/models.py:1464
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1463
+#: common/models.py:1465
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1469
+#: common/models.py:1471
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1470
+#: common/models.py:1472
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1476
+#: common/models.py:1478
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1477
+#: common/models.py:1479
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1483
+#: common/models.py:1485
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1484
+#: common/models.py:1486
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1490
+#: common/models.py:1492
msgid "Inline label display"
msgstr ""
-#: common/models.py:1491
+#: common/models.py:1493
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1499
msgid "Inline report display"
msgstr ""
-#: common/models.py:1498
+#: common/models.py:1500
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1506
msgid "Search Parts"
msgstr ""
-#: common/models.py:1505
+#: common/models.py:1507
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1513
msgid "Seach Supplier Parts"
msgstr ""
-#: common/models.py:1512
+#: common/models.py:1514
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1520
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:1519
+#: common/models.py:1521
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:1525
+#: common/models.py:1527
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1526
+#: common/models.py:1528
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1532
+#: common/models.py:1534
msgid "Search Categories"
msgstr ""
-#: common/models.py:1533
+#: common/models.py:1535
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1539
+#: common/models.py:1541
msgid "Search Stock"
msgstr ""
-#: common/models.py:1540
+#: common/models.py:1542
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1546
+#: common/models.py:1548
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1547
+#: common/models.py:1549
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1553
+#: common/models.py:1555
msgid "Search Locations"
msgstr ""
-#: common/models.py:1554
+#: common/models.py:1556
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1560
+#: common/models.py:1562
msgid "Search Companies"
msgstr ""
-#: common/models.py:1561
+#: common/models.py:1563
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1567
+#: common/models.py:1569
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1568
+#: common/models.py:1570
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1574
+#: common/models.py:1576
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1575
+#: common/models.py:1577
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1581
+#: common/models.py:1583
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1582
+#: common/models.py:1584
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1588
+#: common/models.py:1590
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1591
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1595
+#: common/models.py:1597
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1598
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1602
+#: common/models.py:1604
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1605
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1609
+#: common/models.py:1611
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1610
+#: common/models.py:1612
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1616
+#: common/models.py:1618
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1617
+#: common/models.py:1619
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1623
+#: common/models.py:1625
msgid "Date Format"
msgstr ""
-#: common/models.py:1624
+#: common/models.py:1626
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1638 part/templates/part/detail.html:41
+#: common/models.py:1640 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1641
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1698
+#: common/models.py:1702
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1705 company/serializers.py:366
-#: company/templates/company/supplier_part.html:284 order/models.py:938
-#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181
+#: common/models.py:1709 company/serializers.py:372
+#: company/templates/company/supplier_part.html:296 order/models.py:942
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:2210
msgid "Price"
msgstr ""
-#: common/models.py:1706
+#: common/models.py:1710
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1866 common/models.py:2044
+#: common/models.py:1870 common/models.py:2048
msgid "Endpoint"
msgstr ""
-#: common/models.py:1867
+#: common/models.py:1871
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1876
+#: common/models.py:1880
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1881 part/models.py:921 plugin/models.py:100
+#: common/models.py:1885 part/models.py:921 plugin/models.py:100
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:104
#: templates/js/translated/table_filters.js:316
@@ -2625,67 +2626,67 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1886
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1896
+#: common/models.py:1900
msgid "Token"
msgstr ""
-#: common/models.py:1897
+#: common/models.py:1901
msgid "Token for access"
msgstr ""
-#: common/models.py:1904
+#: common/models.py:1908
msgid "Secret"
msgstr ""
-#: common/models.py:1905
+#: common/models.py:1909
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2011
+#: common/models.py:2015
msgid "Message ID"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2016
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2020
+#: common/models.py:2024
msgid "Host"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2025
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2032
msgid "Header"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2033
msgid "Header of this message"
msgstr ""
-#: common/models.py:2035
+#: common/models.py:2039
msgid "Body"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2040
msgid "Body of this message"
msgstr ""
-#: common/models.py:2045
+#: common/models.py:2049
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2054
msgid "Worked on"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2055
msgid "Was the work on this message finished?"
msgstr ""
@@ -2747,7 +2748,7 @@ msgstr ""
#: company/models.py:105 company/templates/company/company_base.html:100
#: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:413
+#: templates/js/translated/company.js:448
msgid "Website"
msgstr ""
@@ -2824,7 +2825,7 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:148 company/serializers.py:372
+#: company/models.py:148 company/serializers.py:378
#: company/templates/company/company_base.html:106 part/serializers.py:153
#: part/serializers.py:184 stock/serializers.py:178
msgid "Currency"
@@ -2834,24 +2835,24 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:248 company/models.py:481 stock/models.py:598
+#: company/models.py:248 company/models.py:482 stock/models.py:598
#: stock/serializers.py:85 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:542
msgid "Base Part"
msgstr ""
-#: company/models.py:252 company/models.py:485
+#: company/models.py:252 company/models.py:486
msgid "Select part"
msgstr ""
#: company/models.py:263 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:124
-#: stock/templates/stock/item_base.html:207
-#: templates/js/translated/company.js:397
-#: templates/js/translated/company.js:498
-#: templates/js/translated/company.js:633
-#: templates/js/translated/company.js:919 templates/js/translated/part.js:236
+#: company/templates/company/supplier_part.html:129
+#: stock/templates/stock/item_base.html:210
+#: templates/js/translated/company.js:432
+#: templates/js/translated/company.js:533
+#: templates/js/translated/company.js:668
+#: templates/js/translated/company.js:956 templates/js/translated/part.js:236
#: templates/js/translated/table_filters.js:419
msgid "Manufacturer"
msgstr ""
@@ -2861,12 +2862,12 @@ msgid "Select manufacturer"
msgstr ""
#: company/models.py:270 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:132
-#: templates/js/translated/company.js:269
-#: templates/js/translated/company.js:497
-#: templates/js/translated/company.js:649
-#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077
-#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027
+#: company/templates/company/supplier_part.html:137
+#: templates/js/translated/company.js:304
+#: templates/js/translated/company.js:532
+#: templates/js/translated/company.js:684
+#: templates/js/translated/company.js:975 templates/js/translated/order.js:2239
+#: templates/js/translated/part.js:247 templates/js/translated/part.js:1025
msgid "MPN"
msgstr ""
@@ -2882,10 +2883,10 @@ msgstr ""
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:328 company/models.py:352 company/models.py:504
+#: company/models.py:328 company/models.py:352 company/models.py:505
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:220
msgid "Manufacturer Part"
msgstr ""
@@ -2895,8 +2896,8 @@ msgstr ""
#: company/models.py:365
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2095 templates/js/translated/company.js:546
-#: templates/js/translated/company.js:764 templates/js/translated/part.js:849
+#: stock/models.py:2095 templates/js/translated/company.js:581
+#: templates/js/translated/company.js:799 templates/js/translated/part.js:847
#: templates/js/translated/stock.js:1360
msgid "Value"
msgstr ""
@@ -2905,10 +2906,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:372 part/models.py:888 part/models.py:2425
+#: company/models.py:372 part/models.py:888 part/models.py:2433
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:352
-#: templates/js/translated/company.js:770 templates/js/translated/part.js:855
+#: templates/js/translated/company.js:805 templates/js/translated/part.js:853
msgid "Units"
msgstr ""
@@ -2916,106 +2917,119 @@ msgstr ""
msgid "Parameter units"
msgstr ""
-#: company/models.py:449
+#: company/models.py:450
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:491 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:108 order/models.py:258
-#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:224
+#: company/models.py:492 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:113 order/models.py:258
+#: order/templates/order/order_base.html:121 part/bom.py:237 part/bom.py:265
+#: stock/templates/stock/item_base.html:227
#: templates/email/overdue_purchase_order.html:16
-#: templates/js/translated/company.js:268
-#: templates/js/translated/company.js:401
-#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813
-#: templates/js/translated/part.js:217 templates/js/translated/part.js:995
+#: templates/js/translated/company.js:303
+#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:929 templates/js/translated/order.js:1975
+#: templates/js/translated/part.js:217 templates/js/translated/part.js:993
#: templates/js/translated/table_filters.js:423
msgid "Supplier"
msgstr ""
-#: company/models.py:492 templates/js/translated/part.js:218
+#: company/models.py:493 templates/js/translated/part.js:218
msgid "Select supplier"
msgstr ""
-#: company/models.py:497 company/templates/company/supplier_part.html:118
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267
-#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228
-#: templates/js/translated/part.js:1013
+#: company/models.py:498 company/templates/company/supplier_part.html:123
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:302
+#: templates/js/translated/order.js:2226 templates/js/translated/part.js:228
+#: templates/js/translated/part.js:1011
msgid "SKU"
msgstr ""
-#: company/models.py:498 templates/js/translated/part.js:229
+#: company/models.py:499 templates/js/translated/part.js:229
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:505
+#: company/models.py:506
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:511
+#: company/models.py:512
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:517
+#: company/models.py:518
msgid "Supplier part description"
msgstr ""
-#: company/models.py:522 company/templates/company/supplier_part.html:146
-#: part/models.py:2666 part/templates/part/upload_bom.html:59
+#: company/models.py:523 company/templates/company/supplier_part.html:158
+#: part/models.py:2674 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399
msgid "Note"
msgstr ""
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "base cost"
msgstr ""
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:528 company/templates/company/supplier_part.html:139
-#: stock/models.py:624 stock/templates/stock/item_base.html:240
-#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976
+#: company/models.py:529 company/templates/company/supplier_part.html:144
+#: stock/models.py:624 stock/templates/stock/item_base.html:243
+#: templates/js/translated/company.js:991 templates/js/translated/stock.js:1972
msgid "Packaging"
msgstr ""
-#: company/models.py:528
+#: company/models.py:529
msgid "Part packaging"
msgstr ""
-#: company/models.py:530 part/models.py:1783
+#: company/models.py:532 company/serializers.py:242
+#: company/templates/company/supplier_part.html:151
+#: templates/js/translated/company.js:996 templates/js/translated/order.js:820
+#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:2270 templates/js/translated/order.js:2287
+#: templates/js/translated/part.js:1043 templates/js/translated/part.js:1095
+msgid "Pack Quantity"
+msgstr ""
+
+#: company/models.py:533
+msgid "Unit quantity supplied in a single pack"
+msgstr ""
+
+#: company/models.py:539 part/models.py:1783
msgid "multiple"
msgstr ""
-#: company/models.py:530
+#: company/models.py:539
msgid "Order multiple"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part.html:94
+#: company/models.py:547 company/templates/company/supplier_part.html:99
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823
-#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979
-#: templates/js/translated/part.js:600 templates/js/translated/part.js:603
+#: templates/js/translated/bom.js:915 templates/js/translated/build.js:1823
+#: templates/js/translated/build.js:2686 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:601
#: templates/js/translated/table_filters.js:186
msgid "Available"
msgstr ""
-#: company/models.py:539
+#: company/models.py:548
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:543
+#: company/models.py:552
msgid "Availability Updated"
msgstr ""
-#: company/models.py:544
+#: company/models.py:553
msgid "Date of last update of availability data"
msgstr ""
-#: company/models.py:672
+#: company/models.py:681
msgid "last updated"
msgstr ""
@@ -3029,12 +3043,12 @@ msgstr ""
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386
+#: templates/InvenTree/search.html:179 templates/js/translated/company.js:421
msgid "Company"
msgstr ""
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:624
+#: templates/js/translated/order.js:689
msgid "Create Purchase Order"
msgstr ""
@@ -3047,7 +3061,7 @@ msgid "Edit company information"
msgstr ""
#: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:329
+#: templates/js/translated/company.js:364
msgid "Edit Company"
msgstr ""
@@ -3070,13 +3084,13 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:86 order/models.py:637
+#: company/templates/company/company_base.html:86 order/models.py:641
#: order/templates/order/sales_order_base.html:116 stock/models.py:643
#: stock/models.py:644 stock/serializers.py:809
-#: stock/templates/stock/item_base.html:396
+#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
-#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619
-#: templates/js/translated/stock.js:2559
+#: templates/js/translated/company.js:428 templates/js/translated/order.js:2813
+#: templates/js/translated/stock.js:2555
#: templates/js/translated/table_filters.js:427
msgid "Customer"
msgstr ""
@@ -3211,23 +3225,23 @@ msgid "Manufacturers"
msgstr ""
#: company/templates/company/manufacturer_part.html:35
-#: company/templates/company/supplier_part.html:186
+#: company/templates/company/supplier_part.html:198
#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80
msgid "Order part"
msgstr ""
#: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:681
+#: templates/js/translated/company.js:716
msgid "Edit manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:682
+#: templates/js/translated/company.js:717
msgid "Delete manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:65
-#: company/templates/company/supplier_part.html:77
+#: company/templates/company/supplier_part.html:82
msgid "Internal Part"
msgstr ""
@@ -3250,8 +3264,8 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:371 part/templates/part/detail.html:401
-#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34
-#: users/models.py:220
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:34
+#: users/models.py:222
msgid "Delete"
msgstr ""
@@ -3296,9 +3310,9 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:607
-#: stock/templates/stock/item_base.html:233
-#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041
-#: templates/js/translated/stock.js:1933
+#: stock/templates/stock/item_base.html:236
+#: templates/js/translated/company.js:945 templates/js/translated/order.js:1135
+#: templates/js/translated/stock.js:1929
msgid "Supplier Part"
msgstr ""
@@ -3308,7 +3322,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:40
#: company/templates/company/supplier_part.html:41
-#: company/templates/company/supplier_part.html:187
+#: company/templates/company/supplier_part.html:199
#: part/templates/part/detail.html:88
msgid "Order Part"
msgstr ""
@@ -3320,81 +3334,87 @@ msgstr ""
#: company/templates/company/supplier_part.html:48
#: company/templates/company/supplier_part.html:49
-#: templates/js/translated/company.js:212
+#: templates/js/translated/company.js:247
msgid "Edit Supplier Part"
msgstr ""
#: company/templates/company/supplier_part.html:53
+#: company/templates/company/supplier_part.html:54
+#: templates/js/translated/company.js:222
+msgid "Duplicate Supplier Part"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:58
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:54
+#: company/templates/company/supplier_part.html:59
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:112
+#: company/templates/company/supplier_part.html:117
msgid "No supplier information available"
msgstr ""
-#: company/templates/company/supplier_part.html:165
+#: company/templates/company/supplier_part.html:177
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr ""
-#: company/templates/company/supplier_part.html:168
+#: company/templates/company/supplier_part.html:180
#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181
msgid "Create new stock item"
msgstr ""
-#: company/templates/company/supplier_part.html:169
+#: company/templates/company/supplier_part.html:181
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182
#: templates/js/translated/stock.js:435
msgid "New Stock Item"
msgstr ""
-#: company/templates/company/supplier_part.html:182
+#: company/templates/company/supplier_part.html:194
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr ""
-#: company/templates/company/supplier_part.html:207
+#: company/templates/company/supplier_part.html:219
#: part/templates/part/prices.html:10
msgid "Pricing Information"
msgstr ""
-#: company/templates/company/supplier_part.html:212
-#: company/templates/company/supplier_part.html:326
-#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253
+#: company/templates/company/supplier_part.html:224
+#: company/templates/company/supplier_part.html:338
+#: part/templates/part/prices.html:276 templates/js/translated/part.js:2282
msgid "Add Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:250
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:252
-#: templates/js/translated/part.js:2263
+#: company/templates/company/supplier_part.html:264
+#: templates/js/translated/part.js:2292
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:266
-#: templates/js/translated/part.js:2277
+#: company/templates/company/supplier_part.html:278
+#: templates/js/translated/part.js:2306
msgid "Edit Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:291
+#: company/templates/company/supplier_part.html:303
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part.html:292
+#: company/templates/company/supplier_part.html:304
msgid "Delete price break"
msgstr ""
-#: company/templates/company/supplier_part.html:301
+#: company/templates/company/supplier_part.html:313
msgid "Last updated"
msgstr ""
-#: company/templates/company/supplier_part.html:382
+#: company/templates/company/supplier_part.html:394
msgid "Update Part Availability"
msgstr ""
@@ -3404,8 +3424,8 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313
-#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959
+#: templates/js/translated/part.js:749 templates/js/translated/part.js:1334
+#: templates/js/translated/part.js:1495 templates/js/translated/stock.js:959
#: templates/js/translated/stock.js:1754 templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -3432,7 +3452,7 @@ msgstr ""
#: stock/templates/stock/location.html:178
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2436 users/models.py:40
+#: templates/js/translated/stock.js:2432 users/models.py:40
msgid "Stock Items"
msgstr ""
@@ -3534,7 +3554,7 @@ msgstr ""
msgid "Order description"
msgstr ""
-#: order/models.py:84 order/models.py:1246
+#: order/models.py:84 order/models.py:1250
msgid "Link to external page"
msgstr ""
@@ -3550,11 +3570,11 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:241 order/models.py:624
+#: order/models.py:241 order/models.py:628
msgid "Order reference"
msgstr ""
-#: order/models.py:249 order/models.py:642
+#: order/models.py:249 order/models.py:646
msgid "Purchase order status"
msgstr ""
@@ -3562,8 +3582,8 @@ msgstr ""
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:262 order/templates/order/order_base.html:127
-#: templates/js/translated/order.js:1822
+#: order/models.py:262 order/templates/order/order_base.html:133
+#: templates/js/translated/order.js:1984
msgid "Supplier Reference"
msgstr ""
@@ -3603,245 +3623,245 @@ msgstr ""
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:638
+#: order/models.py:642
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer Reference "
msgstr ""
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:649
+#: order/models.py:653
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:652 order/models.py:1204
-#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828
+#: order/models.py:656 order/models.py:1208
+#: templates/js/translated/order.js:2860 templates/js/translated/order.js:3022
msgid "Shipment Date"
msgstr ""
-#: order/models.py:659
+#: order/models.py:663
msgid "shipped by"
msgstr ""
-#: order/models.py:714
+#: order/models.py:718
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:718
+#: order/models.py:722
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:721
+#: order/models.py:725 templates/js/translated/order.js:419
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:724
+#: order/models.py:728
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:898
+#: order/models.py:902
msgid "Item quantity"
msgstr ""
-#: order/models.py:904
+#: order/models.py:908
msgid "Line item reference"
msgstr ""
-#: order/models.py:906
+#: order/models.py:910
msgid "Line item notes"
msgstr ""
-#: order/models.py:911
+#: order/models.py:915
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:929
+#: order/models.py:933
msgid "Context"
msgstr ""
-#: order/models.py:930
+#: order/models.py:934
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:939
+#: order/models.py:943
msgid "Unit price"
msgstr ""
-#: order/models.py:969
+#: order/models.py:973
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:977
+#: order/models.py:981
msgid "deleted"
msgstr ""
-#: order/models.py:983 order/models.py:1063 order/models.py:1104
-#: order/models.py:1198 order/models.py:1330
-#: templates/js/translated/order.js:3284
+#: order/models.py:987 order/models.py:1067 order/models.py:1108
+#: order/models.py:1202 order/models.py:1334
+#: templates/js/translated/order.js:3478
msgid "Order"
msgstr ""
-#: order/models.py:984 order/models.py:1063
+#: order/models.py:988 order/models.py:1067
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:179
+#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
-#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042
-#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972
-#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540
+#: templates/js/translated/order.js:619 templates/js/translated/order.js:1136
+#: templates/js/translated/order.js:1959 templates/js/translated/part.js:970
+#: templates/js/translated/stock.js:1909 templates/js/translated/stock.js:2536
msgid "Purchase Order"
msgstr ""
-#: order/models.py:1002
+#: order/models.py:1006
msgid "Supplier part"
msgstr ""
-#: order/models.py:1009 order/templates/order/order_base.html:172
-#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105
+#: order/models.py:1013 order/templates/order/order_base.html:178
+#: templates/js/translated/order.js:1641 templates/js/translated/order.js:2373
+#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1125
#: templates/js/translated/table_filters.js:338
msgid "Received"
msgstr ""
-#: order/models.py:1010
+#: order/models.py:1014
msgid "Number of items received"
msgstr ""
-#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734
-#: stock/serializers.py:169 stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1964
+#: order/models.py:1021 part/templates/part/prices.html:181 stock/models.py:734
+#: stock/serializers.py:169 stock/templates/stock/item_base.html:189
+#: templates/js/translated/stock.js:1960
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1018
+#: order/models.py:1022
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1026
+#: order/models.py:1030
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1092
+#: order/models.py:1096
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1097
+#: order/models.py:1101
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1123 part/templates/part/part_pricing.html:115
+#: order/models.py:1127 part/templates/part/part_pricing.html:115
#: part/templates/part/prices.html:121 part/templates/part/prices.html:290
msgid "Sale Price"
msgstr ""
-#: order/models.py:1124
+#: order/models.py:1128
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1129
+#: order/models.py:1133
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1205
+#: order/models.py:1209
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1212
+#: order/models.py:1216
msgid "Checked By"
msgstr ""
-#: order/models.py:1213
+#: order/models.py:1217
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1220 order/models.py:1405 order/serializers.py:1170
-#: order/serializers.py:1294 templates/js/translated/model_renderers.js:314
+#: order/models.py:1224 order/models.py:1409 order/serializers.py:1224
+#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314
msgid "Shipment"
msgstr ""
-#: order/models.py:1221
+#: order/models.py:1225
msgid "Shipment number"
msgstr ""
-#: order/models.py:1225
+#: order/models.py:1229
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1231
+#: order/models.py:1235
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1232
+#: order/models.py:1236
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1239
+#: order/models.py:1243
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1240
+#: order/models.py:1244
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1258
+#: order/models.py:1262
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1261
+#: order/models.py:1265
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1364 order/models.py:1366
+#: order/models.py:1368 order/models.py:1370
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1370
+#: order/models.py:1374
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1372
+#: order/models.py:1376
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1375
+#: order/models.py:1379
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1385 order/serializers.py:1066
+#: order/models.py:1389 order/serializers.py:1086
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1388
+#: order/models.py:1392
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1389
+#: order/models.py:1393
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1397
+#: order/models.py:1401
msgid "Line"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1410
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1419 templates/js/translated/notification.js:55
+#: order/models.py:1423 templates/js/translated/notification.js:55
msgid "Item"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1424
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1423
+#: order/models.py:1427
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3853,111 +3873,119 @@ msgstr ""
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:294
+#: order/serializers.py:209 order/serializers.py:1104
+msgid "Allow order to be closed with incomplete line items"
+msgstr ""
+
+#: order/serializers.py:220 order/serializers.py:1115
+msgid "Order has incomplete line items"
+msgstr ""
+
+#: order/serializers.py:311
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:318
+#: order/serializers.py:335
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:354
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:342
+#: order/serializers.py:359
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:348
+#: order/serializers.py:365
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:349
+#: order/serializers.py:366
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:413 order/serializers.py:1138
+#: order/serializers.py:430 order/serializers.py:1192
msgid "Line Item"
msgstr ""
-#: order/serializers.py:419
+#: order/serializers.py:436
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:429 order/serializers.py:533
+#: order/serializers.py:446 order/serializers.py:553
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:448 templates/js/translated/order.js:1354
+#: order/serializers.py:465 templates/js/translated/order.js:1497
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:456 templates/js/translated/order.js:1365
+#: order/serializers.py:473 templates/js/translated/order.js:1508
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:469
+#: order/serializers.py:486
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:470
+#: order/serializers.py:487
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:484
+#: order/serializers.py:501
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:507
+#: order/serializers.py:527
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:549
+#: order/serializers.py:569
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:566
+#: order/serializers.py:586
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:577
+#: order/serializers.py:597
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:883
+#: order/serializers.py:903
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:964
+#: order/serializers.py:984
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1027 order/serializers.py:1147
+#: order/serializers.py:1047 order/serializers.py:1201
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1049
+#: order/serializers.py:1069
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1160
+#: order/serializers.py:1214
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1182 order/serializers.py:1302
+#: order/serializers.py:1236 order/serializers.py:1356
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1185 order/serializers.py:1305
+#: order/serializers.py:1239 order/serializers.py:1359
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1235
+#: order/serializers.py:1289
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1245
+#: order/serializers.py:1299
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3993,83 +4021,83 @@ msgstr ""
msgid "Order actions"
msgstr ""
-#: order/templates/order/order_base.html:45
+#: order/templates/order/order_base.html:46
#: order/templates/order/sales_order_base.html:58
msgid "Edit order"
msgstr ""
-#: order/templates/order/order_base.html:47
+#: order/templates/order/order_base.html:50
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr ""
-#: order/templates/order/order_base.html:50
+#: order/templates/order/order_base.html:55
msgid "Duplicate order"
msgstr ""
-#: order/templates/order/order_base.html:55
+#: order/templates/order/order_base.html:61
msgid "Place order"
msgstr ""
-#: order/templates/order/order_base.html:59
+#: order/templates/order/order_base.html:65
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:61
+#: order/templates/order/order_base.html:67
#: order/templates/order/purchase_order_detail.html:30
msgid "Receive Items"
msgstr ""
-#: order/templates/order/order_base.html:63
+#: order/templates/order/order_base.html:69
msgid "Mark order as complete"
msgstr ""
-#: order/templates/order/order_base.html:65
+#: order/templates/order/order_base.html:71
#: order/templates/order/sales_order_base.html:68
msgid "Complete Order"
msgstr ""
-#: order/templates/order/order_base.html:87
+#: order/templates/order/order_base.html:93
#: order/templates/order/sales_order_base.html:80
msgid "Order Reference"
msgstr ""
-#: order/templates/order/order_base.html:92
+#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:85
msgid "Order Description"
msgstr ""
-#: order/templates/order/order_base.html:97
+#: order/templates/order/order_base.html:103
#: order/templates/order/sales_order_base.html:90
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:120
+#: order/templates/order/order_base.html:126
msgid "No suppplier information available"
msgstr ""
-#: order/templates/order/order_base.html:133
+#: order/templates/order/order_base.html:139
#: order/templates/order/sales_order_base.html:129
msgid "Completed Line Items"
msgstr ""
-#: order/templates/order/order_base.html:139
+#: order/templates/order/order_base.html:145
#: order/templates/order/sales_order_base.html:135
#: order/templates/order/sales_order_base.html:145
msgid "Incomplete"
msgstr ""
-#: order/templates/order/order_base.html:158
+#: order/templates/order/order_base.html:164
#: report/templates/report/inventree_build_order_base.html:121
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:186
+#: order/templates/order/order_base.html:192
#: order/templates/order/sales_order_base.html:190
msgid "Total cost"
msgstr ""
-#: order/templates/order/order_base.html:190
+#: order/templates/order/order_base.html:196
#: order/templates/order/sales_order_base.html:194
msgid "Total cost could not be calculated"
msgstr ""
@@ -4102,8 +4130,8 @@ msgstr ""
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463
#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015
-#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443
-#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625
+#: templates/js/translated/order.js:1084 templates/js/translated/order.js:1586
+#: templates/js/translated/order.js:3097 templates/js/translated/stock.js:625
#: templates/js/translated/stock.js:793
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
@@ -4139,7 +4167,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:26
#: order/templates/order/sales_order_detail.html:22
#: order/templates/order/sales_order_detail.html:255
-#: templates/js/translated/order.js:663
+#: templates/js/translated/order.js:728
msgid "Add Line Item"
msgstr ""
@@ -4167,7 +4195,7 @@ msgstr ""
msgid "Order Notes"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:228
+#: order/templates/order/purchase_order_detail.html:232
msgid "Add Order Line"
msgstr ""
@@ -4185,12 +4213,12 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:231
+#: templates/js/translated/order.js:232
msgid "Complete Shipments"
msgstr ""
#: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:258
+#: templates/js/translated/order.js:397
msgid "Complete Sales Order"
msgstr ""
@@ -4199,7 +4227,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2632
+#: templates/js/translated/order.js:2826
msgid "Customer Reference"
msgstr ""
@@ -4223,7 +4251,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:72
-#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1116
#: templates/js/translated/build.js:1923
msgid "Actions"
msgstr ""
@@ -4308,14 +4336,14 @@ msgid "Total Stock"
msgstr ""
#: part/bom.py:129 part/templates/part/part_base.html:189
-#: templates/js/translated/order.js:3724
+#: templates/js/translated/order.js:3918
msgid "Available Stock"
msgstr ""
#: part/bom.py:130 part/templates/part/part_base.html:207
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853
-#: templates/js/translated/part.js:590 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503
+#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1853
+#: templates/js/translated/part.js:588 templates/js/translated/part.js:608
+#: templates/js/translated/part.js:1337 templates/js/translated/part.js:1520
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr ""
@@ -4344,7 +4372,7 @@ msgstr ""
msgid "Icon (optional)"
msgstr ""
-#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16
+#: part/models.py:122 part/models.py:2516 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -4361,7 +4389,7 @@ msgstr ""
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146
+#: templates/js/translated/part.js:2004 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr ""
@@ -4391,7 +4419,7 @@ msgstr ""
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:745 part/models.py:2562
+#: part/models.py:745 part/models.py:2570
msgid "Part name"
msgstr ""
@@ -4424,11 +4452,11 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:783 part/models.py:2257 part/models.py:2507
+#: part/models.py:783 part/models.py:2265 part/models.py:2515
#: part/templates/part/part_base.html:257
#: templates/InvenTree/settings/settings.html:232
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688
+#: templates/js/translated/part.js:1477 templates/js/translated/part.js:1717
msgid "Category"
msgstr ""
@@ -4437,7 +4465,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:789 part/templates/part/part_base.html:266
-#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:1430
#: templates/js/translated/stock.js:1726
msgid "IPN"
msgstr ""
@@ -4451,7 +4479,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:797 part/templates/part/part_base.html:273
-#: report/models.py:171 templates/js/translated/part.js:743
+#: report/models.py:171 templates/js/translated/part.js:741
msgid "Revision"
msgstr ""
@@ -4543,245 +4571,245 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2304
+#: part/models.py:2312
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2321
+#: part/models.py:2329
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2341 templates/js/translated/part.js:2026
+#: part/models.py:2349 templates/js/translated/part.js:2055
#: templates/js/translated/stock.js:1340
msgid "Test Name"
msgstr ""
-#: part/models.py:2342
+#: part/models.py:2350
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2347
+#: part/models.py:2355
msgid "Test Description"
msgstr ""
-#: part/models.py:2348
+#: part/models.py:2356
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2353 templates/js/translated/part.js:2035
+#: part/models.py:2361 templates/js/translated/part.js:2064
#: templates/js/translated/table_filters.js:302
msgid "Required"
msgstr ""
-#: part/models.py:2354
+#: part/models.py:2362
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2359 templates/js/translated/part.js:2043
+#: part/models.py:2367 templates/js/translated/part.js:2072
msgid "Requires Value"
msgstr ""
-#: part/models.py:2360
+#: part/models.py:2368
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2365 templates/js/translated/part.js:2050
+#: part/models.py:2373 templates/js/translated/part.js:2079
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2366
+#: part/models.py:2374
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2374
+#: part/models.py:2382
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2410
+#: part/models.py:2418
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2418
+#: part/models.py:2426
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2433
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2430
+#: part/models.py:2438
msgid "Parameter description"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2471
msgid "Parent Part"
msgstr ""
-#: part/models.py:2465 part/models.py:2513 part/models.py:2514
+#: part/models.py:2473 part/models.py:2521 part/models.py:2522
#: templates/InvenTree/settings/settings.html:227
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Data"
msgstr ""
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2518 templates/InvenTree/settings/settings.html:236
+#: part/models.py:2526 templates/InvenTree/settings/settings.html:236
msgid "Default Value"
msgstr ""
-#: part/models.py:2519
+#: part/models.py:2527
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2554
+#: part/models.py:2562
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2557 templates/js/translated/model_renderers.js:212
+#: part/models.py:2565 templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr ""
-#: part/models.py:2558
+#: part/models.py:2566
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2561
+#: part/models.py:2569
msgid "Part Name"
msgstr ""
-#: part/models.py:2565
+#: part/models.py:2573
msgid "Part IPN"
msgstr ""
-#: part/models.py:2566
+#: part/models.py:2574
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2569
+#: part/models.py:2577
msgid "Level"
msgstr ""
-#: part/models.py:2570
+#: part/models.py:2578
msgid "BOM level"
msgstr ""
-#: part/models.py:2639
+#: part/models.py:2647
msgid "Select parent part"
msgstr ""
-#: part/models.py:2647
+#: part/models.py:2655
msgid "Sub part"
msgstr ""
-#: part/models.py:2648
+#: part/models.py:2656
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2654
+#: part/models.py:2662
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2656 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997
+#: part/models.py:2664 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:876 templates/js/translated/bom.js:1005
#: templates/js/translated/table_filters.js:100
msgid "Optional"
msgstr ""
-#: part/models.py:2656
+#: part/models.py:2664
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2659 part/templates/part/upload_bom.html:55
+#: part/models.py:2667 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2660
+#: part/models.py:2668
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2671
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2666
+#: part/models.py:2674
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "Checksum"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2672 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1014
+#: part/models.py:2680 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:1022
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:96
msgid "Inherited"
msgstr ""
-#: part/models.py:2673
+#: part/models.py:2681
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2678 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1006
+#: part/models.py:2686 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:1014
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2679
+#: part/models.py:2687
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2757 stock/models.py:468
+#: part/models.py:2765 stock/models.py:468
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2766 part/models.py:2768
+#: part/models.py:2774 part/models.py:2776
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2873
+#: part/models.py:2881
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2902
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2915
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2923
msgid "Substitute part"
msgstr ""
-#: part/models.py:2930
+#: part/models.py:2938
msgid "Part 1"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Part 2"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2960
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:2956
+#: part/models.py:2964
msgid "Duplicate relationship already exists"
msgstr ""
@@ -5309,10 +5337,10 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:624
-#: templates/js/translated/company.js:884
+#: templates/js/translated/company.js:659
+#: templates/js/translated/company.js:920
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:654 templates/js/translated/part.js:731
+#: templates/js/translated/part.js:652 templates/js/translated/part.js:729
msgid "Inactive"
msgstr ""
@@ -5327,28 +5355,28 @@ msgid "This part is a variant of %(link)s"
msgstr ""
#: part/templates/part/part_base.html:194
-#: templates/js/translated/company.js:974
+#: templates/js/translated/company.js:1027
#: templates/js/translated/table_filters.js:201
msgid "In Stock"
msgstr ""
#: part/templates/part/part_base.html:215
-#: stock/templates/stock/item_base.html:379
+#: stock/templates/stock/item_base.html:382
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:224
-#: stock/templates/stock/item_base.html:372
+#: stock/templates/stock/item_base.html:375
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1043
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320
-#: templates/js/translated/part.js:1510
+#: part/templates/part/part_base.html:238 templates/js/translated/part.js:591
+#: templates/js/translated/part.js:611 templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1527
msgid "Building"
msgstr ""
@@ -5361,7 +5389,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:328
+#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
@@ -5400,7 +5428,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:989
+#: templates/js/translated/bom.js:997
msgid "No supplier pricing available"
msgstr ""
@@ -5439,7 +5467,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:53
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468
+#: templates/js/translated/order.js:2001 templates/js/translated/stock.js:2464
msgid "Date"
msgstr ""
@@ -5495,7 +5523,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983
+#: part/templates/part/prices.html:160 templates/js/translated/bom.js:991
msgid "Supplier Cost"
msgstr ""
@@ -5533,8 +5561,8 @@ msgstr ""
msgid "No sale pice history available for this part."
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616
-#: templates/js/translated/part.js:1308
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:614
+#: templates/js/translated/part.js:1329 templates/js/translated/part.js:1331
msgid "No Stock"
msgstr ""
@@ -5735,19 +5763,19 @@ msgstr ""
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:186
+#: plugin/models.py:188
msgid "Plugin"
msgstr ""
-#: plugin/models.py:249
+#: plugin/models.py:253
msgid "Method"
msgstr ""
-#: plugin/plugin.py:251
+#: plugin/plugin.py:252
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:263
+#: plugin/plugin.py:264
msgid "No date found"
msgstr ""
@@ -5925,12 +5953,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:648 stock/templates/stock/item_base.html:317
+#: stock/models.py:648 stock/templates/stock/item_base.html:320
#: templates/js/translated/build.js:456 templates/js/translated/build.js:608
#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706
#: templates/js/translated/model_renderers.js:118
-#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403
-#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490
+#: templates/js/translated/order.js:121 templates/js/translated/order.js:3597
+#: templates/js/translated/order.js:3684 templates/js/translated/stock.js:490
msgid "Serial Number"
msgstr ""
@@ -5963,7 +5991,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780
-#: templates/js/translated/stock.js:2717
+#: templates/js/translated/stock.js:2713
msgid "Serial"
msgstr ""
@@ -5980,7 +6008,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
#: stock/models.py:89 stock/models.py:739
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:250
msgid "Owner"
msgstr ""
@@ -6046,7 +6074,7 @@ msgstr ""
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:631 stock/templates/stock/item_base.html:356
+#: stock/models.py:631 stock/templates/stock/item_base.html:359
msgid "Installed In"
msgstr ""
@@ -6086,8 +6114,8 @@ msgstr ""
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:706 stock/templates/stock/item_base.html:424
-#: templates/js/translated/stock.js:1883
+#: stock/models.py:706 stock/templates/stock/item_base.html:427
+#: templates/js/translated/stock.js:1879
msgid "Expiry Date"
msgstr ""
@@ -6379,7 +6407,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2857
msgid "Install Stock Item"
msgstr ""
@@ -6479,134 +6507,135 @@ msgstr ""
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:158
+#: stock/templates/stock/item_base.html:161
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:193
+#: stock/templates/stock/item_base.html:196
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:214
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:254
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/location.html:132
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:268
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:266
+#: stock/templates/stock/item_base.html:269
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:279
+#: stock/templates/stock/item_base.html:282
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:290
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:298
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:301
+#: stock/templates/stock/item_base.html:304
msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
msgstr ""
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:345
+#: stock/templates/stock/item_base.html:348
msgid "Available Quantity"
msgstr ""
-#: stock/templates/stock/item_base.html:389
+#: stock/templates/stock/item_base.html:392
#: templates/js/translated/build.js:1729
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:404
+#: stock/templates/stock/item_base.html:407
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#: templates/js/translated/table_filters.js:269
msgid "Expired"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:275
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:437
-#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899
+#: stock/templates/stock/item_base.html:440
+#: templates/js/translated/company.js:1038
+#: templates/js/translated/stock.js:1895
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:442
+#: stock/templates/stock/item_base.html:445
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:516
+#: stock/templates/stock/item_base.html:519
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:589
+#: stock/templates/stock/item_base.html:592
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:592
+#: stock/templates/stock/item_base.html:595
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:593
+#: stock/templates/stock/item_base.html:596
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:601
+#: stock/templates/stock/item_base.html:604
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:629
+#: stock/templates/stock/item_base.html:632
msgid "Return to Stock"
msgstr ""
@@ -6739,11 +6768,11 @@ msgstr ""
msgid "Refer to the error log in the admin interface for further details"
msgstr ""
-#: templates/503.html:11 templates/503.html:36
+#: templates/503.html:11 templates/503.html:34
msgid "Site is in Maintenance"
msgstr ""
-#: templates/503.html:42
+#: templates/503.html:40
msgid "The site is currently in maintenance and should be up again soon!"
msgstr ""
@@ -7509,7 +7538,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:644
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr ""
@@ -7728,7 +7757,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1481
+#: templates/js/translated/bom.js:1489
msgid "Required Quantity"
msgstr ""
@@ -7742,7 +7771,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2522
+#: templates/js/translated/part.js:2551
msgid "Minimum Quantity"
msgstr ""
@@ -7947,7 +7976,7 @@ msgstr ""
#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620
#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601
#: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003
-#: templates/js/translated/order.js:1085 templates/modals.html:15
+#: templates/js/translated/order.js:1179 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -7957,12 +7986,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145
+#: templates/js/translated/order.js:960 templates/js/translated/tables.js:145
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:867
+#: templates/js/translated/order.js:961
msgid "Select file format"
msgstr ""
@@ -8058,73 +8087,73 @@ msgstr ""
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857
-#: templates/js/translated/order.js:3738
+#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1857
+#: templates/js/translated/order.js:3932
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861
+#: templates/js/translated/bom.js:940 templates/js/translated/build.js:1861
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516
+#: templates/js/translated/bom.js:942 templates/js/translated/build.js:1863
+#: templates/js/translated/part.js:761 templates/js/translated/part.js:1533
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865
+#: templates/js/translated/bom.js:944 templates/js/translated/build.js:1865
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:954
+#: templates/js/translated/bom.js:962
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:969
+#: templates/js/translated/bom.js:977
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:976
+#: templates/js/translated/bom.js:984
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145
+#: templates/js/translated/bom.js:1033 templates/js/translated/bom.js:1153
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1052
+#: templates/js/translated/bom.js:1060
msgid "Including On Order"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1124
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1118
+#: templates/js/translated/bom.js:1126
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1120
+#: templates/js/translated/bom.js:1128
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284
+#: templates/js/translated/bom.js:1130 templates/js/translated/bom.js:1292
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1124
+#: templates/js/translated/bom.js:1132
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650
+#: templates/js/translated/bom.js:1228 templates/js/translated/build.js:1650
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789
+#: templates/js/translated/bom.js:1472 templates/js/translated/build.js:1789
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1486
+#: templates/js/translated/bom.js:1498
msgid "Inherited from parent BOM"
msgstr ""
@@ -8267,12 +8296,12 @@ msgid "No required tests for this build"
msgstr ""
#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697
-#: templates/js/translated/order.js:3438
+#: templates/js/translated/order.js:3632
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698
-#: templates/js/translated/order.js:3439
+#: templates/js/translated/order.js:3633
msgid "Delete stock allocation"
msgstr ""
@@ -8292,20 +8321,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745
+#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3939
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743
+#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3937
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127
-#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757
+#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3951
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837
+#: templates/js/translated/build.js:1930 templates/js/translated/order.js:4031
msgid "Build stock"
msgstr ""
@@ -8313,21 +8342,21 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830
+#: templates/js/translated/build.js:1937 templates/js/translated/order.js:4024
msgid "Allocate stock"
msgstr ""
#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965
+#: templates/js/translated/order.js:1007 templates/js/translated/order.js:3159
#: templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966
+#: templates/js/translated/build.js:1977 templates/js/translated/order.js:3160
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914
+#: templates/js/translated/build.js:2026 templates/js/translated/order.js:3108
msgid "Specify stock allocation quantity"
msgstr ""
@@ -8339,7 +8368,7 @@ msgstr ""
msgid "All selected parts have been fully allocated"
msgstr ""
-#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980
+#: templates/js/translated/build.js:2115 templates/js/translated/order.js:3174
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
@@ -8347,11 +8376,11 @@ msgstr ""
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077
+#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3271
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154
+#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3348
msgid "No matching stock items"
msgstr ""
@@ -8383,9 +8412,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401
-#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1422
+#: templates/js/translated/part.js:1948 templates/js/translated/stock.js:1686
+#: templates/js/translated/stock.js:2382
msgid "Select"
msgstr ""
@@ -8397,7 +8426,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647
+#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2643
msgid "No user information"
msgstr ""
@@ -8405,111 +8434,115 @@ msgstr ""
msgid "No parts allocated for"
msgstr ""
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:179
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:181
msgid "Add Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
msgid "Edit Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:167 templates/js/translated/order.js:511
+#: templates/js/translated/company.js:169 templates/js/translated/order.js:576
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:195 templates/js/translated/order.js:734
+#: templates/js/translated/company.js:197 templates/js/translated/order.js:828
msgid "Add Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:262
+#: templates/js/translated/company.js:297
msgid "All selected supplier parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:278
+#: templates/js/translated/company.js:313
msgid "Delete Supplier Parts"
msgstr ""
-#: templates/js/translated/company.js:350
+#: templates/js/translated/company.js:385
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:427
+#: templates/js/translated/company.js:462
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:471
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:451
+#: templates/js/translated/company.js:486
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:492
+#: templates/js/translated/company.js:527
msgid "All selected manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:507
+#: templates/js/translated/company.js:542
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:541
+#: templates/js/translated/company.js:576
msgid "All selected parameters will be deleted"
msgstr ""
-#: templates/js/translated/company.js:555
+#: templates/js/translated/company.js:590
msgid "Delete Parameters"
msgstr ""
-#: templates/js/translated/company.js:596
+#: templates/js/translated/company.js:631
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:616
-#: templates/js/translated/company.js:876 templates/js/translated/part.js:638
-#: templates/js/translated/part.js:723
+#: templates/js/translated/company.js:651
+#: templates/js/translated/company.js:912 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:721
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:620
-#: templates/js/translated/company.js:880 templates/js/translated/part.js:642
-#: templates/js/translated/part.js:727
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:916 templates/js/translated/part.js:640
+#: templates/js/translated/part.js:725
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:748 templates/js/translated/part.js:830
+#: templates/js/translated/company.js:783 templates/js/translated/part.js:828
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:785 templates/js/translated/part.js:872
+#: templates/js/translated/company.js:820 templates/js/translated/part.js:870
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:786 templates/js/translated/part.js:873
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:871
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:805 templates/js/translated/part.js:890
+#: templates/js/translated/company.js:840 templates/js/translated/part.js:888
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:816 templates/js/translated/part.js:902
+#: templates/js/translated/company.js:851 templates/js/translated/part.js:900
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:856
+#: templates/js/translated/company.js:891
msgid "No supplier parts found"
msgstr ""
-#: templates/js/translated/company.js:1002
+#: templates/js/translated/company.js:1032
+msgid "Availability"
+msgstr ""
+
+#: templates/js/translated/company.js:1055
msgid "Edit supplier part"
msgstr ""
-#: templates/js/translated/company.js:1003
+#: templates/js/translated/company.js:1056
msgid "Delete supplier part"
msgstr ""
@@ -8547,61 +8580,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:367 templates/js/translated/forms.js:382
-#: templates/js/translated/forms.js:396 templates/js/translated/forms.js:410
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:369
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:384
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:398
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:670
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:771
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1269 templates/modals.html:19
+#: templates/js/translated/forms.js:1274 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1702
+#: templates/js/translated/forms.js:1707
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1917 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2170
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2648
+#: templates/js/translated/forms.js:2653
msgid "Select Columns"
msgstr ""
@@ -8792,409 +8825,422 @@ msgstr ""
msgid "Notifications will load here"
msgstr ""
-#: templates/js/translated/order.js:96
+#: templates/js/translated/order.js:97
msgid "No stock items have been allocated to this shipment"
msgstr ""
-#: templates/js/translated/order.js:101
+#: templates/js/translated/order.js:102
msgid "The following stock items will be shipped"
msgstr ""
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:142
msgid "Complete Shipment"
msgstr ""
-#: templates/js/translated/order.js:161
+#: templates/js/translated/order.js:162
msgid "Confirm Shipment"
msgstr ""
-#: templates/js/translated/order.js:217
+#: templates/js/translated/order.js:218
msgid "No pending shipments found"
msgstr ""
-#: templates/js/translated/order.js:221
+#: templates/js/translated/order.js:222
msgid "No stock items have been allocated to pending shipments"
msgstr ""
-#: templates/js/translated/order.js:253
+#: templates/js/translated/order.js:254
msgid "Skip"
msgstr ""
-#: templates/js/translated/order.js:283
+#: templates/js/translated/order.js:284
msgid "Complete Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:289
+#: templates/js/translated/order.js:301 templates/js/translated/order.js:413
msgid "Mark this order as complete?"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:307
msgid "All line items have been received"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:312
msgid "This order has line items which have not been marked as received."
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:313 templates/js/translated/order.js:427
msgid "Completing this order means that the order and line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:324
+#: templates/js/translated/order.js:336
msgid "Cancel Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:329
+#: templates/js/translated/order.js:341
msgid "Are you sure you wish to cancel this purchase order?"
msgstr ""
-#: templates/js/translated/order.js:335
+#: templates/js/translated/order.js:347
msgid "This purchase order can not be cancelled"
msgstr ""
-#: templates/js/translated/order.js:358
+#: templates/js/translated/order.js:370
msgid "Issue Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:363
+#: templates/js/translated/order.js:375
msgid "After placing this purchase order, line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:385
+#: templates/js/translated/order.js:426
+msgid "This order has line items which have not been completed."
+msgstr ""
+
+#: templates/js/translated/order.js:450
msgid "Cancel Sales Order"
msgstr ""
-#: templates/js/translated/order.js:390
+#: templates/js/translated/order.js:455
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:444
+#: templates/js/translated/order.js:509
msgid "Create New Shipment"
msgstr ""
-#: templates/js/translated/order.js:469
+#: templates/js/translated/order.js:534
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:494
+#: templates/js/translated/order.js:559
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:555
+#: templates/js/translated/order.js:620
msgid "Select purchase order to duplicate"
msgstr ""
-#: templates/js/translated/order.js:562
+#: templates/js/translated/order.js:627
msgid "Duplicate Line Items"
msgstr ""
-#: templates/js/translated/order.js:563
+#: templates/js/translated/order.js:628
msgid "Duplicate all line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:570
+#: templates/js/translated/order.js:635
msgid "Duplicate Extra Lines"
msgstr ""
-#: templates/js/translated/order.js:571
+#: templates/js/translated/order.js:636
msgid "Duplicate extra line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:588
+#: templates/js/translated/order.js:653
msgid "Edit Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:605
+#: templates/js/translated/order.js:670
msgid "Duplication Options"
msgstr ""
-#: templates/js/translated/order.js:863
+#: templates/js/translated/order.js:957
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:914
+#: templates/js/translated/order.js:1008
msgid "At least one purchaseable part must be selected"
msgstr ""
-#: templates/js/translated/order.js:939
+#: templates/js/translated/order.js:1033
msgid "Quantity to order"
msgstr ""
-#: templates/js/translated/order.js:948
+#: templates/js/translated/order.js:1042
msgid "New supplier part"
msgstr ""
-#: templates/js/translated/order.js:966
+#: templates/js/translated/order.js:1060
msgid "New purchase order"
msgstr ""
-#: templates/js/translated/order.js:999
+#: templates/js/translated/order.js:1093
msgid "Add to purchase order"
msgstr ""
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1233
msgid "No matching supplier parts"
msgstr ""
-#: templates/js/translated/order.js:1123
+#: templates/js/translated/order.js:1252
msgid "No matching purchase orders"
msgstr ""
-#: templates/js/translated/order.js:1300
+#: templates/js/translated/order.js:1429
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1430
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420
+#: templates/js/translated/order.js:1450 templates/js/translated/order.js:1563
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431
+#: templates/js/translated/order.js:1456 templates/js/translated/order.js:1574
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1339
+#: templates/js/translated/order.js:1471
+msgid "Received Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:1482
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144
+#: templates/js/translated/order.js:1546 templates/js/translated/stock.js:2140
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:1494
+#: templates/js/translated/order.js:1639
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:1495
+#: templates/js/translated/order.js:1640
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:1497
+#: templates/js/translated/order.js:1642
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:1516
+#: templates/js/translated/order.js:1661
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:1517
+#: templates/js/translated/order.js:1662
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943
+#: templates/js/translated/order.js:1940 templates/js/translated/part.js:941
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2803
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674
-#: templates/js/translated/order.js:2815
+#: templates/js/translated/order.js:2017 templates/js/translated/order.js:2868
+#: templates/js/translated/order.js:3009
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889
+#: templates/js/translated/order.js:2115 templates/js/translated/order.js:4083
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911
+#: templates/js/translated/order.js:2132 templates/js/translated/order.js:4105
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:4116
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:2026
+#: templates/js/translated/order.js:2188
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:2215 templates/js/translated/order.js:3817
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309
-#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156
-#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753
+#: templates/js/translated/order.js:2270 templates/js/translated/part.js:1043
+#: templates/js/translated/part.js:1095
+msgid "Total Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:2301 templates/js/translated/order.js:2503
+#: templates/js/translated/order.js:3842 templates/js/translated/order.js:4350
+#: templates/js/translated/part.js:2184 templates/js/translated/part.js:2782
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325
-#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172
+#: templates/js/translated/order.js:2316 templates/js/translated/order.js:2519
+#: templates/js/translated/order.js:3858 templates/js/translated/order.js:4366
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706
-#: templates/js/translated/part.js:1070
+#: templates/js/translated/order.js:2357 templates/js/translated/order.js:3900
+#: templates/js/translated/part.js:1079
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110
+#: templates/js/translated/order.js:2416 templates/js/translated/part.js:1130
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2420 templates/js/translated/order.js:4037
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844
+#: templates/js/translated/order.js:2421 templates/js/translated/order.js:4038
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848
+#: templates/js/translated/order.js:2422 templates/js/translated/order.js:4042
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221
+#: templates/js/translated/order.js:2568 templates/js/translated/order.js:4415
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222
+#: templates/js/translated/order.js:2569 templates/js/translated/order.js:4416
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223
+#: templates/js/translated/order.js:2570 templates/js/translated/order.js:4417
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253
+#: templates/js/translated/order.js:2600 templates/js/translated/order.js:4447
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274
+#: templates/js/translated/order.js:2621 templates/js/translated/order.js:4468
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285
+#: templates/js/translated/order.js:2632 templates/js/translated/order.js:4479
msgid "Delete Line"
msgstr ""
-#: templates/js/translated/order.js:2449
+#: templates/js/translated/order.js:2643
msgid "No matching line"
msgstr ""
-#: templates/js/translated/order.js:2560
+#: templates/js/translated/order.js:2754
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:2623
+#: templates/js/translated/order.js:2817
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:2721
+#: templates/js/translated/order.js:2915
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:2724
+#: templates/js/translated/order.js:2918
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:2729
+#: templates/js/translated/order.js:2923
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:2749
+#: templates/js/translated/order.js:2943
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:2766
+#: templates/js/translated/order.js:2960
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:2800
+#: templates/js/translated/order.js:2994
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:2810
+#: templates/js/translated/order.js:3004
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:2834
+#: templates/js/translated/order.js:3028
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:2840
+#: templates/js/translated/order.js:3034
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:2844
+#: templates/js/translated/order.js:3038
msgid "Invoice"
msgstr ""
-#: templates/js/translated/order.js:3013
+#: templates/js/translated/order.js:3207
msgid "Add Shipment"
msgstr ""
-#: templates/js/translated/order.js:3064
+#: templates/js/translated/order.js:3258
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/order.js:3065
+#: templates/js/translated/order.js:3259
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:3273
+#: templates/js/translated/order.js:3467
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:3352
+#: templates/js/translated/order.js:3546
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3369
+#: templates/js/translated/order.js:3563
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:3370
+#: templates/js/translated/order.js:3564
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504
+#: templates/js/translated/order.js:3609 templates/js/translated/order.js:3698
#: templates/js/translated/stock.js:1602
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513
+#: templates/js/translated/order.js:3617 templates/js/translated/order.js:3707
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3827
+#: templates/js/translated/order.js:4021
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3833
+#: templates/js/translated/order.js:4027
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038
+#: templates/js/translated/order.js:4034 templates/js/translated/order.js:4232
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3852
+#: templates/js/translated/order.js:4046
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3855
+#: templates/js/translated/order.js:4049
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3937
+#: templates/js/translated/order.js:4131
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:4046
+#: templates/js/translated/order.js:4240
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:4060
+#: templates/js/translated/order.js:4254
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4296
+#: templates/js/translated/order.js:4490
msgid "No matching lines"
msgstr ""
@@ -9374,173 +9420,177 @@ msgstr ""
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498
+#: templates/js/translated/part.js:584 templates/js/translated/part.js:1515
#: templates/js/translated/table_filters.js:468
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:596
+#: templates/js/translated/part.js:594
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:715
+#: templates/js/translated/part.js:628 templates/js/translated/part.js:713
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:634 templates/js/translated/part.js:719
+#: templates/js/translated/part.js:632 templates/js/translated/part.js:717
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:646
+#: templates/js/translated/part.js:644
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:650
+#: templates/js/translated/part.js:648
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:778
+#: templates/js/translated/part.js:776
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1180
+#: templates/js/translated/part.js:1200
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1204
+#: templates/js/translated/part.js:1224
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573
+#: templates/js/translated/part.js:1291 templates/js/translated/part.js:1602
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1310
-msgid "Not available"
-msgstr ""
-
-#: templates/js/translated/part.js:1461
+#: templates/js/translated/part.js:1482
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1496
+#: templates/js/translated/part.js:1513
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840
-#: templates/js/translated/stock.js:2347
+#: templates/js/translated/part.js:1537
+msgid "Allocated to build orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1541
+msgid "Allocated to sales orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1626 templates/js/translated/part.js:1869
+#: templates/js/translated/stock.js:2343
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1613
+#: templates/js/translated/part.js:1642
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1679
+#: templates/js/translated/part.js:1708
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1684
+#: templates/js/translated/part.js:1713
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:1689
+#: templates/js/translated/part.js:1718
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1702
+#: templates/js/translated/part.js:1731
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366
+#: templates/js/translated/part.js:1888 templates/js/translated/stock.js:2362
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1938
+#: templates/js/translated/part.js:1967
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:1954
+#: templates/js/translated/part.js:1983
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2012
+#: templates/js/translated/part.js:2041
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299
+#: templates/js/translated/part.js:2092 templates/js/translated/stock.js:1299
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300
+#: templates/js/translated/part.js:2093 templates/js/translated/stock.js:1300
#: templates/js/translated/stock.js:1560
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2070
+#: templates/js/translated/part.js:2099
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2092
+#: templates/js/translated/part.js:2121
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2106
+#: templates/js/translated/part.js:2135
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2131
+#: templates/js/translated/part.js:2160
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:2188
+#: templates/js/translated/part.js:2217
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2189
+#: templates/js/translated/part.js:2218
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355
+#: templates/js/translated/part.js:2383 templates/js/translated/part.js:2384
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2357
+#: templates/js/translated/part.js:2386
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2363
+#: templates/js/translated/part.js:2392
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2413
+#: templates/js/translated/part.js:2442
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2419
+#: templates/js/translated/part.js:2448
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2515
+#: templates/js/translated/part.js:2544
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2531
+#: templates/js/translated/part.js:2560
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2576
+#: templates/js/translated/part.js:2605
msgid "Minimum Stock Level"
msgstr ""
-#: templates/js/translated/part.js:2677
+#: templates/js/translated/part.js:2706
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:2696
+#: templates/js/translated/part.js:2725
msgid "Single Price Difference"
msgstr ""
@@ -9778,7 +9828,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:942 users/models.py:216
+#: templates/js/translated/stock.js:942 users/models.py:218
msgid "Add"
msgstr ""
@@ -9854,156 +9904,156 @@ msgstr ""
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1775
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1780
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1787
+#: templates/js/translated/stock.js:1783
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1790
+#: templates/js/translated/stock.js:1786
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1792
+#: templates/js/translated/stock.js:1788
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1794
+#: templates/js/translated/stock.js:1790
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1797
+#: templates/js/translated/stock.js:1793
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1797
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1803
+#: templates/js/translated/stock.js:1799
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1810
+#: templates/js/translated/stock.js:1806
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:1808
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1814
+#: templates/js/translated/stock.js:1810
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1818
+#: templates/js/translated/stock.js:1814
#: templates/js/translated/table_filters.js:196
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1869
+#: templates/js/translated/stock.js:1865
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1948
+#: templates/js/translated/stock.js:1944
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1986
+#: templates/js/translated/stock.js:1982
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2159
+#: templates/js/translated/stock.js:2155
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2173
+#: templates/js/translated/stock.js:2169
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2174
+#: templates/js/translated/stock.js:2170
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2404
+#: templates/js/translated/stock.js:2400
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2493
+#: templates/js/translated/stock.js:2489
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2509
+#: templates/js/translated/stock.js:2505
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2531
+#: templates/js/translated/stock.js:2527
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2550
+#: templates/js/translated/stock.js:2546
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2569
+#: templates/js/translated/stock.js:2565
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2587
+#: templates/js/translated/stock.js:2583
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2610
+#: templates/js/translated/stock.js:2606
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2618
+#: templates/js/translated/stock.js:2614
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2694
+#: templates/js/translated/stock.js:2690
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781
+#: templates/js/translated/stock.js:2741 templates/js/translated/stock.js:2777
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2790
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2815
+#: templates/js/translated/stock.js:2811
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2816
+#: templates/js/translated/stock.js:2812
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2818
+#: templates/js/translated/stock.js:2814
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2819
+#: templates/js/translated/stock.js:2815
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2820
+#: templates/js/translated/stock.js:2816
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2821
+#: templates/js/translated/stock.js:2817
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2834
+#: templates/js/translated/stock.js:2830
msgid "Select part to install"
msgstr ""
@@ -10525,35 +10575,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:203
+#: users/models.py:205
msgid "Permission set"
msgstr ""
-#: users/models.py:211
+#: users/models.py:213
msgid "Group"
msgstr ""
-#: users/models.py:214
+#: users/models.py:216
msgid "View"
msgstr ""
-#: users/models.py:214
+#: users/models.py:216
msgid "Permission to view items"
msgstr ""
-#: users/models.py:216
+#: users/models.py:218
msgid "Permission to add items"
msgstr ""
-#: users/models.py:218
+#: users/models.py:220
msgid "Change"
msgstr ""
-#: users/models.py:218
+#: users/models.py:220
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:222
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po
index fe446895c1..bb91a9c2ae 100644
--- a/InvenTree/locale/tr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/tr/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-08-25 10:08+0000\n"
-"PO-Revision-Date: 2022-08-26 01:55\n"
+"POT-Creation-Date: 2022-09-09 02:44+0000\n"
+"PO-Revision-Date: 2022-09-09 03:57\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
"Language: tr_TR\n"
@@ -29,9 +29,9 @@ msgstr ""
msgid "Enter date"
msgstr "Tarih giriniz"
-#: InvenTree/fields.py:186 build/serializers.py:384
-#: build/templates/build/sidebar.html:21 company/models.py:523
-#: company/templates/company/sidebar.html:25 order/models.py:906
+#: InvenTree/fields.py:183 build/serializers.py:384
+#: build/templates/build/sidebar.html:21 company/models.py:524
+#: company/templates/company/sidebar.html:25 order/models.py:910
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17
#: part/templates/part/part_sidebar.html:59
@@ -40,11 +40,12 @@ msgstr "Tarih giriniz"
#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823
#: stock/serializers.py:922 stock/serializers.py:1054
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099
-#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210
-#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859
-#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208
-#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1107
+#: templates/js/translated/company.js:1022
+#: templates/js/translated/order.js:2404 templates/js/translated/order.js:2555
+#: templates/js/translated/order.js:3053 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:4402 templates/js/translated/stock.js:1374
+#: templates/js/translated/stock.js:1976
msgid "Notes"
msgstr "Notlar"
@@ -210,12 +211,12 @@ msgid "Select file to attach"
msgstr "Eklenecek dosyayı seç"
#: InvenTree/models.py:402 company/models.py:124 company/models.py:276
-#: company/models.py:510 order/models.py:84 order/models.py:1245
+#: company/models.py:511 order/models.py:84 order/models.py:1249
#: part/models.py:802 part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
-#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848
-#: templates/js/translated/part.js:1534
+#: templates/js/translated/company.js:691
+#: templates/js/translated/company.js:1011
+#: templates/js/translated/order.js:3042 templates/js/translated/part.js:1563
msgid "Link"
msgstr "Bağlantı"
@@ -233,12 +234,12 @@ msgstr "Yorum"
msgid "File comment"
msgstr "Dosya yorumu"
-#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665
-#: common/models.py:1666 common/models.py:1889 common/models.py:1890
-#: common/models.py:2152 common/models.py:2153 part/models.py:2239
-#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257
+#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1669
+#: common/models.py:1670 common/models.py:1893 common/models.py:1894
+#: common/models.py:2156 common/models.py:2157 part/models.py:2247
+#: part/models.py:2267 plugin/models.py:260 plugin/models.py:261
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2641
+#: templates/js/translated/stock.js:2637
msgid "User"
msgstr "Kullanıcı"
@@ -275,28 +276,28 @@ msgstr "Dosya adı değiştirilirken hata"
msgid "Invalid choice"
msgstr "Geçersiz seçim"
-#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875
+#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1879
#: company/models.py:358 label/models.py:101 part/models.py:746
-#: part/models.py:2417 plugin/models.py:94 report/models.py:152
+#: part/models.py:2425 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin.html:134
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:347
-#: templates/js/translated/company.js:545
-#: templates/js/translated/company.js:758
+#: templates/js/translated/company.js:580
+#: templates/js/translated/company.js:793
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:688 templates/js/translated/part.js:840
-#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392
+#: templates/js/translated/part.js:686 templates/js/translated/part.js:838
+#: templates/js/translated/part.js:1955 templates/js/translated/stock.js:2388
msgid "Name"
msgstr "Adı"
#: InvenTree/models.py:544 build/models.py:174
#: build/templates/build/detail.html:24 company/models.py:282
-#: company/models.py:516 company/templates/company/company_base.html:71
+#: company/models.py:517 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:87 label/models.py:108
-#: order/models.py:82 part/models.py:769 part/models.py:2429
+#: company/templates/company/supplier_part.html:92 label/models.py:108
+#: order/models.py:82 part/models.py:769 part/models.py:2437
#: part/templates/part/category.html:80 part/templates/part/part_base.html:167
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
@@ -305,14 +306,14 @@ msgstr "Adı"
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/InvenTree/settings/settings.html:358
#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846
-#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409
-#: templates/js/translated/company.js:667
-#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637
-#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167
-#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962
-#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743
-#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478
+#: templates/js/translated/build.js:2512 templates/js/translated/company.js:444
+#: templates/js/translated/company.js:702
+#: templates/js/translated/company.js:986 templates/js/translated/order.js:1988
+#: templates/js/translated/order.js:2220 templates/js/translated/order.js:2831
+#: templates/js/translated/part.js:745 templates/js/translated/part.js:1187
+#: templates/js/translated/part.js:1463 templates/js/translated/part.js:1991
+#: templates/js/translated/part.js:2060 templates/js/translated/stock.js:1743
+#: templates/js/translated/stock.js:2420 templates/js/translated/stock.js:2474
msgid "Description"
msgstr "Açıklama"
@@ -325,7 +326,7 @@ msgid "parent"
msgstr "üst"
#: InvenTree/models.py:560 InvenTree/models.py:561
-#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:2426
msgid "Path"
msgstr ""
@@ -337,7 +338,7 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2745
+#: InvenTree/serializers.py:55 part/models.py:2753
msgid "Must be a valid number"
msgstr "Geçerli bir numara olmalı"
@@ -522,7 +523,7 @@ msgid "Placed"
msgstr "Sipariş verildi"
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr "Tamamlandı"
@@ -542,8 +543,8 @@ msgstr "Kayıp"
msgid "Returned"
msgstr "İade"
-#: InvenTree/status_codes.py:141 order/models.py:1128
-#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785
+#: InvenTree/status_codes.py:141 order/models.py:1132
+#: templates/js/translated/order.js:3630 templates/js/translated/order.js:3979
msgid "Shipped"
msgstr "Sevk edildi"
@@ -627,7 +628,7 @@ msgstr "Üst ögeden ayır"
msgid "Split child item"
msgstr "Alt ögeyi ayır"
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080
msgid "Merged stock items"
msgstr "Stok parçalarını birleştir"
@@ -717,7 +718,7 @@ msgstr "Sistem Bilgisi"
msgid "About InvenTree"
msgstr "InvenTree Hakkında"
-#: build/api.py:217
+#: build/api.py:219
msgid "Build must be cancelled before it can be deleted"
msgstr ""
@@ -748,15 +749,15 @@ msgstr "Yapım İşi Emirleri"
msgid "Build Order Reference"
msgstr "Yapım İşi Emri Referansı"
-#: build/models.py:166 order/models.py:240 order/models.py:623
-#: order/models.py:904 part/models.py:2663
+#: build/models.py:166 order/models.py:240 order/models.py:627
+#: order/models.py:908 part/models.py:2671
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853
-#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089
-#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629
-#: templates/js/translated/order.js:4137
+#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2251
+#: templates/js/translated/order.js:2484 templates/js/translated/order.js:3823
+#: templates/js/translated/order.js:4331
msgid "Reference"
msgstr "Referans"
@@ -774,12 +775,12 @@ msgid "BuildOrder to which this build is allocated"
msgstr "Bu yapım işinin tahsis edildiği yapım işi emri"
#: build/models.py:191 build/templates/build/build_base.html:80
-#: build/templates/build/detail.html:29 company/models.py:670
-#: order/models.py:1001 order/models.py:1112 order/models.py:1113
-#: part/models.py:343 part/models.py:2185 part/models.py:2200
-#: part/models.py:2219 part/models.py:2237 part/models.py:2336
-#: part/models.py:2463 part/models.py:2553 part/models.py:2638
-#: part/models.py:2914 part/serializers.py:814
+#: build/templates/build/detail.html:29 company/models.py:679
+#: order/models.py:1005 order/models.py:1116 order/models.py:1117
+#: part/models.py:343 part/models.py:2193 part/models.py:2208
+#: part/models.py:2227 part/models.py:2245 part/models.py:2344
+#: part/models.py:2471 part/models.py:2561 part/models.py:2646
+#: part/models.py:2922 part/serializers.py:814
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -795,18 +796,18 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri"
#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800
#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682
#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517
-#: templates/js/translated/company.js:266
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:608
-#: templates/js/translated/company.js:868 templates/js/translated/order.js:105
-#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493
-#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613
-#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224
-#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586
+#: templates/js/translated/company.js:301
+#: templates/js/translated/company.js:531
+#: templates/js/translated/company.js:643
+#: templates/js/translated/company.js:904 templates/js/translated/order.js:106
+#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1638
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:3185
+#: templates/js/translated/order.js:3581 templates/js/translated/order.js:3807
+#: templates/js/translated/part.js:1172 templates/js/translated/part.js:1244
+#: templates/js/translated/part.js:1441 templates/js/translated/stock.js:586
#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504
-#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833
+#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2500
+#: templates/js/translated/stock.js:2695 templates/js/translated/stock.js:2829
msgid "Part"
msgstr "Parça"
@@ -823,7 +824,7 @@ msgid "SalesOrder to which this build is allocated"
msgstr "Bu yapım işinin tahsis edildiği satış emri"
#: build/models.py:213 build/serializers.py:800
-#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979
+#: templates/js/translated/build.js:2114 templates/js/translated/order.js:3173
msgid "Source Location"
msgstr "Kaynak Konum"
@@ -863,8 +864,8 @@ msgstr "Yapım İşi Durumu"
msgid "Build status code"
msgstr "Yapım işi durum kodu"
-#: build/models.py:251 build/serializers.py:225 order/serializers.py:447
-#: stock/models.py:662 templates/js/translated/order.js:1353
+#: build/models.py:251 build/serializers.py:225 order/serializers.py:464
+#: stock/models.py:662 templates/js/translated/order.js:1496
msgid "Batch Code"
msgstr "Sıra numarası"
@@ -873,11 +874,11 @@ msgid "Batch code for this build output"
msgstr "Yapım işi çıktısı için sıra numarası"
#: build/models.py:258 order/models.py:86 part/models.py:938
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2844
msgid "Creation Date"
msgstr "Oluşturulma tarihi"
-#: build/models.py:262 order/models.py:648
+#: build/models.py:262 order/models.py:652
msgid "Target completion date"
msgstr "Hedef tamamlama tarihi"
@@ -904,10 +905,10 @@ msgstr "Bu yapım işi emrini veren kullanıcı"
#: build/models.py:289 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:100
-#: order/templates/order/order_base.html:179
+#: order/templates/order/order_base.html:185
#: order/templates/order/sales_order_base.html:183 part/models.py:942
#: report/templates/report/inventree_build_order_base.html:158
-#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860
+#: templates/js/translated/build.js:2574 templates/js/translated/order.js:2022
msgid "Responsible"
msgstr "Sorumlu"
@@ -917,9 +918,9 @@ msgstr "Bu yapım işi emrinden sorumlu kullanıcı"
#: build/models.py:295 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
-#: company/templates/company/supplier_part.html:153
+#: company/templates/company/supplier_part.html:165
#: part/templates/part/part_base.html:346 stock/models.py:656
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr "Harici Bağlantı"
@@ -957,11 +958,11 @@ msgstr "Ana parça izlenebilir olarak işaretlendiğinden, yapım işi çıktıs
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1188 order/models.py:1379
+#: build/models.py:1188 order/models.py:1383
msgid "Stock item is over-allocated"
msgstr "Stok kalemi fazladan tahsis edilmiş"
-#: build/models.py:1194 order/models.py:1382
+#: build/models.py:1194 order/models.py:1386
msgid "Allocation quantity must be greater than zero"
msgstr "Tahsis edilen miktar sıfırdan büyük olmalıdır"
@@ -973,7 +974,7 @@ msgstr "Seri numaralı stok için miktar bir olmalı"
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1326 stock/templates/stock/item_base.html:172
+#: build/models.py:1326 stock/templates/stock/item_base.html:175
#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496
#: templates/navbar.html:38
msgid "Build"
@@ -983,18 +984,18 @@ msgstr "Yapım İşi"
msgid "Build to allocate parts"
msgstr "Yapım işi için tahsis edilen parçalar"
-#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015
-#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754
+#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1035
+#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754
#: stock/serializers.py:880 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:197
#: templates/js/translated/build.js:774 templates/js/translated/build.js:779
#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679
-#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992
-#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299
-#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486
+#: templates/js/translated/order.js:107 templates/js/translated/order.js:3186
+#: templates/js/translated/order.js:3488 templates/js/translated/order.js:3493
+#: templates/js/translated/order.js:3588 templates/js/translated/order.js:3680
#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752
-#: templates/js/translated/stock.js:2577
+#: templates/js/translated/stock.js:2573
msgid "Stock Item"
msgstr "Stok Kalemi"
@@ -1004,11 +1005,11 @@ msgstr "Kaynak stok kalemi"
#: build/models.py:1356 build/serializers.py:193
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1697
-#: company/templates/company/supplier_part.html:279 order/models.py:897
-#: order/models.py:1423 order/serializers.py:1155
+#: build/templates/build/detail.html:34 common/models.py:1701
+#: company/templates/company/supplier_part.html:291 order/models.py:901
+#: order/models.py:1427 order/serializers.py:1209
#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40
-#: part/models.py:2654 part/templates/part/detail.html:951
+#: part/models.py:2662 part/templates/part/detail.html:951
#: part/templates/part/detail.html:1037
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -1017,8 +1018,8 @@ msgstr "Kaynak stok kalemi"
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:291 stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
+#: stock/serializers.py:291 stock/templates/stock/item_base.html:290
+#: stock/templates/stock/item_base.html:298
#: templates/email/build_order_completed.html:18
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691
#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458
@@ -1026,16 +1027,16 @@ msgstr "Kaynak stok kalemi"
#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708
#: templates/js/translated/build.js:2129
#: templates/js/translated/model_renderers.js:120
-#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043
-#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313
-#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492
-#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143
-#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176
-#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686
-#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458
+#: templates/js/translated/order.js:123 templates/js/translated/order.js:1137
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:2490
+#: templates/js/translated/order.js:3187 templates/js/translated/order.js:3507
+#: templates/js/translated/order.js:3594 templates/js/translated/order.js:3686
+#: templates/js/translated/order.js:3829 templates/js/translated/order.js:4337
+#: templates/js/translated/part.js:1036 templates/js/translated/part.js:2205
+#: templates/js/translated/part.js:2674 templates/js/translated/part.js:2715
+#: templates/js/translated/part.js:2793 templates/js/translated/stock.js:458
#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782
-#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2707
msgid "Quantity"
msgstr "Miktar"
@@ -1077,7 +1078,7 @@ msgid "Enter quantity for build output"
msgstr "Yapım işi çıktısı için miktarını girin"
#: build/serializers.py:208 build/serializers.py:665 order/models.py:318
-#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545
+#: order/serializers.py:304 order/serializers.py:459 part/serializers.py:545
#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251
#: stock/serializers.py:300
msgid "Quantity must be greater than zero"
@@ -1091,8 +1092,8 @@ msgstr ""
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159
-#: stock/serializers.py:309 templates/js/translated/order.js:1364
+#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213
+#: stock/serializers.py:309 templates/js/translated/order.js:1507
#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459
msgid "Serial Numbers"
msgstr "Seri Numaraları"
@@ -1117,18 +1118,18 @@ msgstr ""
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532
+#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552
#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532
#: stock/serializers.py:915 stock/serializers.py:1148
-#: stock/templates/stock/item_base.html:385
+#: stock/templates/stock/item_base.html:388
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786
-#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391
-#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411
-#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500
+#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1534
+#: templates/js/translated/order.js:3500 templates/js/translated/order.js:3605
+#: templates/js/translated/order.js:3613 templates/js/translated/order.js:3694
#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588
#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960
-#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2514
msgid "Location"
msgstr "Konum"
@@ -1137,12 +1138,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:373 build/templates/build/build_base.html:145
-#: build/templates/build/detail.html:62 order/models.py:642
-#: order/serializers.py:465 stock/templates/stock/item_base.html:418
+#: build/templates/build/detail.html:62 order/models.py:646
+#: order/serializers.py:482 stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546
-#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830
-#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829
-#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727
+#: templates/js/translated/order.js:1643 templates/js/translated/order.js:1992
+#: templates/js/translated/order.js:2836 templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:2591 templates/js/translated/stock.js:2723
msgid "Status"
msgstr "Durum"
@@ -1202,7 +1203,7 @@ msgstr ""
msgid "Required stock has not been fully allocated"
msgstr "Gerekli stok tamamen tahsis edilemedi"
-#: build/serializers.py:527
+#: build/serializers.py:527 order/serializers.py:208 order/serializers.py:1103
msgid "Accept Incomplete"
msgstr ""
@@ -1218,8 +1219,8 @@ msgstr "Gerekli yapım işi miktarı tamamlanmadı"
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772
-#: part/models.py:2906
+#: build/serializers.py:577 build/serializers.py:622 part/models.py:2780
+#: part/models.py:2914
msgid "BOM Item"
msgstr ""
@@ -1239,7 +1240,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:709 order/serializers.py:1073
+#: build/serializers.py:709 order/serializers.py:1093
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1256,7 +1257,7 @@ msgstr ""
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:750 order/serializers.py:1319
+#: build/serializers.py:750 order/serializers.py:1373
msgid "Allocation items must be provided"
msgstr ""
@@ -1371,13 +1372,13 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr "Stok, yapım işi emri için tamamen tahsis edilemedi"
#: build/templates/build/build_base.html:154
-#: build/templates/build/detail.html:131 order/models.py:910
-#: order/templates/order/order_base.html:165
+#: build/templates/build/detail.html:131 order/models.py:914
+#: order/templates/order/order_base.html:171
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:125
-#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847
-#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658
-#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042
+#: templates/js/translated/build.js:2586 templates/js/translated/order.js:2009
+#: templates/js/translated/order.js:2351 templates/js/translated/order.js:2852
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1051
msgid "Target Date"
msgstr "Hedeflenen tarih"
@@ -1388,7 +1389,7 @@ msgstr "Bu yapım işinin %(target)s tarihinde süresi doluyor"
#: build/templates/build/build_base.html:159
#: build/templates/build/build_base.html:204
-#: order/templates/order/order_base.html:101
+#: order/templates/order/order_base.html:107
#: order/templates/order/sales_order_base.html:94
#: templates/js/translated/table_filters.js:320
#: templates/js/translated/table_filters.js:361
@@ -1404,15 +1405,15 @@ msgid "Completed"
msgstr "Tamamlandı"
#: build/templates/build/build_base.html:179
-#: build/templates/build/detail.html:94 order/models.py:1105
-#: order/models.py:1199 order/models.py:1330
+#: build/templates/build/detail.html:94 order/models.py:1109
+#: order/models.py:1203 order/models.py:1334
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:365
+#: stock/templates/stock/item_base.html:368
#: templates/email/overdue_sales_order.html:15
-#: templates/js/translated/order.js:2604
+#: templates/js/translated/order.js:2798
msgid "Sales Order"
msgstr "Sipariş Emri"
@@ -1438,8 +1439,8 @@ msgstr "Stok Kaynağı"
msgid "Stock can be taken from any available location."
msgstr "Stok herhangi bir konumdan alınabilir."
-#: build/templates/build/detail.html:49 order/models.py:1023
-#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199
+#: build/templates/build/detail.html:49 order/models.py:1027
+#: templates/js/translated/order.js:1644 templates/js/translated/order.js:2393
msgid "Destination"
msgstr "Hedef"
@@ -1452,18 +1453,18 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:165
+#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1215
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843
-#: templates/js/translated/stock.js:2734
+#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1839
+#: templates/js/translated/stock.js:2730
#: templates/js/translated/table_filters.js:159
#: templates/js/translated/table_filters.js:250
msgid "Batch"
msgstr "Toplu"
#: build/templates/build/detail.html:126
-#: order/templates/order/order_base.html:152
+#: order/templates/order/order_base.html:158
#: order/templates/order/sales_order_base.html:158
#: templates/js/translated/build.js:2554
msgid "Created"
@@ -1516,7 +1517,7 @@ msgstr "Gerekli parçaları sipariş edin"
#: build/templates/build/detail.html:187
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:85
-#: part/templates/part/category.html:183 templates/js/translated/order.js:1083
+#: part/templates/part/category.html:183 templates/js/translated/order.js:1177
msgid "Order Parts"
msgstr "Parça Siparişi"
@@ -1851,7 +1852,7 @@ msgstr "Kategori Paremetre Sablonu Kopyala"
msgid "Copy category parameter templates when creating a part"
msgstr "Parça oluştururken kategori parametre şablonlarını kopyala"
-#: common/models.py:951 part/models.py:2465 report/models.py:158
+#: common/models.py:951 part/models.py:2473 report/models.py:158
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:484
msgid "Template"
@@ -1861,7 +1862,7 @@ msgstr "Şablon"
msgid "Parts are templates by default"
msgstr "Parçaları varsayılan olan şablondur"
-#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446
+#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1454
#: templates/js/translated/table_filters.js:176
#: templates/js/translated/table_filters.js:447
msgid "Assembly"
@@ -2275,349 +2276,349 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1342 common/models.py:1658
+#: common/models.py:1344 common/models.py:1662
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1364
+#: common/models.py:1366
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1365
+#: common/models.py:1367
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1371
+#: common/models.py:1373
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1372
+#: common/models.py:1374
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1378
+#: common/models.py:1380
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1379
+#: common/models.py:1381
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1385
+#: common/models.py:1387
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1386
+#: common/models.py:1388
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1392
+#: common/models.py:1394
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1393
+#: common/models.py:1395
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1399
+#: common/models.py:1401
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1400
+#: common/models.py:1402
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1406
+#: common/models.py:1408
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1407
+#: common/models.py:1409
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1413
+#: common/models.py:1415
msgid "Show low stock"
msgstr ""
-#: common/models.py:1414
+#: common/models.py:1416
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1420
+#: common/models.py:1422
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1421
+#: common/models.py:1423
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1427
+#: common/models.py:1429
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1430
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1434
+#: common/models.py:1436
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1435
+#: common/models.py:1437
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1441
+#: common/models.py:1443
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1442
+#: common/models.py:1444
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1448
+#: common/models.py:1450
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1449
+#: common/models.py:1451
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1455
+#: common/models.py:1457
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1456
+#: common/models.py:1458
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1462
+#: common/models.py:1464
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1463
+#: common/models.py:1465
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1469
+#: common/models.py:1471
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1470
+#: common/models.py:1472
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1476
+#: common/models.py:1478
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1477
+#: common/models.py:1479
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1483
+#: common/models.py:1485
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1484
+#: common/models.py:1486
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1490
+#: common/models.py:1492
msgid "Inline label display"
msgstr ""
-#: common/models.py:1491
+#: common/models.py:1493
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1499
msgid "Inline report display"
msgstr ""
-#: common/models.py:1498
+#: common/models.py:1500
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1506
msgid "Search Parts"
msgstr ""
-#: common/models.py:1505
+#: common/models.py:1507
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1513
msgid "Seach Supplier Parts"
msgstr ""
-#: common/models.py:1512
+#: common/models.py:1514
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1520
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:1519
+#: common/models.py:1521
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:1525
+#: common/models.py:1527
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1526
+#: common/models.py:1528
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1532
+#: common/models.py:1534
msgid "Search Categories"
msgstr ""
-#: common/models.py:1533
+#: common/models.py:1535
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1539
+#: common/models.py:1541
msgid "Search Stock"
msgstr ""
-#: common/models.py:1540
+#: common/models.py:1542
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1546
+#: common/models.py:1548
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1547
+#: common/models.py:1549
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1553
+#: common/models.py:1555
msgid "Search Locations"
msgstr ""
-#: common/models.py:1554
+#: common/models.py:1556
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1560
+#: common/models.py:1562
msgid "Search Companies"
msgstr ""
-#: common/models.py:1561
+#: common/models.py:1563
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1567
+#: common/models.py:1569
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1568
+#: common/models.py:1570
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1574
+#: common/models.py:1576
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1575
+#: common/models.py:1577
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1581
+#: common/models.py:1583
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1582
+#: common/models.py:1584
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1588
+#: common/models.py:1590
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1591
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1595
+#: common/models.py:1597
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1598
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1602
+#: common/models.py:1604
msgid "Show Quantity in Forms"
msgstr "Formlarda Miktarı Göster"
-#: common/models.py:1603
+#: common/models.py:1605
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1609
+#: common/models.py:1611
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1610
+#: common/models.py:1612
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1616
+#: common/models.py:1618
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1617
+#: common/models.py:1619
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1623
+#: common/models.py:1625
msgid "Date Format"
msgstr ""
-#: common/models.py:1624
+#: common/models.py:1626
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1638 part/templates/part/detail.html:41
+#: common/models.py:1640 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1641
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1698
+#: common/models.py:1702
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1705 company/serializers.py:366
-#: company/templates/company/supplier_part.html:284 order/models.py:938
-#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181
+#: common/models.py:1709 company/serializers.py:372
+#: company/templates/company/supplier_part.html:296 order/models.py:942
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:2210
msgid "Price"
msgstr "Fiyat"
-#: common/models.py:1706
+#: common/models.py:1710
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1866 common/models.py:2044
+#: common/models.py:1870 common/models.py:2048
msgid "Endpoint"
msgstr ""
-#: common/models.py:1867
+#: common/models.py:1871
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1876
+#: common/models.py:1880
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1881 part/models.py:921 plugin/models.py:100
+#: common/models.py:1885 part/models.py:921 plugin/models.py:100
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:104
#: templates/js/translated/table_filters.js:316
@@ -2625,67 +2626,67 @@ msgstr ""
msgid "Active"
msgstr "Aktif"
-#: common/models.py:1882
+#: common/models.py:1886
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1896
+#: common/models.py:1900
msgid "Token"
msgstr ""
-#: common/models.py:1897
+#: common/models.py:1901
msgid "Token for access"
msgstr ""
-#: common/models.py:1904
+#: common/models.py:1908
msgid "Secret"
msgstr ""
-#: common/models.py:1905
+#: common/models.py:1909
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2011
+#: common/models.py:2015
msgid "Message ID"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2016
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2020
+#: common/models.py:2024
msgid "Host"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2025
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2032
msgid "Header"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2033
msgid "Header of this message"
msgstr ""
-#: common/models.py:2035
+#: common/models.py:2039
msgid "Body"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2040
msgid "Body of this message"
msgstr ""
-#: common/models.py:2045
+#: common/models.py:2049
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2054
msgid "Worked on"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2055
msgid "Was the work on this message finished?"
msgstr ""
@@ -2747,7 +2748,7 @@ msgstr ""
#: company/models.py:105 company/templates/company/company_base.html:100
#: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:413
+#: templates/js/translated/company.js:448
msgid "Website"
msgstr ""
@@ -2824,7 +2825,7 @@ msgstr "üretici mi"
msgid "Does this company manufacture parts?"
msgstr "Bu şirket üretim yapıyor mu?"
-#: company/models.py:148 company/serializers.py:372
+#: company/models.py:148 company/serializers.py:378
#: company/templates/company/company_base.html:106 part/serializers.py:153
#: part/serializers.py:184 stock/serializers.py:178
msgid "Currency"
@@ -2834,24 +2835,24 @@ msgstr "Para birimi"
msgid "Default currency used for this company"
msgstr "Bu şirket için varsayılan para birimi"
-#: company/models.py:248 company/models.py:481 stock/models.py:598
+#: company/models.py:248 company/models.py:482 stock/models.py:598
#: stock/serializers.py:85 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:542
msgid "Base Part"
msgstr "Temel Parça"
-#: company/models.py:252 company/models.py:485
+#: company/models.py:252 company/models.py:486
msgid "Select part"
msgstr "Parça seçin"
#: company/models.py:263 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:124
-#: stock/templates/stock/item_base.html:207
-#: templates/js/translated/company.js:397
-#: templates/js/translated/company.js:498
-#: templates/js/translated/company.js:633
-#: templates/js/translated/company.js:919 templates/js/translated/part.js:236
+#: company/templates/company/supplier_part.html:129
+#: stock/templates/stock/item_base.html:210
+#: templates/js/translated/company.js:432
+#: templates/js/translated/company.js:533
+#: templates/js/translated/company.js:668
+#: templates/js/translated/company.js:956 templates/js/translated/part.js:236
#: templates/js/translated/table_filters.js:419
msgid "Manufacturer"
msgstr "Üretici"
@@ -2861,12 +2862,12 @@ msgid "Select manufacturer"
msgstr "Üretici seçin"
#: company/models.py:270 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:132
-#: templates/js/translated/company.js:269
-#: templates/js/translated/company.js:497
-#: templates/js/translated/company.js:649
-#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077
-#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027
+#: company/templates/company/supplier_part.html:137
+#: templates/js/translated/company.js:304
+#: templates/js/translated/company.js:532
+#: templates/js/translated/company.js:684
+#: templates/js/translated/company.js:975 templates/js/translated/order.js:2239
+#: templates/js/translated/part.js:247 templates/js/translated/part.js:1025
msgid "MPN"
msgstr "ÜPN"
@@ -2882,10 +2883,10 @@ msgstr ""
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:328 company/models.py:352 company/models.py:504
+#: company/models.py:328 company/models.py:352 company/models.py:505
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:220
msgid "Manufacturer Part"
msgstr ""
@@ -2895,8 +2896,8 @@ msgstr "Parametre adı"
#: company/models.py:365
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2095 templates/js/translated/company.js:546
-#: templates/js/translated/company.js:764 templates/js/translated/part.js:849
+#: stock/models.py:2095 templates/js/translated/company.js:581
+#: templates/js/translated/company.js:799 templates/js/translated/part.js:847
#: templates/js/translated/stock.js:1360
msgid "Value"
msgstr "Değer"
@@ -2905,10 +2906,10 @@ msgstr "Değer"
msgid "Parameter value"
msgstr "Parametre değeri"
-#: company/models.py:372 part/models.py:888 part/models.py:2425
+#: company/models.py:372 part/models.py:888 part/models.py:2433
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:352
-#: templates/js/translated/company.js:770 templates/js/translated/part.js:855
+#: templates/js/translated/company.js:805 templates/js/translated/part.js:853
msgid "Units"
msgstr ""
@@ -2916,106 +2917,119 @@ msgstr ""
msgid "Parameter units"
msgstr ""
-#: company/models.py:449
+#: company/models.py:450
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:491 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:108 order/models.py:258
-#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:224
+#: company/models.py:492 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:113 order/models.py:258
+#: order/templates/order/order_base.html:121 part/bom.py:237 part/bom.py:265
+#: stock/templates/stock/item_base.html:227
#: templates/email/overdue_purchase_order.html:16
-#: templates/js/translated/company.js:268
-#: templates/js/translated/company.js:401
-#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813
-#: templates/js/translated/part.js:217 templates/js/translated/part.js:995
+#: templates/js/translated/company.js:303
+#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:929 templates/js/translated/order.js:1975
+#: templates/js/translated/part.js:217 templates/js/translated/part.js:993
#: templates/js/translated/table_filters.js:423
msgid "Supplier"
msgstr "Tedarikçi"
-#: company/models.py:492 templates/js/translated/part.js:218
+#: company/models.py:493 templates/js/translated/part.js:218
msgid "Select supplier"
msgstr "Tedarikçi seçin"
-#: company/models.py:497 company/templates/company/supplier_part.html:118
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267
-#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228
-#: templates/js/translated/part.js:1013
+#: company/models.py:498 company/templates/company/supplier_part.html:123
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:302
+#: templates/js/translated/order.js:2226 templates/js/translated/part.js:228
+#: templates/js/translated/part.js:1011
msgid "SKU"
msgstr ""
-#: company/models.py:498 templates/js/translated/part.js:229
+#: company/models.py:499 templates/js/translated/part.js:229
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:505
+#: company/models.py:506
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:511
+#: company/models.py:512
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:517
+#: company/models.py:518
msgid "Supplier part description"
msgstr ""
-#: company/models.py:522 company/templates/company/supplier_part.html:146
-#: part/models.py:2666 part/templates/part/upload_bom.html:59
+#: company/models.py:523 company/templates/company/supplier_part.html:158
+#: part/models.py:2674 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399
msgid "Note"
msgstr "Not"
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "base cost"
msgstr "temel maliyet"
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:528 company/templates/company/supplier_part.html:139
-#: stock/models.py:624 stock/templates/stock/item_base.html:240
-#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976
+#: company/models.py:529 company/templates/company/supplier_part.html:144
+#: stock/models.py:624 stock/templates/stock/item_base.html:243
+#: templates/js/translated/company.js:991 templates/js/translated/stock.js:1972
msgid "Packaging"
msgstr "Paketleme"
-#: company/models.py:528
+#: company/models.py:529
msgid "Part packaging"
msgstr ""
-#: company/models.py:530 part/models.py:1783
+#: company/models.py:532 company/serializers.py:242
+#: company/templates/company/supplier_part.html:151
+#: templates/js/translated/company.js:996 templates/js/translated/order.js:820
+#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:2270 templates/js/translated/order.js:2287
+#: templates/js/translated/part.js:1043 templates/js/translated/part.js:1095
+msgid "Pack Quantity"
+msgstr ""
+
+#: company/models.py:533
+msgid "Unit quantity supplied in a single pack"
+msgstr ""
+
+#: company/models.py:539 part/models.py:1783
msgid "multiple"
msgstr "çoklu"
-#: company/models.py:530
+#: company/models.py:539
msgid "Order multiple"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part.html:94
+#: company/models.py:547 company/templates/company/supplier_part.html:99
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823
-#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979
-#: templates/js/translated/part.js:600 templates/js/translated/part.js:603
+#: templates/js/translated/bom.js:915 templates/js/translated/build.js:1823
+#: templates/js/translated/build.js:2686 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:601
#: templates/js/translated/table_filters.js:186
msgid "Available"
msgstr "Mevcut"
-#: company/models.py:539
+#: company/models.py:548
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:543
+#: company/models.py:552
msgid "Availability Updated"
msgstr ""
-#: company/models.py:544
+#: company/models.py:553
msgid "Date of last update of availability data"
msgstr ""
-#: company/models.py:672
+#: company/models.py:681
msgid "last updated"
msgstr ""
@@ -3029,12 +3043,12 @@ msgstr "Para Birimi Kodu"
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386
+#: templates/InvenTree/search.html:179 templates/js/translated/company.js:421
msgid "Company"
msgstr ""
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:624
+#: templates/js/translated/order.js:689
msgid "Create Purchase Order"
msgstr "Satın Alma Emri Oluştur"
@@ -3047,7 +3061,7 @@ msgid "Edit company information"
msgstr ""
#: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:329
+#: templates/js/translated/company.js:364
msgid "Edit Company"
msgstr ""
@@ -3070,13 +3084,13 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:86 order/models.py:637
+#: company/templates/company/company_base.html:86 order/models.py:641
#: order/templates/order/sales_order_base.html:116 stock/models.py:643
#: stock/models.py:644 stock/serializers.py:809
-#: stock/templates/stock/item_base.html:396
+#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
-#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619
-#: templates/js/translated/stock.js:2559
+#: templates/js/translated/company.js:428 templates/js/translated/order.js:2813
+#: templates/js/translated/stock.js:2555
#: templates/js/translated/table_filters.js:427
msgid "Customer"
msgstr "Müşteri"
@@ -3211,23 +3225,23 @@ msgid "Manufacturers"
msgstr "Üreticiler"
#: company/templates/company/manufacturer_part.html:35
-#: company/templates/company/supplier_part.html:186
+#: company/templates/company/supplier_part.html:198
#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80
msgid "Order part"
msgstr "Parça siparişi"
#: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:681
+#: templates/js/translated/company.js:716
msgid "Edit manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:682
+#: templates/js/translated/company.js:717
msgid "Delete manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:65
-#: company/templates/company/supplier_part.html:77
+#: company/templates/company/supplier_part.html:82
msgid "Internal Part"
msgstr ""
@@ -3250,8 +3264,8 @@ msgstr "Tedarikçi parçalarını sil"
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:371 part/templates/part/detail.html:401
-#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34
-#: users/models.py:220
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:34
+#: users/models.py:222
msgid "Delete"
msgstr ""
@@ -3296,9 +3310,9 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:607
-#: stock/templates/stock/item_base.html:233
-#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041
-#: templates/js/translated/stock.js:1933
+#: stock/templates/stock/item_base.html:236
+#: templates/js/translated/company.js:945 templates/js/translated/order.js:1135
+#: templates/js/translated/stock.js:1929
msgid "Supplier Part"
msgstr "Tedarikçi Parçası"
@@ -3308,7 +3322,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:40
#: company/templates/company/supplier_part.html:41
-#: company/templates/company/supplier_part.html:187
+#: company/templates/company/supplier_part.html:199
#: part/templates/part/detail.html:88
msgid "Order Part"
msgstr ""
@@ -3320,81 +3334,87 @@ msgstr ""
#: company/templates/company/supplier_part.html:48
#: company/templates/company/supplier_part.html:49
-#: templates/js/translated/company.js:212
+#: templates/js/translated/company.js:247
msgid "Edit Supplier Part"
msgstr ""
#: company/templates/company/supplier_part.html:53
+#: company/templates/company/supplier_part.html:54
+#: templates/js/translated/company.js:222
+msgid "Duplicate Supplier Part"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:58
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:54
+#: company/templates/company/supplier_part.html:59
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:112
+#: company/templates/company/supplier_part.html:117
msgid "No supplier information available"
msgstr ""
-#: company/templates/company/supplier_part.html:165
+#: company/templates/company/supplier_part.html:177
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr "Tedarikçi Parça Stoku"
-#: company/templates/company/supplier_part.html:168
+#: company/templates/company/supplier_part.html:180
#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181
msgid "Create new stock item"
msgstr ""
-#: company/templates/company/supplier_part.html:169
+#: company/templates/company/supplier_part.html:181
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182
#: templates/js/translated/stock.js:435
msgid "New Stock Item"
msgstr ""
-#: company/templates/company/supplier_part.html:182
+#: company/templates/company/supplier_part.html:194
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr "Tedarikçi Parçası Emirleri"
-#: company/templates/company/supplier_part.html:207
+#: company/templates/company/supplier_part.html:219
#: part/templates/part/prices.html:10
msgid "Pricing Information"
msgstr "Fiyat Bilgisi"
-#: company/templates/company/supplier_part.html:212
-#: company/templates/company/supplier_part.html:326
-#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253
+#: company/templates/company/supplier_part.html:224
+#: company/templates/company/supplier_part.html:338
+#: part/templates/part/prices.html:276 templates/js/translated/part.js:2282
msgid "Add Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:250
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:252
-#: templates/js/translated/part.js:2263
+#: company/templates/company/supplier_part.html:264
+#: templates/js/translated/part.js:2292
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:266
-#: templates/js/translated/part.js:2277
+#: company/templates/company/supplier_part.html:278
+#: templates/js/translated/part.js:2306
msgid "Edit Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:291
+#: company/templates/company/supplier_part.html:303
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part.html:292
+#: company/templates/company/supplier_part.html:304
msgid "Delete price break"
msgstr ""
-#: company/templates/company/supplier_part.html:301
+#: company/templates/company/supplier_part.html:313
msgid "Last updated"
msgstr ""
-#: company/templates/company/supplier_part.html:382
+#: company/templates/company/supplier_part.html:394
msgid "Update Part Availability"
msgstr ""
@@ -3404,8 +3424,8 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313
-#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959
+#: templates/js/translated/part.js:749 templates/js/translated/part.js:1334
+#: templates/js/translated/part.js:1495 templates/js/translated/stock.js:959
#: templates/js/translated/stock.js:1754 templates/navbar.html:31
msgid "Stock"
msgstr "Stok"
@@ -3432,7 +3452,7 @@ msgstr "Fiyatlandırma"
#: stock/templates/stock/location.html:178
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2436 users/models.py:40
+#: templates/js/translated/stock.js:2432 users/models.py:40
msgid "Stock Items"
msgstr "Stok Kalemleri"
@@ -3534,7 +3554,7 @@ msgstr ""
msgid "Order description"
msgstr "Sipariş açıklaması"
-#: order/models.py:84 order/models.py:1246
+#: order/models.py:84 order/models.py:1250
msgid "Link to external page"
msgstr "Harici sayfaya bağlantı"
@@ -3550,11 +3570,11 @@ msgstr ""
msgid "Order notes"
msgstr "Sipariş notları"
-#: order/models.py:241 order/models.py:624
+#: order/models.py:241 order/models.py:628
msgid "Order reference"
msgstr "Sipariş referansı"
-#: order/models.py:249 order/models.py:642
+#: order/models.py:249 order/models.py:646
msgid "Purchase order status"
msgstr ""
@@ -3562,8 +3582,8 @@ msgstr ""
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:262 order/templates/order/order_base.html:127
-#: templates/js/translated/order.js:1822
+#: order/models.py:262 order/templates/order/order_base.html:133
+#: templates/js/translated/order.js:1984
msgid "Supplier Reference"
msgstr ""
@@ -3603,245 +3623,245 @@ msgstr ""
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:638
+#: order/models.py:642
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer Reference "
msgstr ""
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:649
+#: order/models.py:653
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:652 order/models.py:1204
-#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828
+#: order/models.py:656 order/models.py:1208
+#: templates/js/translated/order.js:2860 templates/js/translated/order.js:3022
msgid "Shipment Date"
msgstr ""
-#: order/models.py:659
+#: order/models.py:663
msgid "shipped by"
msgstr ""
-#: order/models.py:714
+#: order/models.py:718
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:718
+#: order/models.py:722
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:721
+#: order/models.py:725 templates/js/translated/order.js:419
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:724
+#: order/models.py:728
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:898
+#: order/models.py:902
msgid "Item quantity"
msgstr ""
-#: order/models.py:904
+#: order/models.py:908
msgid "Line item reference"
msgstr ""
-#: order/models.py:906
+#: order/models.py:910
msgid "Line item notes"
msgstr ""
-#: order/models.py:911
+#: order/models.py:915
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:929
+#: order/models.py:933
msgid "Context"
msgstr ""
-#: order/models.py:930
+#: order/models.py:934
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:939
+#: order/models.py:943
msgid "Unit price"
msgstr ""
-#: order/models.py:969
+#: order/models.py:973
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:977
+#: order/models.py:981
msgid "deleted"
msgstr ""
-#: order/models.py:983 order/models.py:1063 order/models.py:1104
-#: order/models.py:1198 order/models.py:1330
-#: templates/js/translated/order.js:3284
+#: order/models.py:987 order/models.py:1067 order/models.py:1108
+#: order/models.py:1202 order/models.py:1334
+#: templates/js/translated/order.js:3478
msgid "Order"
msgstr ""
-#: order/models.py:984 order/models.py:1063
+#: order/models.py:988 order/models.py:1067
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:179
+#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
-#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042
-#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972
-#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540
+#: templates/js/translated/order.js:619 templates/js/translated/order.js:1136
+#: templates/js/translated/order.js:1959 templates/js/translated/part.js:970
+#: templates/js/translated/stock.js:1909 templates/js/translated/stock.js:2536
msgid "Purchase Order"
msgstr ""
-#: order/models.py:1002
+#: order/models.py:1006
msgid "Supplier part"
msgstr ""
-#: order/models.py:1009 order/templates/order/order_base.html:172
-#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105
+#: order/models.py:1013 order/templates/order/order_base.html:178
+#: templates/js/translated/order.js:1641 templates/js/translated/order.js:2373
+#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1125
#: templates/js/translated/table_filters.js:338
msgid "Received"
msgstr ""
-#: order/models.py:1010
+#: order/models.py:1014
msgid "Number of items received"
msgstr ""
-#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734
-#: stock/serializers.py:169 stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1964
+#: order/models.py:1021 part/templates/part/prices.html:181 stock/models.py:734
+#: stock/serializers.py:169 stock/templates/stock/item_base.html:189
+#: templates/js/translated/stock.js:1960
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1018
+#: order/models.py:1022
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1026
+#: order/models.py:1030
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1092
+#: order/models.py:1096
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1097
+#: order/models.py:1101
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1123 part/templates/part/part_pricing.html:115
+#: order/models.py:1127 part/templates/part/part_pricing.html:115
#: part/templates/part/prices.html:121 part/templates/part/prices.html:290
msgid "Sale Price"
msgstr ""
-#: order/models.py:1124
+#: order/models.py:1128
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1129
+#: order/models.py:1133
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1205
+#: order/models.py:1209
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1212
+#: order/models.py:1216
msgid "Checked By"
msgstr ""
-#: order/models.py:1213
+#: order/models.py:1217
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1220 order/models.py:1405 order/serializers.py:1170
-#: order/serializers.py:1294 templates/js/translated/model_renderers.js:314
+#: order/models.py:1224 order/models.py:1409 order/serializers.py:1224
+#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314
msgid "Shipment"
msgstr ""
-#: order/models.py:1221
+#: order/models.py:1225
msgid "Shipment number"
msgstr ""
-#: order/models.py:1225
+#: order/models.py:1229
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1231
+#: order/models.py:1235
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1232
+#: order/models.py:1236
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1239
+#: order/models.py:1243
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1240
+#: order/models.py:1244
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1258
+#: order/models.py:1262
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1261
+#: order/models.py:1265
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1364 order/models.py:1366
+#: order/models.py:1368 order/models.py:1370
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1370
+#: order/models.py:1374
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1372
+#: order/models.py:1376
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1375
+#: order/models.py:1379
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Tahsis miktarı stok miktarını aşamaz"
-#: order/models.py:1385 order/serializers.py:1066
+#: order/models.py:1389 order/serializers.py:1086
msgid "Quantity must be 1 for serialized stock item"
msgstr "Seri numaralı stok kalemi için miktar bir olmalı"
-#: order/models.py:1388
+#: order/models.py:1392
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1389
+#: order/models.py:1393
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1397
+#: order/models.py:1401
msgid "Line"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1410
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1419 templates/js/translated/notification.js:55
+#: order/models.py:1423 templates/js/translated/notification.js:55
msgid "Item"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1424
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1423
+#: order/models.py:1427
msgid "Enter stock allocation quantity"
msgstr "Stok tahsis miktarını girin"
@@ -3853,111 +3873,119 @@ msgstr ""
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:294
+#: order/serializers.py:209 order/serializers.py:1104
+msgid "Allow order to be closed with incomplete line items"
+msgstr ""
+
+#: order/serializers.py:220 order/serializers.py:1115
+msgid "Order has incomplete line items"
+msgstr ""
+
+#: order/serializers.py:311
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:318
+#: order/serializers.py:335
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:354
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:342
+#: order/serializers.py:359
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:348
+#: order/serializers.py:365
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:349
+#: order/serializers.py:366
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:413 order/serializers.py:1138
+#: order/serializers.py:430 order/serializers.py:1192
msgid "Line Item"
msgstr ""
-#: order/serializers.py:419
+#: order/serializers.py:436
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:429 order/serializers.py:533
+#: order/serializers.py:446 order/serializers.py:553
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:448 templates/js/translated/order.js:1354
+#: order/serializers.py:465 templates/js/translated/order.js:1497
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:456 templates/js/translated/order.js:1365
+#: order/serializers.py:473 templates/js/translated/order.js:1508
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:469
+#: order/serializers.py:486
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:470
+#: order/serializers.py:487
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:484
+#: order/serializers.py:501
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:507
+#: order/serializers.py:527
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:549
+#: order/serializers.py:569
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:566
+#: order/serializers.py:586
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:577
+#: order/serializers.py:597
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:883
+#: order/serializers.py:903
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:964
+#: order/serializers.py:984
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1027 order/serializers.py:1147
+#: order/serializers.py:1047 order/serializers.py:1201
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1049
+#: order/serializers.py:1069
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1160
+#: order/serializers.py:1214
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1182 order/serializers.py:1302
+#: order/serializers.py:1236 order/serializers.py:1356
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1185 order/serializers.py:1305
+#: order/serializers.py:1239 order/serializers.py:1359
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1235
+#: order/serializers.py:1289
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1245
+#: order/serializers.py:1299
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3993,83 +4021,83 @@ msgstr "Emiri dosya çıkar"
msgid "Order actions"
msgstr ""
-#: order/templates/order/order_base.html:45
+#: order/templates/order/order_base.html:46
#: order/templates/order/sales_order_base.html:58
msgid "Edit order"
msgstr ""
-#: order/templates/order/order_base.html:47
+#: order/templates/order/order_base.html:50
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr "Siparişi iptal et"
-#: order/templates/order/order_base.html:50
+#: order/templates/order/order_base.html:55
msgid "Duplicate order"
msgstr ""
-#: order/templates/order/order_base.html:55
+#: order/templates/order/order_base.html:61
msgid "Place order"
msgstr "Sipariş ver"
-#: order/templates/order/order_base.html:59
+#: order/templates/order/order_base.html:65
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:61
+#: order/templates/order/order_base.html:67
#: order/templates/order/purchase_order_detail.html:30
msgid "Receive Items"
msgstr ""
-#: order/templates/order/order_base.html:63
+#: order/templates/order/order_base.html:69
msgid "Mark order as complete"
msgstr "Siparişi tamamlandı olarak işaretle"
-#: order/templates/order/order_base.html:65
+#: order/templates/order/order_base.html:71
#: order/templates/order/sales_order_base.html:68
msgid "Complete Order"
msgstr ""
-#: order/templates/order/order_base.html:87
+#: order/templates/order/order_base.html:93
#: order/templates/order/sales_order_base.html:80
msgid "Order Reference"
msgstr ""
-#: order/templates/order/order_base.html:92
+#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:85
msgid "Order Description"
msgstr ""
-#: order/templates/order/order_base.html:97
+#: order/templates/order/order_base.html:103
#: order/templates/order/sales_order_base.html:90
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:120
+#: order/templates/order/order_base.html:126
msgid "No suppplier information available"
msgstr ""
-#: order/templates/order/order_base.html:133
+#: order/templates/order/order_base.html:139
#: order/templates/order/sales_order_base.html:129
msgid "Completed Line Items"
msgstr ""
-#: order/templates/order/order_base.html:139
+#: order/templates/order/order_base.html:145
#: order/templates/order/sales_order_base.html:135
#: order/templates/order/sales_order_base.html:145
msgid "Incomplete"
msgstr ""
-#: order/templates/order/order_base.html:158
+#: order/templates/order/order_base.html:164
#: report/templates/report/inventree_build_order_base.html:121
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:186
+#: order/templates/order/order_base.html:192
#: order/templates/order/sales_order_base.html:190
msgid "Total cost"
msgstr ""
-#: order/templates/order/order_base.html:190
+#: order/templates/order/order_base.html:196
#: order/templates/order/sales_order_base.html:194
msgid "Total cost could not be calculated"
msgstr ""
@@ -4102,8 +4130,8 @@ msgstr "Tedarikçi Parçası Seçin"
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463
#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015
-#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443
-#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625
+#: templates/js/translated/order.js:1084 templates/js/translated/order.js:1586
+#: templates/js/translated/order.js:3097 templates/js/translated/stock.js:625
#: templates/js/translated/stock.js:793
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
@@ -4139,7 +4167,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:26
#: order/templates/order/sales_order_detail.html:22
#: order/templates/order/sales_order_detail.html:255
-#: templates/js/translated/order.js:663
+#: templates/js/translated/order.js:728
msgid "Add Line Item"
msgstr ""
@@ -4167,7 +4195,7 @@ msgstr ""
msgid "Order Notes"
msgstr "Sipariş Notları"
-#: order/templates/order/purchase_order_detail.html:228
+#: order/templates/order/purchase_order_detail.html:232
msgid "Add Order Line"
msgstr ""
@@ -4185,12 +4213,12 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:231
+#: templates/js/translated/order.js:232
msgid "Complete Shipments"
msgstr ""
#: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:258
+#: templates/js/translated/order.js:397
msgid "Complete Sales Order"
msgstr ""
@@ -4199,7 +4227,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2632
+#: templates/js/translated/order.js:2826
msgid "Customer Reference"
msgstr ""
@@ -4223,7 +4251,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:72
-#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1116
#: templates/js/translated/build.js:1923
msgid "Actions"
msgstr "İşlemler"
@@ -4308,14 +4336,14 @@ msgid "Total Stock"
msgstr ""
#: part/bom.py:129 part/templates/part/part_base.html:189
-#: templates/js/translated/order.js:3724
+#: templates/js/translated/order.js:3918
msgid "Available Stock"
msgstr ""
#: part/bom.py:130 part/templates/part/part_base.html:207
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853
-#: templates/js/translated/part.js:590 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503
+#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1853
+#: templates/js/translated/part.js:588 templates/js/translated/part.js:608
+#: templates/js/translated/part.js:1337 templates/js/translated/part.js:1520
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr ""
@@ -4344,7 +4372,7 @@ msgstr ""
msgid "Icon (optional)"
msgstr ""
-#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16
+#: part/models.py:122 part/models.py:2516 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -4361,7 +4389,7 @@ msgstr "Parça Kategorileri"
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146
+#: templates/js/translated/part.js:2004 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr "Parçalar"
@@ -4391,7 +4419,7 @@ msgstr "En son seri numarası"
msgid "Duplicate IPN not allowed in part settings"
msgstr "Yinelenen DPN'ye parça ayarlarında izin verilmiyor"
-#: part/models.py:745 part/models.py:2562
+#: part/models.py:745 part/models.py:2570
msgid "Part name"
msgstr "Parça adı"
@@ -4424,11 +4452,11 @@ msgstr "Anahtar kelimeler"
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:783 part/models.py:2257 part/models.py:2507
+#: part/models.py:783 part/models.py:2265 part/models.py:2515
#: part/templates/part/part_base.html:257
#: templates/InvenTree/settings/settings.html:232
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688
+#: templates/js/translated/part.js:1477 templates/js/translated/part.js:1717
msgid "Category"
msgstr ""
@@ -4437,7 +4465,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:789 part/templates/part/part_base.html:266
-#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:1430
#: templates/js/translated/stock.js:1726
msgid "IPN"
msgstr "DPN"
@@ -4451,7 +4479,7 @@ msgid "Part revision or version number"
msgstr "Parça revizyon veya versiyon numarası"
#: part/models.py:797 part/templates/part/part_base.html:273
-#: report/models.py:171 templates/js/translated/part.js:743
+#: report/models.py:171 templates/js/translated/part.js:741
msgid "Revision"
msgstr "Revizyon"
@@ -4543,245 +4571,245 @@ msgstr "Oluşturan Kullanıcı"
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2304
+#: part/models.py:2312
msgid "Test templates can only be created for trackable parts"
msgstr "Test şablonları sadece takip edilebilir paçalar için oluşturulabilir"
-#: part/models.py:2321
+#: part/models.py:2329
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2341 templates/js/translated/part.js:2026
+#: part/models.py:2349 templates/js/translated/part.js:2055
#: templates/js/translated/stock.js:1340
msgid "Test Name"
msgstr "Test Adı"
-#: part/models.py:2342
+#: part/models.py:2350
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2347
+#: part/models.py:2355
msgid "Test Description"
msgstr "Test Açıklaması"
-#: part/models.py:2348
+#: part/models.py:2356
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2353 templates/js/translated/part.js:2035
+#: part/models.py:2361 templates/js/translated/part.js:2064
#: templates/js/translated/table_filters.js:302
msgid "Required"
msgstr "Gerekli"
-#: part/models.py:2354
+#: part/models.py:2362
msgid "Is this test required to pass?"
msgstr "Testi geçmesi için bu gerekli mi?"
-#: part/models.py:2359 templates/js/translated/part.js:2043
+#: part/models.py:2367 templates/js/translated/part.js:2072
msgid "Requires Value"
msgstr ""
-#: part/models.py:2360
+#: part/models.py:2368
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2365 templates/js/translated/part.js:2050
+#: part/models.py:2373 templates/js/translated/part.js:2079
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2366
+#: part/models.py:2374
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2374
+#: part/models.py:2382
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2410
+#: part/models.py:2418
msgid "Parameter template name must be unique"
msgstr "Parametre şablon adı benzersiz olmalıdır"
-#: part/models.py:2418
+#: part/models.py:2426
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2433
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2430
+#: part/models.py:2438
msgid "Parameter description"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2471
msgid "Parent Part"
msgstr ""
-#: part/models.py:2465 part/models.py:2513 part/models.py:2514
+#: part/models.py:2473 part/models.py:2521 part/models.py:2522
#: templates/InvenTree/settings/settings.html:227
msgid "Parameter Template"
msgstr "Parametre Şablonu"
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Data"
msgstr ""
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2518 templates/InvenTree/settings/settings.html:236
+#: part/models.py:2526 templates/InvenTree/settings/settings.html:236
msgid "Default Value"
msgstr ""
-#: part/models.py:2519
+#: part/models.py:2527
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2554
+#: part/models.py:2562
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2557 templates/js/translated/model_renderers.js:212
+#: part/models.py:2565 templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr ""
-#: part/models.py:2558
+#: part/models.py:2566
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2561
+#: part/models.py:2569
msgid "Part Name"
msgstr ""
-#: part/models.py:2565
+#: part/models.py:2573
msgid "Part IPN"
msgstr ""
-#: part/models.py:2566
+#: part/models.py:2574
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2569
+#: part/models.py:2577
msgid "Level"
msgstr ""
-#: part/models.py:2570
+#: part/models.py:2578
msgid "BOM level"
msgstr ""
-#: part/models.py:2639
+#: part/models.py:2647
msgid "Select parent part"
msgstr ""
-#: part/models.py:2647
+#: part/models.py:2655
msgid "Sub part"
msgstr ""
-#: part/models.py:2648
+#: part/models.py:2656
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2654
+#: part/models.py:2662
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2656 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997
+#: part/models.py:2664 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:876 templates/js/translated/bom.js:1005
#: templates/js/translated/table_filters.js:100
msgid "Optional"
msgstr ""
-#: part/models.py:2656
+#: part/models.py:2664
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2659 part/templates/part/upload_bom.html:55
+#: part/models.py:2667 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2660
+#: part/models.py:2668
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2671
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2666
+#: part/models.py:2674
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "Checksum"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2672 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1014
+#: part/models.py:2680 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:1022
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:96
msgid "Inherited"
msgstr ""
-#: part/models.py:2673
+#: part/models.py:2681
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr "Bu malzeme listesi, çeşit parçalar listesini kalıtsalıdır"
-#: part/models.py:2678 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1006
+#: part/models.py:2686 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:1014
msgid "Allow Variants"
msgstr "Çeşide İzin Ver"
-#: part/models.py:2679
+#: part/models.py:2687
msgid "Stock items for variant parts can be used for this BOM item"
msgstr "Çeşit parçaların stok kalemleri bu malzeme listesinde kullanılabilir"
-#: part/models.py:2757 stock/models.py:468
+#: part/models.py:2765 stock/models.py:468
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2766 part/models.py:2768
+#: part/models.py:2774 part/models.py:2776
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2873
+#: part/models.py:2881
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2902
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2915
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2923
msgid "Substitute part"
msgstr ""
-#: part/models.py:2930
+#: part/models.py:2938
msgid "Part 1"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Part 2"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2960
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:2956
+#: part/models.py:2964
msgid "Duplicate relationship already exists"
msgstr ""
@@ -5309,10 +5337,10 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:624
-#: templates/js/translated/company.js:884
+#: templates/js/translated/company.js:659
+#: templates/js/translated/company.js:920
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:654 templates/js/translated/part.js:731
+#: templates/js/translated/part.js:652 templates/js/translated/part.js:729
msgid "Inactive"
msgstr "Pasif"
@@ -5327,28 +5355,28 @@ msgid "This part is a variant of %(link)s"
msgstr "Bu parça %(link)s parçasının bir çeşididir"
#: part/templates/part/part_base.html:194
-#: templates/js/translated/company.js:974
+#: templates/js/translated/company.js:1027
#: templates/js/translated/table_filters.js:201
msgid "In Stock"
msgstr ""
#: part/templates/part/part_base.html:215
-#: stock/templates/stock/item_base.html:379
+#: stock/templates/stock/item_base.html:382
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:224
-#: stock/templates/stock/item_base.html:372
+#: stock/templates/stock/item_base.html:375
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1043
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320
-#: templates/js/translated/part.js:1510
+#: part/templates/part/part_base.html:238 templates/js/translated/part.js:591
+#: templates/js/translated/part.js:611 templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1527
msgid "Building"
msgstr ""
@@ -5361,7 +5389,7 @@ msgid "Latest Serial Number"
msgstr "Son Seri Numarası"
#: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:328
+#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
@@ -5400,7 +5428,7 @@ msgid "Total Cost"
msgstr "Toplam Maliyet"
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:989
+#: templates/js/translated/bom.js:997
msgid "No supplier pricing available"
msgstr ""
@@ -5439,7 +5467,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:53
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468
+#: templates/js/translated/order.js:2001 templates/js/translated/stock.js:2464
msgid "Date"
msgstr ""
@@ -5495,7 +5523,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983
+#: part/templates/part/prices.html:160 templates/js/translated/bom.js:991
msgid "Supplier Cost"
msgstr ""
@@ -5533,8 +5561,8 @@ msgstr ""
msgid "No sale pice history available for this part."
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616
-#: templates/js/translated/part.js:1308
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:614
+#: templates/js/translated/part.js:1329 templates/js/translated/part.js:1331
msgid "No Stock"
msgstr "Stok Yok"
@@ -5735,19 +5763,19 @@ msgstr ""
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:186
+#: plugin/models.py:188
msgid "Plugin"
msgstr ""
-#: plugin/models.py:249
+#: plugin/models.py:253
msgid "Method"
msgstr ""
-#: plugin/plugin.py:251
+#: plugin/plugin.py:252
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:263
+#: plugin/plugin.py:264
msgid "No date found"
msgstr ""
@@ -5925,12 +5953,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:648 stock/templates/stock/item_base.html:317
+#: stock/models.py:648 stock/templates/stock/item_base.html:320
#: templates/js/translated/build.js:456 templates/js/translated/build.js:608
#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706
#: templates/js/translated/model_renderers.js:118
-#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403
-#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490
+#: templates/js/translated/order.js:121 templates/js/translated/order.js:3597
+#: templates/js/translated/order.js:3684 templates/js/translated/stock.js:490
msgid "Serial Number"
msgstr "Seri Numara"
@@ -5963,7 +5991,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780
-#: templates/js/translated/stock.js:2717
+#: templates/js/translated/stock.js:2713
msgid "Serial"
msgstr "Seri No"
@@ -5980,7 +6008,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
#: stock/models.py:89 stock/models.py:739
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:250
msgid "Owner"
msgstr ""
@@ -6046,7 +6074,7 @@ msgstr ""
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:631 stock/templates/stock/item_base.html:356
+#: stock/models.py:631 stock/templates/stock/item_base.html:359
msgid "Installed In"
msgstr ""
@@ -6086,8 +6114,8 @@ msgstr ""
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:706 stock/templates/stock/item_base.html:424
-#: templates/js/translated/stock.js:1883
+#: stock/models.py:706 stock/templates/stock/item_base.html:427
+#: templates/js/translated/stock.js:1879
msgid "Expiry Date"
msgstr ""
@@ -6379,7 +6407,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2857
msgid "Install Stock Item"
msgstr ""
@@ -6479,134 +6507,135 @@ msgstr ""
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:158
+#: stock/templates/stock/item_base.html:161
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:193
+#: stock/templates/stock/item_base.html:196
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:214
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:254
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/location.html:132
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:268
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:266
+#: stock/templates/stock/item_base.html:269
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:279
+#: stock/templates/stock/item_base.html:282
msgid "This stock item has not passed all required tests"
msgstr "Stok kalemi tüm gerekli testleri geçmedi"
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:290
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:298
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:301
+#: stock/templates/stock/item_base.html:304
msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
msgstr "Bu stok kalemi seri numaları - Benzersiz bir seri numarasına sahip ve miktarı ayarlanamaz."
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:345
+#: stock/templates/stock/item_base.html:348
msgid "Available Quantity"
msgstr ""
-#: stock/templates/stock/item_base.html:389
+#: stock/templates/stock/item_base.html:392
#: templates/js/translated/build.js:1729
msgid "No location set"
msgstr "Konum ayarlanmadı"
-#: stock/templates/stock/item_base.html:404
+#: stock/templates/stock/item_base.html:407
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr "Bu stok kaleminin süresi %(item.expiry_date)s tarihinde sona erdi"
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#: templates/js/translated/table_filters.js:269
msgid "Expired"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr "Bu stok kaleminin süresi %(item.expiry_date)s tarihinde sona erecek"
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:275
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:437
-#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899
+#: stock/templates/stock/item_base.html:440
+#: templates/js/translated/company.js:1038
+#: templates/js/translated/stock.js:1895
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:442
+#: stock/templates/stock/item_base.html:445
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:516
+#: stock/templates/stock/item_base.html:519
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:589
+#: stock/templates/stock/item_base.html:592
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:592
+#: stock/templates/stock/item_base.html:595
msgid "Warning"
msgstr "Uyarı"
-#: stock/templates/stock/item_base.html:593
+#: stock/templates/stock/item_base.html:596
msgid "This action cannot be easily undone"
msgstr "Bu işlem kolayca geri alınamaz"
-#: stock/templates/stock/item_base.html:601
+#: stock/templates/stock/item_base.html:604
msgid "Convert Stock Item"
msgstr "Stok Kalemine Dönüştür"
-#: stock/templates/stock/item_base.html:629
+#: stock/templates/stock/item_base.html:632
msgid "Return to Stock"
msgstr ""
@@ -6739,11 +6768,11 @@ msgstr ""
msgid "Refer to the error log in the admin interface for further details"
msgstr ""
-#: templates/503.html:11 templates/503.html:36
+#: templates/503.html:11 templates/503.html:34
msgid "Site is in Maintenance"
msgstr ""
-#: templates/503.html:42
+#: templates/503.html:40
msgid "The site is currently in maintenance and should be up again soon!"
msgstr ""
@@ -7509,7 +7538,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:644
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "Onay"
@@ -7728,7 +7757,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1481
+#: templates/js/translated/bom.js:1489
msgid "Required Quantity"
msgstr ""
@@ -7742,7 +7771,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2522
+#: templates/js/translated/part.js:2551
msgid "Minimum Quantity"
msgstr ""
@@ -7947,7 +7976,7 @@ msgstr ""
#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620
#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601
#: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003
-#: templates/js/translated/order.js:1085 templates/modals.html:15
+#: templates/js/translated/order.js:1179 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr "Kapat"
@@ -7957,12 +7986,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145
+#: templates/js/translated/order.js:960 templates/js/translated/tables.js:145
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:867
+#: templates/js/translated/order.js:961
msgid "Select file format"
msgstr ""
@@ -8058,73 +8087,73 @@ msgstr ""
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857
-#: templates/js/translated/order.js:3738
+#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1857
+#: templates/js/translated/order.js:3932
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861
+#: templates/js/translated/bom.js:940 templates/js/translated/build.js:1861
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516
+#: templates/js/translated/bom.js:942 templates/js/translated/build.js:1863
+#: templates/js/translated/part.js:761 templates/js/translated/part.js:1533
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865
+#: templates/js/translated/bom.js:944 templates/js/translated/build.js:1865
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:954
+#: templates/js/translated/bom.js:962
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:969
+#: templates/js/translated/bom.js:977
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:976
+#: templates/js/translated/bom.js:984
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145
+#: templates/js/translated/bom.js:1033 templates/js/translated/bom.js:1153
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1052
+#: templates/js/translated/bom.js:1060
msgid "Including On Order"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1124
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1118
+#: templates/js/translated/bom.js:1126
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1120
+#: templates/js/translated/bom.js:1128
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284
+#: templates/js/translated/bom.js:1130 templates/js/translated/bom.js:1292
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1124
+#: templates/js/translated/bom.js:1132
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650
+#: templates/js/translated/bom.js:1228 templates/js/translated/build.js:1650
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789
+#: templates/js/translated/bom.js:1472 templates/js/translated/build.js:1789
msgid "Required Part"
msgstr "Gerekli Parça"
-#: templates/js/translated/bom.js:1486
+#: templates/js/translated/bom.js:1498
msgid "Inherited from parent BOM"
msgstr ""
@@ -8267,12 +8296,12 @@ msgid "No required tests for this build"
msgstr ""
#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697
-#: templates/js/translated/order.js:3438
+#: templates/js/translated/order.js:3632
msgid "Edit stock allocation"
msgstr "Stok tahsisini düzenle"
#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698
-#: templates/js/translated/order.js:3439
+#: templates/js/translated/order.js:3633
msgid "Delete stock allocation"
msgstr "Stok tahsisini sil"
@@ -8292,20 +8321,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745
+#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3939
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743
+#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3937
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127
-#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757
+#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3951
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837
+#: templates/js/translated/build.js:1930 templates/js/translated/order.js:4031
msgid "Build stock"
msgstr ""
@@ -8313,21 +8342,21 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830
+#: templates/js/translated/build.js:1937 templates/js/translated/order.js:4024
msgid "Allocate stock"
msgstr ""
#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965
+#: templates/js/translated/order.js:1007 templates/js/translated/order.js:3159
#: templates/js/translated/report.js:225
msgid "Select Parts"
msgstr "Parçaları Seçin"
-#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966
+#: templates/js/translated/build.js:1977 templates/js/translated/order.js:3160
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914
+#: templates/js/translated/build.js:2026 templates/js/translated/order.js:3108
msgid "Specify stock allocation quantity"
msgstr ""
@@ -8339,7 +8368,7 @@ msgstr ""
msgid "All selected parts have been fully allocated"
msgstr ""
-#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980
+#: templates/js/translated/build.js:2115 templates/js/translated/order.js:3174
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
@@ -8347,11 +8376,11 @@ msgstr ""
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077
+#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3271
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154
+#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3348
msgid "No matching stock items"
msgstr ""
@@ -8383,9 +8412,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401
-#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1422
+#: templates/js/translated/part.js:1948 templates/js/translated/stock.js:1686
+#: templates/js/translated/stock.js:2382
msgid "Select"
msgstr ""
@@ -8397,7 +8426,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647
+#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2643
msgid "No user information"
msgstr ""
@@ -8405,111 +8434,115 @@ msgstr ""
msgid "No parts allocated for"
msgstr ""
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:179
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:181
msgid "Add Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
msgid "Edit Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:167 templates/js/translated/order.js:511
+#: templates/js/translated/company.js:169 templates/js/translated/order.js:576
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:195 templates/js/translated/order.js:734
+#: templates/js/translated/company.js:197 templates/js/translated/order.js:828
msgid "Add Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:262
+#: templates/js/translated/company.js:297
msgid "All selected supplier parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:278
+#: templates/js/translated/company.js:313
msgid "Delete Supplier Parts"
msgstr ""
-#: templates/js/translated/company.js:350
+#: templates/js/translated/company.js:385
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:427
+#: templates/js/translated/company.js:462
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:471
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:451
+#: templates/js/translated/company.js:486
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:492
+#: templates/js/translated/company.js:527
msgid "All selected manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:507
+#: templates/js/translated/company.js:542
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:541
+#: templates/js/translated/company.js:576
msgid "All selected parameters will be deleted"
msgstr ""
-#: templates/js/translated/company.js:555
+#: templates/js/translated/company.js:590
msgid "Delete Parameters"
msgstr ""
-#: templates/js/translated/company.js:596
+#: templates/js/translated/company.js:631
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:616
-#: templates/js/translated/company.js:876 templates/js/translated/part.js:638
-#: templates/js/translated/part.js:723
+#: templates/js/translated/company.js:651
+#: templates/js/translated/company.js:912 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:721
msgid "Template part"
msgstr "Şablon Parça"
-#: templates/js/translated/company.js:620
-#: templates/js/translated/company.js:880 templates/js/translated/part.js:642
-#: templates/js/translated/part.js:727
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:916 templates/js/translated/part.js:640
+#: templates/js/translated/part.js:725
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:748 templates/js/translated/part.js:830
+#: templates/js/translated/company.js:783 templates/js/translated/part.js:828
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:785 templates/js/translated/part.js:872
+#: templates/js/translated/company.js:820 templates/js/translated/part.js:870
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:786 templates/js/translated/part.js:873
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:871
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:805 templates/js/translated/part.js:890
+#: templates/js/translated/company.js:840 templates/js/translated/part.js:888
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:816 templates/js/translated/part.js:902
+#: templates/js/translated/company.js:851 templates/js/translated/part.js:900
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:856
+#: templates/js/translated/company.js:891
msgid "No supplier parts found"
msgstr ""
-#: templates/js/translated/company.js:1002
+#: templates/js/translated/company.js:1032
+msgid "Availability"
+msgstr ""
+
+#: templates/js/translated/company.js:1055
msgid "Edit supplier part"
msgstr "Tedarikçi parçasını düzenle"
-#: templates/js/translated/company.js:1003
+#: templates/js/translated/company.js:1056
msgid "Delete supplier part"
msgstr "Tedarikçi parçasını sil"
@@ -8547,61 +8580,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:367 templates/js/translated/forms.js:382
-#: templates/js/translated/forms.js:396 templates/js/translated/forms.js:410
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:369
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:384
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:398
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:670
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:771
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1269 templates/modals.html:19
+#: templates/js/translated/forms.js:1274 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1702
+#: templates/js/translated/forms.js:1707
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1917 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2170
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2648
+#: templates/js/translated/forms.js:2653
msgid "Select Columns"
msgstr ""
@@ -8792,409 +8825,422 @@ msgstr ""
msgid "Notifications will load here"
msgstr ""
-#: templates/js/translated/order.js:96
+#: templates/js/translated/order.js:97
msgid "No stock items have been allocated to this shipment"
msgstr ""
-#: templates/js/translated/order.js:101
+#: templates/js/translated/order.js:102
msgid "The following stock items will be shipped"
msgstr ""
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:142
msgid "Complete Shipment"
msgstr ""
-#: templates/js/translated/order.js:161
+#: templates/js/translated/order.js:162
msgid "Confirm Shipment"
msgstr ""
-#: templates/js/translated/order.js:217
+#: templates/js/translated/order.js:218
msgid "No pending shipments found"
msgstr ""
-#: templates/js/translated/order.js:221
+#: templates/js/translated/order.js:222
msgid "No stock items have been allocated to pending shipments"
msgstr ""
-#: templates/js/translated/order.js:253
+#: templates/js/translated/order.js:254
msgid "Skip"
msgstr ""
-#: templates/js/translated/order.js:283
+#: templates/js/translated/order.js:284
msgid "Complete Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:289
+#: templates/js/translated/order.js:301 templates/js/translated/order.js:413
msgid "Mark this order as complete?"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:307
msgid "All line items have been received"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:312
msgid "This order has line items which have not been marked as received."
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:313 templates/js/translated/order.js:427
msgid "Completing this order means that the order and line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:324
+#: templates/js/translated/order.js:336
msgid "Cancel Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:329
+#: templates/js/translated/order.js:341
msgid "Are you sure you wish to cancel this purchase order?"
msgstr ""
-#: templates/js/translated/order.js:335
+#: templates/js/translated/order.js:347
msgid "This purchase order can not be cancelled"
msgstr ""
-#: templates/js/translated/order.js:358
+#: templates/js/translated/order.js:370
msgid "Issue Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:363
+#: templates/js/translated/order.js:375
msgid "After placing this purchase order, line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:385
+#: templates/js/translated/order.js:426
+msgid "This order has line items which have not been completed."
+msgstr ""
+
+#: templates/js/translated/order.js:450
msgid "Cancel Sales Order"
msgstr ""
-#: templates/js/translated/order.js:390
+#: templates/js/translated/order.js:455
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:444
+#: templates/js/translated/order.js:509
msgid "Create New Shipment"
msgstr ""
-#: templates/js/translated/order.js:469
+#: templates/js/translated/order.js:534
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:494
+#: templates/js/translated/order.js:559
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:555
+#: templates/js/translated/order.js:620
msgid "Select purchase order to duplicate"
msgstr ""
-#: templates/js/translated/order.js:562
+#: templates/js/translated/order.js:627
msgid "Duplicate Line Items"
msgstr ""
-#: templates/js/translated/order.js:563
+#: templates/js/translated/order.js:628
msgid "Duplicate all line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:570
+#: templates/js/translated/order.js:635
msgid "Duplicate Extra Lines"
msgstr ""
-#: templates/js/translated/order.js:571
+#: templates/js/translated/order.js:636
msgid "Duplicate extra line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:588
+#: templates/js/translated/order.js:653
msgid "Edit Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:605
+#: templates/js/translated/order.js:670
msgid "Duplication Options"
msgstr ""
-#: templates/js/translated/order.js:863
+#: templates/js/translated/order.js:957
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:914
+#: templates/js/translated/order.js:1008
msgid "At least one purchaseable part must be selected"
msgstr ""
-#: templates/js/translated/order.js:939
+#: templates/js/translated/order.js:1033
msgid "Quantity to order"
msgstr ""
-#: templates/js/translated/order.js:948
+#: templates/js/translated/order.js:1042
msgid "New supplier part"
msgstr ""
-#: templates/js/translated/order.js:966
+#: templates/js/translated/order.js:1060
msgid "New purchase order"
msgstr ""
-#: templates/js/translated/order.js:999
+#: templates/js/translated/order.js:1093
msgid "Add to purchase order"
msgstr ""
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1233
msgid "No matching supplier parts"
msgstr ""
-#: templates/js/translated/order.js:1123
+#: templates/js/translated/order.js:1252
msgid "No matching purchase orders"
msgstr ""
-#: templates/js/translated/order.js:1300
+#: templates/js/translated/order.js:1429
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1430
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420
+#: templates/js/translated/order.js:1450 templates/js/translated/order.js:1563
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431
+#: templates/js/translated/order.js:1456 templates/js/translated/order.js:1574
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1339
+#: templates/js/translated/order.js:1471
+msgid "Received Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:1482
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144
+#: templates/js/translated/order.js:1546 templates/js/translated/stock.js:2140
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:1494
+#: templates/js/translated/order.js:1639
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:1495
+#: templates/js/translated/order.js:1640
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:1497
+#: templates/js/translated/order.js:1642
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:1516
+#: templates/js/translated/order.js:1661
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:1517
+#: templates/js/translated/order.js:1662
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943
+#: templates/js/translated/order.js:1940 templates/js/translated/part.js:941
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2803
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674
-#: templates/js/translated/order.js:2815
+#: templates/js/translated/order.js:2017 templates/js/translated/order.js:2868
+#: templates/js/translated/order.js:3009
msgid "Items"
msgstr "Ürünler"
-#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889
+#: templates/js/translated/order.js:2115 templates/js/translated/order.js:4083
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911
+#: templates/js/translated/order.js:2132 templates/js/translated/order.js:4105
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:4116
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:2026
+#: templates/js/translated/order.js:2188
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:2215 templates/js/translated/order.js:3817
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309
-#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156
-#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753
+#: templates/js/translated/order.js:2270 templates/js/translated/part.js:1043
+#: templates/js/translated/part.js:1095
+msgid "Total Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:2301 templates/js/translated/order.js:2503
+#: templates/js/translated/order.js:3842 templates/js/translated/order.js:4350
+#: templates/js/translated/part.js:2184 templates/js/translated/part.js:2782
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325
-#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172
+#: templates/js/translated/order.js:2316 templates/js/translated/order.js:2519
+#: templates/js/translated/order.js:3858 templates/js/translated/order.js:4366
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706
-#: templates/js/translated/part.js:1070
+#: templates/js/translated/order.js:2357 templates/js/translated/order.js:3900
+#: templates/js/translated/part.js:1079
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110
+#: templates/js/translated/order.js:2416 templates/js/translated/part.js:1130
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2420 templates/js/translated/order.js:4037
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844
+#: templates/js/translated/order.js:2421 templates/js/translated/order.js:4038
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848
+#: templates/js/translated/order.js:2422 templates/js/translated/order.js:4042
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221
+#: templates/js/translated/order.js:2568 templates/js/translated/order.js:4415
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222
+#: templates/js/translated/order.js:2569 templates/js/translated/order.js:4416
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223
+#: templates/js/translated/order.js:2570 templates/js/translated/order.js:4417
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253
+#: templates/js/translated/order.js:2600 templates/js/translated/order.js:4447
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274
+#: templates/js/translated/order.js:2621 templates/js/translated/order.js:4468
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285
+#: templates/js/translated/order.js:2632 templates/js/translated/order.js:4479
msgid "Delete Line"
msgstr ""
-#: templates/js/translated/order.js:2449
+#: templates/js/translated/order.js:2643
msgid "No matching line"
msgstr ""
-#: templates/js/translated/order.js:2560
+#: templates/js/translated/order.js:2754
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:2623
+#: templates/js/translated/order.js:2817
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:2721
+#: templates/js/translated/order.js:2915
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:2724
+#: templates/js/translated/order.js:2918
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:2729
+#: templates/js/translated/order.js:2923
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:2749
+#: templates/js/translated/order.js:2943
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:2766
+#: templates/js/translated/order.js:2960
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:2800
+#: templates/js/translated/order.js:2994
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:2810
+#: templates/js/translated/order.js:3004
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:2834
+#: templates/js/translated/order.js:3028
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:2840
+#: templates/js/translated/order.js:3034
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:2844
+#: templates/js/translated/order.js:3038
msgid "Invoice"
msgstr ""
-#: templates/js/translated/order.js:3013
+#: templates/js/translated/order.js:3207
msgid "Add Shipment"
msgstr ""
-#: templates/js/translated/order.js:3064
+#: templates/js/translated/order.js:3258
msgid "Confirm stock allocation"
msgstr "Stok tahsisini onayla"
-#: templates/js/translated/order.js:3065
+#: templates/js/translated/order.js:3259
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:3273
+#: templates/js/translated/order.js:3467
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:3352
+#: templates/js/translated/order.js:3546
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3369
+#: templates/js/translated/order.js:3563
msgid "Confirm Delete Operation"
msgstr "Silme İşlemini Onayla"
-#: templates/js/translated/order.js:3370
+#: templates/js/translated/order.js:3564
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504
+#: templates/js/translated/order.js:3609 templates/js/translated/order.js:3698
#: templates/js/translated/stock.js:1602
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513
+#: templates/js/translated/order.js:3617 templates/js/translated/order.js:3707
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3827
+#: templates/js/translated/order.js:4021
msgid "Allocate serial numbers"
msgstr "Seri numaralarını tahsis et"
-#: templates/js/translated/order.js:3833
+#: templates/js/translated/order.js:4027
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038
+#: templates/js/translated/order.js:4034 templates/js/translated/order.js:4232
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3852
+#: templates/js/translated/order.js:4046
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3855
+#: templates/js/translated/order.js:4049
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3937
+#: templates/js/translated/order.js:4131
msgid "Allocate Serial Numbers"
msgstr "Seri Numaralarını Tahsis Et"
-#: templates/js/translated/order.js:4046
+#: templates/js/translated/order.js:4240
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:4060
+#: templates/js/translated/order.js:4254
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4296
+#: templates/js/translated/order.js:4490
msgid "No matching lines"
msgstr ""
@@ -9374,173 +9420,177 @@ msgstr ""
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498
+#: templates/js/translated/part.js:584 templates/js/translated/part.js:1515
#: templates/js/translated/table_filters.js:468
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:596
+#: templates/js/translated/part.js:594
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:715
+#: templates/js/translated/part.js:628 templates/js/translated/part.js:713
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:634 templates/js/translated/part.js:719
+#: templates/js/translated/part.js:632 templates/js/translated/part.js:717
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:646
+#: templates/js/translated/part.js:644
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:650
+#: templates/js/translated/part.js:648
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:778
+#: templates/js/translated/part.js:776
msgid "No variants found"
msgstr "Çeşit bulunamadı"
-#: templates/js/translated/part.js:1180
+#: templates/js/translated/part.js:1200
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1204
+#: templates/js/translated/part.js:1224
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573
+#: templates/js/translated/part.js:1291 templates/js/translated/part.js:1602
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1310
-msgid "Not available"
-msgstr ""
-
-#: templates/js/translated/part.js:1461
+#: templates/js/translated/part.js:1482
msgid "No category"
msgstr "Katagori Yok"
-#: templates/js/translated/part.js:1496
+#: templates/js/translated/part.js:1513
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840
-#: templates/js/translated/stock.js:2347
+#: templates/js/translated/part.js:1537
+msgid "Allocated to build orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1541
+msgid "Allocated to sales orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1626 templates/js/translated/part.js:1869
+#: templates/js/translated/stock.js:2343
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1613
+#: templates/js/translated/part.js:1642
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1679
+#: templates/js/translated/part.js:1708
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1684
+#: templates/js/translated/part.js:1713
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:1689
+#: templates/js/translated/part.js:1718
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1702
+#: templates/js/translated/part.js:1731
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366
+#: templates/js/translated/part.js:1888 templates/js/translated/stock.js:2362
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1938
+#: templates/js/translated/part.js:1967
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:1954
+#: templates/js/translated/part.js:1983
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2012
+#: templates/js/translated/part.js:2041
msgid "No test templates matching query"
msgstr "Sorgu ile eşleşen test şablonu bulunamadı"
-#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299
+#: templates/js/translated/part.js:2092 templates/js/translated/stock.js:1299
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300
+#: templates/js/translated/part.js:2093 templates/js/translated/stock.js:1300
#: templates/js/translated/stock.js:1560
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2070
+#: templates/js/translated/part.js:2099
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2092
+#: templates/js/translated/part.js:2121
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2106
+#: templates/js/translated/part.js:2135
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2131
+#: templates/js/translated/part.js:2160
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:2188
+#: templates/js/translated/part.js:2217
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2189
+#: templates/js/translated/part.js:2218
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355
+#: templates/js/translated/part.js:2383 templates/js/translated/part.js:2384
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2357
+#: templates/js/translated/part.js:2386
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2363
+#: templates/js/translated/part.js:2392
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2413
+#: templates/js/translated/part.js:2442
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2419
+#: templates/js/translated/part.js:2448
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2515
+#: templates/js/translated/part.js:2544
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2531
+#: templates/js/translated/part.js:2560
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2576
+#: templates/js/translated/part.js:2605
msgid "Minimum Stock Level"
msgstr ""
-#: templates/js/translated/part.js:2677
+#: templates/js/translated/part.js:2706
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:2696
+#: templates/js/translated/part.js:2725
msgid "Single Price Difference"
msgstr ""
@@ -9778,7 +9828,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:942 users/models.py:216
+#: templates/js/translated/stock.js:942 users/models.py:218
msgid "Add"
msgstr ""
@@ -9854,156 +9904,156 @@ msgstr ""
msgid "No stock location set"
msgstr "Stok konumu ayarlanmadı"
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1775
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1780
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1787
+#: templates/js/translated/stock.js:1783
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1790
+#: templates/js/translated/stock.js:1786
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1792
+#: templates/js/translated/stock.js:1788
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1794
+#: templates/js/translated/stock.js:1790
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1797
+#: templates/js/translated/stock.js:1793
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1797
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1803
+#: templates/js/translated/stock.js:1799
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1810
+#: templates/js/translated/stock.js:1806
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:1808
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1814
+#: templates/js/translated/stock.js:1810
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1818
+#: templates/js/translated/stock.js:1814
#: templates/js/translated/table_filters.js:196
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1869
+#: templates/js/translated/stock.js:1865
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1948
+#: templates/js/translated/stock.js:1944
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1986
+#: templates/js/translated/stock.js:1982
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2159
+#: templates/js/translated/stock.js:2155
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2173
+#: templates/js/translated/stock.js:2169
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2174
+#: templates/js/translated/stock.js:2170
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2404
+#: templates/js/translated/stock.js:2400
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2493
+#: templates/js/translated/stock.js:2489
msgid "Details"
msgstr "Detaylar"
-#: templates/js/translated/stock.js:2509
+#: templates/js/translated/stock.js:2505
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2531
+#: templates/js/translated/stock.js:2527
msgid "Location no longer exists"
msgstr "Konum artık yok"
-#: templates/js/translated/stock.js:2550
+#: templates/js/translated/stock.js:2546
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2569
+#: templates/js/translated/stock.js:2565
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2587
+#: templates/js/translated/stock.js:2583
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2610
+#: templates/js/translated/stock.js:2606
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2618
+#: templates/js/translated/stock.js:2614
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2694
+#: templates/js/translated/stock.js:2690
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781
+#: templates/js/translated/stock.js:2741 templates/js/translated/stock.js:2777
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2790
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2815
+#: templates/js/translated/stock.js:2811
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2816
+#: templates/js/translated/stock.js:2812
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2818
+#: templates/js/translated/stock.js:2814
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2819
+#: templates/js/translated/stock.js:2815
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2820
+#: templates/js/translated/stock.js:2816
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2821
+#: templates/js/translated/stock.js:2817
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2834
+#: templates/js/translated/stock.js:2830
msgid "Select part to install"
msgstr ""
@@ -10525,35 +10575,35 @@ msgstr "Yetkiler"
msgid "Important dates"
msgstr "Önemli tarihler"
-#: users/models.py:203
+#: users/models.py:205
msgid "Permission set"
msgstr "İzinleri ayarla"
-#: users/models.py:211
+#: users/models.py:213
msgid "Group"
msgstr "Grup"
-#: users/models.py:214
+#: users/models.py:216
msgid "View"
msgstr "Görünüm"
-#: users/models.py:214
+#: users/models.py:216
msgid "Permission to view items"
msgstr "Parçayı görüntüleme izni"
-#: users/models.py:216
+#: users/models.py:218
msgid "Permission to add items"
msgstr "Parça ekleme izni"
-#: users/models.py:218
+#: users/models.py:220
msgid "Change"
msgstr "Değiştir"
-#: users/models.py:218
+#: users/models.py:220
msgid "Permissions to edit items"
msgstr "Parçaları düzenleme izni"
-#: users/models.py:220
+#: users/models.py:222
msgid "Permission to delete items"
msgstr "Parçaları silme izni"
diff --git a/InvenTree/locale/vi/LC_MESSAGES/django.po b/InvenTree/locale/vi/LC_MESSAGES/django.po
index 37f51117d3..c2be3f4dc4 100644
--- a/InvenTree/locale/vi/LC_MESSAGES/django.po
+++ b/InvenTree/locale/vi/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-08-25 10:08+0000\n"
-"PO-Revision-Date: 2022-08-26 01:55\n"
+"POT-Creation-Date: 2022-09-09 02:44+0000\n"
+"PO-Revision-Date: 2022-09-09 03:57\n"
"Last-Translator: \n"
"Language-Team: Vietnamese\n"
"Language: vi_VN\n"
@@ -29,9 +29,9 @@ msgstr ""
msgid "Enter date"
msgstr ""
-#: InvenTree/fields.py:186 build/serializers.py:384
-#: build/templates/build/sidebar.html:21 company/models.py:523
-#: company/templates/company/sidebar.html:25 order/models.py:906
+#: InvenTree/fields.py:183 build/serializers.py:384
+#: build/templates/build/sidebar.html:21 company/models.py:524
+#: company/templates/company/sidebar.html:25 order/models.py:910
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17
#: part/templates/part/part_sidebar.html:59
@@ -40,11 +40,12 @@ msgstr ""
#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823
#: stock/serializers.py:922 stock/serializers.py:1054
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099
-#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210
-#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859
-#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208
-#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1107
+#: templates/js/translated/company.js:1022
+#: templates/js/translated/order.js:2404 templates/js/translated/order.js:2555
+#: templates/js/translated/order.js:3053 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:4402 templates/js/translated/stock.js:1374
+#: templates/js/translated/stock.js:1976
msgid "Notes"
msgstr ""
@@ -210,12 +211,12 @@ msgid "Select file to attach"
msgstr ""
#: InvenTree/models.py:402 company/models.py:124 company/models.py:276
-#: company/models.py:510 order/models.py:84 order/models.py:1245
+#: company/models.py:511 order/models.py:84 order/models.py:1249
#: part/models.py:802 part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
-#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848
-#: templates/js/translated/part.js:1534
+#: templates/js/translated/company.js:691
+#: templates/js/translated/company.js:1011
+#: templates/js/translated/order.js:3042 templates/js/translated/part.js:1563
msgid "Link"
msgstr ""
@@ -233,12 +234,12 @@ msgstr "Bình luận"
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665
-#: common/models.py:1666 common/models.py:1889 common/models.py:1890
-#: common/models.py:2152 common/models.py:2153 part/models.py:2239
-#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257
+#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1669
+#: common/models.py:1670 common/models.py:1893 common/models.py:1894
+#: common/models.py:2156 common/models.py:2157 part/models.py:2247
+#: part/models.py:2267 plugin/models.py:260 plugin/models.py:261
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2641
+#: templates/js/translated/stock.js:2637
msgid "User"
msgstr "Người dùng"
@@ -275,28 +276,28 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875
+#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1879
#: company/models.py:358 label/models.py:101 part/models.py:746
-#: part/models.py:2417 plugin/models.py:94 report/models.py:152
+#: part/models.py:2425 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin.html:134
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:347
-#: templates/js/translated/company.js:545
-#: templates/js/translated/company.js:758
+#: templates/js/translated/company.js:580
+#: templates/js/translated/company.js:793
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:688 templates/js/translated/part.js:840
-#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392
+#: templates/js/translated/part.js:686 templates/js/translated/part.js:838
+#: templates/js/translated/part.js:1955 templates/js/translated/stock.js:2388
msgid "Name"
msgstr ""
#: InvenTree/models.py:544 build/models.py:174
#: build/templates/build/detail.html:24 company/models.py:282
-#: company/models.py:516 company/templates/company/company_base.html:71
+#: company/models.py:517 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:87 label/models.py:108
-#: order/models.py:82 part/models.py:769 part/models.py:2429
+#: company/templates/company/supplier_part.html:92 label/models.py:108
+#: order/models.py:82 part/models.py:769 part/models.py:2437
#: part/templates/part/category.html:80 part/templates/part/part_base.html:167
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
@@ -305,14 +306,14 @@ msgstr ""
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/InvenTree/settings/settings.html:358
#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846
-#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409
-#: templates/js/translated/company.js:667
-#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637
-#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167
-#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962
-#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743
-#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478
+#: templates/js/translated/build.js:2512 templates/js/translated/company.js:444
+#: templates/js/translated/company.js:702
+#: templates/js/translated/company.js:986 templates/js/translated/order.js:1988
+#: templates/js/translated/order.js:2220 templates/js/translated/order.js:2831
+#: templates/js/translated/part.js:745 templates/js/translated/part.js:1187
+#: templates/js/translated/part.js:1463 templates/js/translated/part.js:1991
+#: templates/js/translated/part.js:2060 templates/js/translated/stock.js:1743
+#: templates/js/translated/stock.js:2420 templates/js/translated/stock.js:2474
msgid "Description"
msgstr "Mô tả"
@@ -325,7 +326,7 @@ msgid "parent"
msgstr ""
#: InvenTree/models.py:560 InvenTree/models.py:561
-#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:2426
msgid "Path"
msgstr ""
@@ -337,7 +338,7 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2745
+#: InvenTree/serializers.py:55 part/models.py:2753
msgid "Must be a valid number"
msgstr ""
@@ -522,7 +523,7 @@ msgid "Placed"
msgstr ""
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr ""
@@ -542,8 +543,8 @@ msgstr ""
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:141 order/models.py:1128
-#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785
+#: InvenTree/status_codes.py:141 order/models.py:1132
+#: templates/js/translated/order.js:3630 templates/js/translated/order.js:3979
msgid "Shipped"
msgstr ""
@@ -627,7 +628,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080
msgid "Merged stock items"
msgstr ""
@@ -717,7 +718,7 @@ msgstr "Thông tin hệ thống"
msgid "About InvenTree"
msgstr "Giới thiệu"
-#: build/api.py:217
+#: build/api.py:219
msgid "Build must be cancelled before it can be deleted"
msgstr ""
@@ -748,15 +749,15 @@ msgstr "Tạo đơn hàng"
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:166 order/models.py:240 order/models.py:623
-#: order/models.py:904 part/models.py:2663
+#: build/models.py:166 order/models.py:240 order/models.py:627
+#: order/models.py:908 part/models.py:2671
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853
-#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089
-#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629
-#: templates/js/translated/order.js:4137
+#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2251
+#: templates/js/translated/order.js:2484 templates/js/translated/order.js:3823
+#: templates/js/translated/order.js:4331
msgid "Reference"
msgstr ""
@@ -774,12 +775,12 @@ msgid "BuildOrder to which this build is allocated"
msgstr ""
#: build/models.py:191 build/templates/build/build_base.html:80
-#: build/templates/build/detail.html:29 company/models.py:670
-#: order/models.py:1001 order/models.py:1112 order/models.py:1113
-#: part/models.py:343 part/models.py:2185 part/models.py:2200
-#: part/models.py:2219 part/models.py:2237 part/models.py:2336
-#: part/models.py:2463 part/models.py:2553 part/models.py:2638
-#: part/models.py:2914 part/serializers.py:814
+#: build/templates/build/detail.html:29 company/models.py:679
+#: order/models.py:1005 order/models.py:1116 order/models.py:1117
+#: part/models.py:343 part/models.py:2193 part/models.py:2208
+#: part/models.py:2227 part/models.py:2245 part/models.py:2344
+#: part/models.py:2471 part/models.py:2561 part/models.py:2646
+#: part/models.py:2922 part/serializers.py:814
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -795,18 +796,18 @@ msgstr ""
#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800
#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682
#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517
-#: templates/js/translated/company.js:266
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:608
-#: templates/js/translated/company.js:868 templates/js/translated/order.js:105
-#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493
-#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613
-#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224
-#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586
+#: templates/js/translated/company.js:301
+#: templates/js/translated/company.js:531
+#: templates/js/translated/company.js:643
+#: templates/js/translated/company.js:904 templates/js/translated/order.js:106
+#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1638
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:3185
+#: templates/js/translated/order.js:3581 templates/js/translated/order.js:3807
+#: templates/js/translated/part.js:1172 templates/js/translated/part.js:1244
+#: templates/js/translated/part.js:1441 templates/js/translated/stock.js:586
#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504
-#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833
+#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2500
+#: templates/js/translated/stock.js:2695 templates/js/translated/stock.js:2829
msgid "Part"
msgstr "Nguyên liệu"
@@ -823,7 +824,7 @@ msgid "SalesOrder to which this build is allocated"
msgstr ""
#: build/models.py:213 build/serializers.py:800
-#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979
+#: templates/js/translated/build.js:2114 templates/js/translated/order.js:3173
msgid "Source Location"
msgstr ""
@@ -863,8 +864,8 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:251 build/serializers.py:225 order/serializers.py:447
-#: stock/models.py:662 templates/js/translated/order.js:1353
+#: build/models.py:251 build/serializers.py:225 order/serializers.py:464
+#: stock/models.py:662 templates/js/translated/order.js:1496
msgid "Batch Code"
msgstr ""
@@ -873,11 +874,11 @@ msgid "Batch code for this build output"
msgstr ""
#: build/models.py:258 order/models.py:86 part/models.py:938
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2844
msgid "Creation Date"
msgstr ""
-#: build/models.py:262 order/models.py:648
+#: build/models.py:262 order/models.py:652
msgid "Target completion date"
msgstr ""
@@ -904,10 +905,10 @@ msgstr ""
#: build/models.py:289 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:100
-#: order/templates/order/order_base.html:179
+#: order/templates/order/order_base.html:185
#: order/templates/order/sales_order_base.html:183 part/models.py:942
#: report/templates/report/inventree_build_order_base.html:158
-#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860
+#: templates/js/translated/build.js:2574 templates/js/translated/order.js:2022
msgid "Responsible"
msgstr ""
@@ -917,9 +918,9 @@ msgstr ""
#: build/models.py:295 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
-#: company/templates/company/supplier_part.html:153
+#: company/templates/company/supplier_part.html:165
#: part/templates/part/part_base.html:346 stock/models.py:656
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr ""
@@ -957,11 +958,11 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1188 order/models.py:1379
+#: build/models.py:1188 order/models.py:1383
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1194 order/models.py:1382
+#: build/models.py:1194 order/models.py:1386
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -973,7 +974,7 @@ msgstr ""
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1326 stock/templates/stock/item_base.html:172
+#: build/models.py:1326 stock/templates/stock/item_base.html:175
#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496
#: templates/navbar.html:38
msgid "Build"
@@ -983,18 +984,18 @@ msgstr ""
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015
-#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754
+#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1035
+#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754
#: stock/serializers.py:880 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:197
#: templates/js/translated/build.js:774 templates/js/translated/build.js:779
#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679
-#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992
-#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299
-#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486
+#: templates/js/translated/order.js:107 templates/js/translated/order.js:3186
+#: templates/js/translated/order.js:3488 templates/js/translated/order.js:3493
+#: templates/js/translated/order.js:3588 templates/js/translated/order.js:3680
#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752
-#: templates/js/translated/stock.js:2577
+#: templates/js/translated/stock.js:2573
msgid "Stock Item"
msgstr ""
@@ -1004,11 +1005,11 @@ msgstr ""
#: build/models.py:1356 build/serializers.py:193
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1697
-#: company/templates/company/supplier_part.html:279 order/models.py:897
-#: order/models.py:1423 order/serializers.py:1155
+#: build/templates/build/detail.html:34 common/models.py:1701
+#: company/templates/company/supplier_part.html:291 order/models.py:901
+#: order/models.py:1427 order/serializers.py:1209
#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40
-#: part/models.py:2654 part/templates/part/detail.html:951
+#: part/models.py:2662 part/templates/part/detail.html:951
#: part/templates/part/detail.html:1037
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -1017,8 +1018,8 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:291 stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
+#: stock/serializers.py:291 stock/templates/stock/item_base.html:290
+#: stock/templates/stock/item_base.html:298
#: templates/email/build_order_completed.html:18
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691
#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458
@@ -1026,16 +1027,16 @@ msgstr ""
#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708
#: templates/js/translated/build.js:2129
#: templates/js/translated/model_renderers.js:120
-#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043
-#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313
-#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492
-#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143
-#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176
-#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686
-#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458
+#: templates/js/translated/order.js:123 templates/js/translated/order.js:1137
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:2490
+#: templates/js/translated/order.js:3187 templates/js/translated/order.js:3507
+#: templates/js/translated/order.js:3594 templates/js/translated/order.js:3686
+#: templates/js/translated/order.js:3829 templates/js/translated/order.js:4337
+#: templates/js/translated/part.js:1036 templates/js/translated/part.js:2205
+#: templates/js/translated/part.js:2674 templates/js/translated/part.js:2715
+#: templates/js/translated/part.js:2793 templates/js/translated/stock.js:458
#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782
-#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2707
msgid "Quantity"
msgstr ""
@@ -1077,7 +1078,7 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:208 build/serializers.py:665 order/models.py:318
-#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545
+#: order/serializers.py:304 order/serializers.py:459 part/serializers.py:545
#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251
#: stock/serializers.py:300
msgid "Quantity must be greater than zero"
@@ -1091,8 +1092,8 @@ msgstr ""
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159
-#: stock/serializers.py:309 templates/js/translated/order.js:1364
+#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213
+#: stock/serializers.py:309 templates/js/translated/order.js:1507
#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459
msgid "Serial Numbers"
msgstr ""
@@ -1117,18 +1118,18 @@ msgstr ""
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532
+#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552
#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532
#: stock/serializers.py:915 stock/serializers.py:1148
-#: stock/templates/stock/item_base.html:385
+#: stock/templates/stock/item_base.html:388
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786
-#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391
-#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411
-#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500
+#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1534
+#: templates/js/translated/order.js:3500 templates/js/translated/order.js:3605
+#: templates/js/translated/order.js:3613 templates/js/translated/order.js:3694
#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588
#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960
-#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2514
msgid "Location"
msgstr ""
@@ -1137,12 +1138,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:373 build/templates/build/build_base.html:145
-#: build/templates/build/detail.html:62 order/models.py:642
-#: order/serializers.py:465 stock/templates/stock/item_base.html:418
+#: build/templates/build/detail.html:62 order/models.py:646
+#: order/serializers.py:482 stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546
-#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830
-#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829
-#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727
+#: templates/js/translated/order.js:1643 templates/js/translated/order.js:1992
+#: templates/js/translated/order.js:2836 templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:2591 templates/js/translated/stock.js:2723
msgid "Status"
msgstr "Trạng thái"
@@ -1202,7 +1203,7 @@ msgstr ""
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:527
+#: build/serializers.py:527 order/serializers.py:208 order/serializers.py:1103
msgid "Accept Incomplete"
msgstr ""
@@ -1218,8 +1219,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772
-#: part/models.py:2906
+#: build/serializers.py:577 build/serializers.py:622 part/models.py:2780
+#: part/models.py:2914
msgid "BOM Item"
msgstr ""
@@ -1239,7 +1240,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:709 order/serializers.py:1073
+#: build/serializers.py:709 order/serializers.py:1093
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1256,7 +1257,7 @@ msgstr ""
msgid "This stock item has already been allocated to this build output"
msgstr ""
-#: build/serializers.py:750 order/serializers.py:1319
+#: build/serializers.py:750 order/serializers.py:1373
msgid "Allocation items must be provided"
msgstr ""
@@ -1371,13 +1372,13 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:154
-#: build/templates/build/detail.html:131 order/models.py:910
-#: order/templates/order/order_base.html:165
+#: build/templates/build/detail.html:131 order/models.py:914
+#: order/templates/order/order_base.html:171
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:125
-#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847
-#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658
-#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042
+#: templates/js/translated/build.js:2586 templates/js/translated/order.js:2009
+#: templates/js/translated/order.js:2351 templates/js/translated/order.js:2852
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1051
msgid "Target Date"
msgstr ""
@@ -1388,7 +1389,7 @@ msgstr ""
#: build/templates/build/build_base.html:159
#: build/templates/build/build_base.html:204
-#: order/templates/order/order_base.html:101
+#: order/templates/order/order_base.html:107
#: order/templates/order/sales_order_base.html:94
#: templates/js/translated/table_filters.js:320
#: templates/js/translated/table_filters.js:361
@@ -1404,15 +1405,15 @@ msgid "Completed"
msgstr "Đã hoàn thành"
#: build/templates/build/build_base.html:179
-#: build/templates/build/detail.html:94 order/models.py:1105
-#: order/models.py:1199 order/models.py:1330
+#: build/templates/build/detail.html:94 order/models.py:1109
+#: order/models.py:1203 order/models.py:1334
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:365
+#: stock/templates/stock/item_base.html:368
#: templates/email/overdue_sales_order.html:15
-#: templates/js/translated/order.js:2604
+#: templates/js/translated/order.js:2798
msgid "Sales Order"
msgstr ""
@@ -1438,8 +1439,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1023
-#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199
+#: build/templates/build/detail.html:49 order/models.py:1027
+#: templates/js/translated/order.js:1644 templates/js/translated/order.js:2393
msgid "Destination"
msgstr ""
@@ -1452,18 +1453,18 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:165
+#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1215
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843
-#: templates/js/translated/stock.js:2734
+#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1839
+#: templates/js/translated/stock.js:2730
#: templates/js/translated/table_filters.js:159
#: templates/js/translated/table_filters.js:250
msgid "Batch"
msgstr ""
#: build/templates/build/detail.html:126
-#: order/templates/order/order_base.html:152
+#: order/templates/order/order_base.html:158
#: order/templates/order/sales_order_base.html:158
#: templates/js/translated/build.js:2554
msgid "Created"
@@ -1516,7 +1517,7 @@ msgstr ""
#: build/templates/build/detail.html:187
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:85
-#: part/templates/part/category.html:183 templates/js/translated/order.js:1083
+#: part/templates/part/category.html:183 templates/js/translated/order.js:1177
msgid "Order Parts"
msgstr ""
@@ -1851,7 +1852,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:951 part/models.py:2465 report/models.py:158
+#: common/models.py:951 part/models.py:2473 report/models.py:158
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:484
msgid "Template"
@@ -1861,7 +1862,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446
+#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1454
#: templates/js/translated/table_filters.js:176
#: templates/js/translated/table_filters.js:447
msgid "Assembly"
@@ -2275,349 +2276,349 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1342 common/models.py:1658
+#: common/models.py:1344 common/models.py:1662
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1364
+#: common/models.py:1366
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1365
+#: common/models.py:1367
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1371
+#: common/models.py:1373
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1372
+#: common/models.py:1374
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1378
+#: common/models.py:1380
msgid "Show latest parts"
msgstr "Hiển thị nguyên liệu mới nhất"
-#: common/models.py:1379
+#: common/models.py:1381
msgid "Show latest parts on the homepage"
msgstr "Hiển thị nguyên liệu mới nhất trên trang chủ"
-#: common/models.py:1385
+#: common/models.py:1387
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1386
+#: common/models.py:1388
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1392
+#: common/models.py:1394
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1393
+#: common/models.py:1395
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1399
+#: common/models.py:1401
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1400
+#: common/models.py:1402
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1406
+#: common/models.py:1408
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1407
+#: common/models.py:1409
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1413
+#: common/models.py:1415
msgid "Show low stock"
msgstr ""
-#: common/models.py:1414
+#: common/models.py:1416
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1420
+#: common/models.py:1422
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1421
+#: common/models.py:1423
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1427
+#: common/models.py:1429
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1430
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1434
+#: common/models.py:1436
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1435
+#: common/models.py:1437
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1441
+#: common/models.py:1443
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1442
+#: common/models.py:1444
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1448
+#: common/models.py:1450
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1449
+#: common/models.py:1451
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1455
+#: common/models.py:1457
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1456
+#: common/models.py:1458
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1462
+#: common/models.py:1464
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1463
+#: common/models.py:1465
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1469
+#: common/models.py:1471
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1470
+#: common/models.py:1472
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1476
+#: common/models.py:1478
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1477
+#: common/models.py:1479
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1483
+#: common/models.py:1485
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1484
+#: common/models.py:1486
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1490
+#: common/models.py:1492
msgid "Inline label display"
msgstr ""
-#: common/models.py:1491
+#: common/models.py:1493
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1499
msgid "Inline report display"
msgstr ""
-#: common/models.py:1498
+#: common/models.py:1500
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1506
msgid "Search Parts"
msgstr ""
-#: common/models.py:1505
+#: common/models.py:1507
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1513
msgid "Seach Supplier Parts"
msgstr ""
-#: common/models.py:1512
+#: common/models.py:1514
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1520
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:1519
+#: common/models.py:1521
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:1525
+#: common/models.py:1527
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1526
+#: common/models.py:1528
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1532
+#: common/models.py:1534
msgid "Search Categories"
msgstr ""
-#: common/models.py:1533
+#: common/models.py:1535
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1539
+#: common/models.py:1541
msgid "Search Stock"
msgstr ""
-#: common/models.py:1540
+#: common/models.py:1542
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1546
+#: common/models.py:1548
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1547
+#: common/models.py:1549
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1553
+#: common/models.py:1555
msgid "Search Locations"
msgstr ""
-#: common/models.py:1554
+#: common/models.py:1556
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1560
+#: common/models.py:1562
msgid "Search Companies"
msgstr ""
-#: common/models.py:1561
+#: common/models.py:1563
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1567
+#: common/models.py:1569
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1568
+#: common/models.py:1570
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1574
+#: common/models.py:1576
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1575
+#: common/models.py:1577
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1581
+#: common/models.py:1583
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1582
+#: common/models.py:1584
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1588
+#: common/models.py:1590
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1591
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1595
+#: common/models.py:1597
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1598
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1602
+#: common/models.py:1604
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1605
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1609
+#: common/models.py:1611
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1610
+#: common/models.py:1612
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1616
+#: common/models.py:1618
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1617
+#: common/models.py:1619
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1623
+#: common/models.py:1625
msgid "Date Format"
msgstr ""
-#: common/models.py:1624
+#: common/models.py:1626
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1638 part/templates/part/detail.html:41
+#: common/models.py:1640 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1641
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1698
+#: common/models.py:1702
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1705 company/serializers.py:366
-#: company/templates/company/supplier_part.html:284 order/models.py:938
-#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181
+#: common/models.py:1709 company/serializers.py:372
+#: company/templates/company/supplier_part.html:296 order/models.py:942
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:2210
msgid "Price"
msgstr ""
-#: common/models.py:1706
+#: common/models.py:1710
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1866 common/models.py:2044
+#: common/models.py:1870 common/models.py:2048
msgid "Endpoint"
msgstr ""
-#: common/models.py:1867
+#: common/models.py:1871
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1876
+#: common/models.py:1880
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1881 part/models.py:921 plugin/models.py:100
+#: common/models.py:1885 part/models.py:921 plugin/models.py:100
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:104
#: templates/js/translated/table_filters.js:316
@@ -2625,67 +2626,67 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1886
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1896
+#: common/models.py:1900
msgid "Token"
msgstr ""
-#: common/models.py:1897
+#: common/models.py:1901
msgid "Token for access"
msgstr ""
-#: common/models.py:1904
+#: common/models.py:1908
msgid "Secret"
msgstr ""
-#: common/models.py:1905
+#: common/models.py:1909
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2011
+#: common/models.py:2015
msgid "Message ID"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2016
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2020
+#: common/models.py:2024
msgid "Host"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2025
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2032
msgid "Header"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2033
msgid "Header of this message"
msgstr ""
-#: common/models.py:2035
+#: common/models.py:2039
msgid "Body"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2040
msgid "Body of this message"
msgstr ""
-#: common/models.py:2045
+#: common/models.py:2049
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2054
msgid "Worked on"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2055
msgid "Was the work on this message finished?"
msgstr ""
@@ -2747,7 +2748,7 @@ msgstr ""
#: company/models.py:105 company/templates/company/company_base.html:100
#: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:413
+#: templates/js/translated/company.js:448
msgid "Website"
msgstr ""
@@ -2824,7 +2825,7 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:148 company/serializers.py:372
+#: company/models.py:148 company/serializers.py:378
#: company/templates/company/company_base.html:106 part/serializers.py:153
#: part/serializers.py:184 stock/serializers.py:178
msgid "Currency"
@@ -2834,24 +2835,24 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:248 company/models.py:481 stock/models.py:598
+#: company/models.py:248 company/models.py:482 stock/models.py:598
#: stock/serializers.py:85 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:542
msgid "Base Part"
msgstr ""
-#: company/models.py:252 company/models.py:485
+#: company/models.py:252 company/models.py:486
msgid "Select part"
msgstr ""
#: company/models.py:263 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:124
-#: stock/templates/stock/item_base.html:207
-#: templates/js/translated/company.js:397
-#: templates/js/translated/company.js:498
-#: templates/js/translated/company.js:633
-#: templates/js/translated/company.js:919 templates/js/translated/part.js:236
+#: company/templates/company/supplier_part.html:129
+#: stock/templates/stock/item_base.html:210
+#: templates/js/translated/company.js:432
+#: templates/js/translated/company.js:533
+#: templates/js/translated/company.js:668
+#: templates/js/translated/company.js:956 templates/js/translated/part.js:236
#: templates/js/translated/table_filters.js:419
msgid "Manufacturer"
msgstr "Nhà sản xuất"
@@ -2861,12 +2862,12 @@ msgid "Select manufacturer"
msgstr ""
#: company/models.py:270 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:132
-#: templates/js/translated/company.js:269
-#: templates/js/translated/company.js:497
-#: templates/js/translated/company.js:649
-#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077
-#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027
+#: company/templates/company/supplier_part.html:137
+#: templates/js/translated/company.js:304
+#: templates/js/translated/company.js:532
+#: templates/js/translated/company.js:684
+#: templates/js/translated/company.js:975 templates/js/translated/order.js:2239
+#: templates/js/translated/part.js:247 templates/js/translated/part.js:1025
msgid "MPN"
msgstr ""
@@ -2882,10 +2883,10 @@ msgstr ""
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:328 company/models.py:352 company/models.py:504
+#: company/models.py:328 company/models.py:352 company/models.py:505
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:220
msgid "Manufacturer Part"
msgstr ""
@@ -2895,8 +2896,8 @@ msgstr ""
#: company/models.py:365
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2095 templates/js/translated/company.js:546
-#: templates/js/translated/company.js:764 templates/js/translated/part.js:849
+#: stock/models.py:2095 templates/js/translated/company.js:581
+#: templates/js/translated/company.js:799 templates/js/translated/part.js:847
#: templates/js/translated/stock.js:1360
msgid "Value"
msgstr ""
@@ -2905,10 +2906,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:372 part/models.py:888 part/models.py:2425
+#: company/models.py:372 part/models.py:888 part/models.py:2433
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:352
-#: templates/js/translated/company.js:770 templates/js/translated/part.js:855
+#: templates/js/translated/company.js:805 templates/js/translated/part.js:853
msgid "Units"
msgstr ""
@@ -2916,106 +2917,119 @@ msgstr ""
msgid "Parameter units"
msgstr ""
-#: company/models.py:449
+#: company/models.py:450
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:491 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:108 order/models.py:258
-#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:224
+#: company/models.py:492 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:113 order/models.py:258
+#: order/templates/order/order_base.html:121 part/bom.py:237 part/bom.py:265
+#: stock/templates/stock/item_base.html:227
#: templates/email/overdue_purchase_order.html:16
-#: templates/js/translated/company.js:268
-#: templates/js/translated/company.js:401
-#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813
-#: templates/js/translated/part.js:217 templates/js/translated/part.js:995
+#: templates/js/translated/company.js:303
+#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:929 templates/js/translated/order.js:1975
+#: templates/js/translated/part.js:217 templates/js/translated/part.js:993
#: templates/js/translated/table_filters.js:423
msgid "Supplier"
msgstr "Nhà cung cấp"
-#: company/models.py:492 templates/js/translated/part.js:218
+#: company/models.py:493 templates/js/translated/part.js:218
msgid "Select supplier"
msgstr ""
-#: company/models.py:497 company/templates/company/supplier_part.html:118
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267
-#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228
-#: templates/js/translated/part.js:1013
+#: company/models.py:498 company/templates/company/supplier_part.html:123
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:302
+#: templates/js/translated/order.js:2226 templates/js/translated/part.js:228
+#: templates/js/translated/part.js:1011
msgid "SKU"
msgstr ""
-#: company/models.py:498 templates/js/translated/part.js:229
+#: company/models.py:499 templates/js/translated/part.js:229
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:505
+#: company/models.py:506
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:511
+#: company/models.py:512
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:517
+#: company/models.py:518
msgid "Supplier part description"
msgstr ""
-#: company/models.py:522 company/templates/company/supplier_part.html:146
-#: part/models.py:2666 part/templates/part/upload_bom.html:59
+#: company/models.py:523 company/templates/company/supplier_part.html:158
+#: part/models.py:2674 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399
msgid "Note"
msgstr ""
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "base cost"
msgstr ""
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:528 company/templates/company/supplier_part.html:139
-#: stock/models.py:624 stock/templates/stock/item_base.html:240
-#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976
+#: company/models.py:529 company/templates/company/supplier_part.html:144
+#: stock/models.py:624 stock/templates/stock/item_base.html:243
+#: templates/js/translated/company.js:991 templates/js/translated/stock.js:1972
msgid "Packaging"
msgstr ""
-#: company/models.py:528
+#: company/models.py:529
msgid "Part packaging"
msgstr ""
-#: company/models.py:530 part/models.py:1783
+#: company/models.py:532 company/serializers.py:242
+#: company/templates/company/supplier_part.html:151
+#: templates/js/translated/company.js:996 templates/js/translated/order.js:820
+#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:2270 templates/js/translated/order.js:2287
+#: templates/js/translated/part.js:1043 templates/js/translated/part.js:1095
+msgid "Pack Quantity"
+msgstr ""
+
+#: company/models.py:533
+msgid "Unit quantity supplied in a single pack"
+msgstr ""
+
+#: company/models.py:539 part/models.py:1783
msgid "multiple"
msgstr ""
-#: company/models.py:530
+#: company/models.py:539
msgid "Order multiple"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part.html:94
+#: company/models.py:547 company/templates/company/supplier_part.html:99
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823
-#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979
-#: templates/js/translated/part.js:600 templates/js/translated/part.js:603
+#: templates/js/translated/bom.js:915 templates/js/translated/build.js:1823
+#: templates/js/translated/build.js:2686 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:601
#: templates/js/translated/table_filters.js:186
msgid "Available"
msgstr ""
-#: company/models.py:539
+#: company/models.py:548
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:543
+#: company/models.py:552
msgid "Availability Updated"
msgstr ""
-#: company/models.py:544
+#: company/models.py:553
msgid "Date of last update of availability data"
msgstr ""
-#: company/models.py:672
+#: company/models.py:681
msgid "last updated"
msgstr ""
@@ -3029,12 +3043,12 @@ msgstr ""
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386
+#: templates/InvenTree/search.html:179 templates/js/translated/company.js:421
msgid "Company"
msgstr ""
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:624
+#: templates/js/translated/order.js:689
msgid "Create Purchase Order"
msgstr ""
@@ -3047,7 +3061,7 @@ msgid "Edit company information"
msgstr ""
#: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:329
+#: templates/js/translated/company.js:364
msgid "Edit Company"
msgstr ""
@@ -3070,13 +3084,13 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:86 order/models.py:637
+#: company/templates/company/company_base.html:86 order/models.py:641
#: order/templates/order/sales_order_base.html:116 stock/models.py:643
#: stock/models.py:644 stock/serializers.py:809
-#: stock/templates/stock/item_base.html:396
+#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
-#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619
-#: templates/js/translated/stock.js:2559
+#: templates/js/translated/company.js:428 templates/js/translated/order.js:2813
+#: templates/js/translated/stock.js:2555
#: templates/js/translated/table_filters.js:427
msgid "Customer"
msgstr ""
@@ -3211,23 +3225,23 @@ msgid "Manufacturers"
msgstr ""
#: company/templates/company/manufacturer_part.html:35
-#: company/templates/company/supplier_part.html:186
+#: company/templates/company/supplier_part.html:198
#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80
msgid "Order part"
msgstr ""
#: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:681
+#: templates/js/translated/company.js:716
msgid "Edit manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:682
+#: templates/js/translated/company.js:717
msgid "Delete manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:65
-#: company/templates/company/supplier_part.html:77
+#: company/templates/company/supplier_part.html:82
msgid "Internal Part"
msgstr ""
@@ -3250,8 +3264,8 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:371 part/templates/part/detail.html:401
-#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34
-#: users/models.py:220
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:34
+#: users/models.py:222
msgid "Delete"
msgstr ""
@@ -3296,9 +3310,9 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:607
-#: stock/templates/stock/item_base.html:233
-#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041
-#: templates/js/translated/stock.js:1933
+#: stock/templates/stock/item_base.html:236
+#: templates/js/translated/company.js:945 templates/js/translated/order.js:1135
+#: templates/js/translated/stock.js:1929
msgid "Supplier Part"
msgstr ""
@@ -3308,7 +3322,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:40
#: company/templates/company/supplier_part.html:41
-#: company/templates/company/supplier_part.html:187
+#: company/templates/company/supplier_part.html:199
#: part/templates/part/detail.html:88
msgid "Order Part"
msgstr ""
@@ -3320,81 +3334,87 @@ msgstr ""
#: company/templates/company/supplier_part.html:48
#: company/templates/company/supplier_part.html:49
-#: templates/js/translated/company.js:212
+#: templates/js/translated/company.js:247
msgid "Edit Supplier Part"
msgstr ""
#: company/templates/company/supplier_part.html:53
+#: company/templates/company/supplier_part.html:54
+#: templates/js/translated/company.js:222
+msgid "Duplicate Supplier Part"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:58
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:54
+#: company/templates/company/supplier_part.html:59
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:112
+#: company/templates/company/supplier_part.html:117
msgid "No supplier information available"
msgstr ""
-#: company/templates/company/supplier_part.html:165
+#: company/templates/company/supplier_part.html:177
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr ""
-#: company/templates/company/supplier_part.html:168
+#: company/templates/company/supplier_part.html:180
#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181
msgid "Create new stock item"
msgstr ""
-#: company/templates/company/supplier_part.html:169
+#: company/templates/company/supplier_part.html:181
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182
#: templates/js/translated/stock.js:435
msgid "New Stock Item"
msgstr ""
-#: company/templates/company/supplier_part.html:182
+#: company/templates/company/supplier_part.html:194
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr ""
-#: company/templates/company/supplier_part.html:207
+#: company/templates/company/supplier_part.html:219
#: part/templates/part/prices.html:10
msgid "Pricing Information"
msgstr ""
-#: company/templates/company/supplier_part.html:212
-#: company/templates/company/supplier_part.html:326
-#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253
+#: company/templates/company/supplier_part.html:224
+#: company/templates/company/supplier_part.html:338
+#: part/templates/part/prices.html:276 templates/js/translated/part.js:2282
msgid "Add Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:250
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:252
-#: templates/js/translated/part.js:2263
+#: company/templates/company/supplier_part.html:264
+#: templates/js/translated/part.js:2292
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:266
-#: templates/js/translated/part.js:2277
+#: company/templates/company/supplier_part.html:278
+#: templates/js/translated/part.js:2306
msgid "Edit Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:291
+#: company/templates/company/supplier_part.html:303
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part.html:292
+#: company/templates/company/supplier_part.html:304
msgid "Delete price break"
msgstr ""
-#: company/templates/company/supplier_part.html:301
+#: company/templates/company/supplier_part.html:313
msgid "Last updated"
msgstr ""
-#: company/templates/company/supplier_part.html:382
+#: company/templates/company/supplier_part.html:394
msgid "Update Part Availability"
msgstr ""
@@ -3404,8 +3424,8 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313
-#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959
+#: templates/js/translated/part.js:749 templates/js/translated/part.js:1334
+#: templates/js/translated/part.js:1495 templates/js/translated/stock.js:959
#: templates/js/translated/stock.js:1754 templates/navbar.html:31
msgid "Stock"
msgstr "Kiện hàng"
@@ -3432,7 +3452,7 @@ msgstr ""
#: stock/templates/stock/location.html:178
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2436 users/models.py:40
+#: templates/js/translated/stock.js:2432 users/models.py:40
msgid "Stock Items"
msgstr ""
@@ -3534,7 +3554,7 @@ msgstr ""
msgid "Order description"
msgstr ""
-#: order/models.py:84 order/models.py:1246
+#: order/models.py:84 order/models.py:1250
msgid "Link to external page"
msgstr ""
@@ -3550,11 +3570,11 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:241 order/models.py:624
+#: order/models.py:241 order/models.py:628
msgid "Order reference"
msgstr ""
-#: order/models.py:249 order/models.py:642
+#: order/models.py:249 order/models.py:646
msgid "Purchase order status"
msgstr ""
@@ -3562,8 +3582,8 @@ msgstr ""
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:262 order/templates/order/order_base.html:127
-#: templates/js/translated/order.js:1822
+#: order/models.py:262 order/templates/order/order_base.html:133
+#: templates/js/translated/order.js:1984
msgid "Supplier Reference"
msgstr ""
@@ -3603,245 +3623,245 @@ msgstr ""
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:638
+#: order/models.py:642
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer Reference "
msgstr ""
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:649
+#: order/models.py:653
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:652 order/models.py:1204
-#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828
+#: order/models.py:656 order/models.py:1208
+#: templates/js/translated/order.js:2860 templates/js/translated/order.js:3022
msgid "Shipment Date"
msgstr ""
-#: order/models.py:659
+#: order/models.py:663
msgid "shipped by"
msgstr ""
-#: order/models.py:714
+#: order/models.py:718
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:718
+#: order/models.py:722
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:721
+#: order/models.py:725 templates/js/translated/order.js:419
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:724
+#: order/models.py:728
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:898
+#: order/models.py:902
msgid "Item quantity"
msgstr ""
-#: order/models.py:904
+#: order/models.py:908
msgid "Line item reference"
msgstr ""
-#: order/models.py:906
+#: order/models.py:910
msgid "Line item notes"
msgstr ""
-#: order/models.py:911
+#: order/models.py:915
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:929
+#: order/models.py:933
msgid "Context"
msgstr ""
-#: order/models.py:930
+#: order/models.py:934
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:939
+#: order/models.py:943
msgid "Unit price"
msgstr ""
-#: order/models.py:969
+#: order/models.py:973
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:977
+#: order/models.py:981
msgid "deleted"
msgstr ""
-#: order/models.py:983 order/models.py:1063 order/models.py:1104
-#: order/models.py:1198 order/models.py:1330
-#: templates/js/translated/order.js:3284
+#: order/models.py:987 order/models.py:1067 order/models.py:1108
+#: order/models.py:1202 order/models.py:1334
+#: templates/js/translated/order.js:3478
msgid "Order"
msgstr ""
-#: order/models.py:984 order/models.py:1063
+#: order/models.py:988 order/models.py:1067
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:179
+#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
-#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042
-#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972
-#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540
+#: templates/js/translated/order.js:619 templates/js/translated/order.js:1136
+#: templates/js/translated/order.js:1959 templates/js/translated/part.js:970
+#: templates/js/translated/stock.js:1909 templates/js/translated/stock.js:2536
msgid "Purchase Order"
msgstr "Đơn hàng"
-#: order/models.py:1002
+#: order/models.py:1006
msgid "Supplier part"
msgstr ""
-#: order/models.py:1009 order/templates/order/order_base.html:172
-#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105
+#: order/models.py:1013 order/templates/order/order_base.html:178
+#: templates/js/translated/order.js:1641 templates/js/translated/order.js:2373
+#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1125
#: templates/js/translated/table_filters.js:338
msgid "Received"
msgstr ""
-#: order/models.py:1010
+#: order/models.py:1014
msgid "Number of items received"
msgstr ""
-#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734
-#: stock/serializers.py:169 stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1964
+#: order/models.py:1021 part/templates/part/prices.html:181 stock/models.py:734
+#: stock/serializers.py:169 stock/templates/stock/item_base.html:189
+#: templates/js/translated/stock.js:1960
msgid "Purchase Price"
msgstr "Giá mua"
-#: order/models.py:1018
+#: order/models.py:1022
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1026
+#: order/models.py:1030
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1092
+#: order/models.py:1096
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1097
+#: order/models.py:1101
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1123 part/templates/part/part_pricing.html:115
+#: order/models.py:1127 part/templates/part/part_pricing.html:115
#: part/templates/part/prices.html:121 part/templates/part/prices.html:290
msgid "Sale Price"
msgstr ""
-#: order/models.py:1124
+#: order/models.py:1128
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1129
+#: order/models.py:1133
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1205
+#: order/models.py:1209
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1212
+#: order/models.py:1216
msgid "Checked By"
msgstr ""
-#: order/models.py:1213
+#: order/models.py:1217
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1220 order/models.py:1405 order/serializers.py:1170
-#: order/serializers.py:1294 templates/js/translated/model_renderers.js:314
+#: order/models.py:1224 order/models.py:1409 order/serializers.py:1224
+#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314
msgid "Shipment"
msgstr ""
-#: order/models.py:1221
+#: order/models.py:1225
msgid "Shipment number"
msgstr ""
-#: order/models.py:1225
+#: order/models.py:1229
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1231
+#: order/models.py:1235
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1232
+#: order/models.py:1236
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1239
+#: order/models.py:1243
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1240
+#: order/models.py:1244
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1258
+#: order/models.py:1262
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1261
+#: order/models.py:1265
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1364 order/models.py:1366
+#: order/models.py:1368 order/models.py:1370
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1370
+#: order/models.py:1374
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1372
+#: order/models.py:1376
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1375
+#: order/models.py:1379
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1385 order/serializers.py:1066
+#: order/models.py:1389 order/serializers.py:1086
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1388
+#: order/models.py:1392
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1389
+#: order/models.py:1393
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1397
+#: order/models.py:1401
msgid "Line"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1410
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1419 templates/js/translated/notification.js:55
+#: order/models.py:1423 templates/js/translated/notification.js:55
msgid "Item"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1424
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1423
+#: order/models.py:1427
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3853,111 +3873,119 @@ msgstr ""
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:294
+#: order/serializers.py:209 order/serializers.py:1104
+msgid "Allow order to be closed with incomplete line items"
+msgstr ""
+
+#: order/serializers.py:220 order/serializers.py:1115
+msgid "Order has incomplete line items"
+msgstr ""
+
+#: order/serializers.py:311
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:318
+#: order/serializers.py:335
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:354
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:342
+#: order/serializers.py:359
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:348
+#: order/serializers.py:365
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:349
+#: order/serializers.py:366
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:413 order/serializers.py:1138
+#: order/serializers.py:430 order/serializers.py:1192
msgid "Line Item"
msgstr ""
-#: order/serializers.py:419
+#: order/serializers.py:436
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:429 order/serializers.py:533
+#: order/serializers.py:446 order/serializers.py:553
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:448 templates/js/translated/order.js:1354
+#: order/serializers.py:465 templates/js/translated/order.js:1497
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:456 templates/js/translated/order.js:1365
+#: order/serializers.py:473 templates/js/translated/order.js:1508
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:469
+#: order/serializers.py:486
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:470
+#: order/serializers.py:487
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:484
+#: order/serializers.py:501
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:507
+#: order/serializers.py:527
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:549
+#: order/serializers.py:569
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:566
+#: order/serializers.py:586
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:577
+#: order/serializers.py:597
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:883
+#: order/serializers.py:903
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:964
+#: order/serializers.py:984
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1027 order/serializers.py:1147
+#: order/serializers.py:1047 order/serializers.py:1201
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1049
+#: order/serializers.py:1069
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1160
+#: order/serializers.py:1214
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1182 order/serializers.py:1302
+#: order/serializers.py:1236 order/serializers.py:1356
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1185 order/serializers.py:1305
+#: order/serializers.py:1239 order/serializers.py:1359
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1235
+#: order/serializers.py:1289
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1245
+#: order/serializers.py:1299
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3993,83 +4021,83 @@ msgstr ""
msgid "Order actions"
msgstr ""
-#: order/templates/order/order_base.html:45
+#: order/templates/order/order_base.html:46
#: order/templates/order/sales_order_base.html:58
msgid "Edit order"
msgstr ""
-#: order/templates/order/order_base.html:47
+#: order/templates/order/order_base.html:50
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr ""
-#: order/templates/order/order_base.html:50
+#: order/templates/order/order_base.html:55
msgid "Duplicate order"
msgstr ""
-#: order/templates/order/order_base.html:55
+#: order/templates/order/order_base.html:61
msgid "Place order"
msgstr ""
-#: order/templates/order/order_base.html:59
+#: order/templates/order/order_base.html:65
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:61
+#: order/templates/order/order_base.html:67
#: order/templates/order/purchase_order_detail.html:30
msgid "Receive Items"
msgstr ""
-#: order/templates/order/order_base.html:63
+#: order/templates/order/order_base.html:69
msgid "Mark order as complete"
msgstr ""
-#: order/templates/order/order_base.html:65
+#: order/templates/order/order_base.html:71
#: order/templates/order/sales_order_base.html:68
msgid "Complete Order"
msgstr ""
-#: order/templates/order/order_base.html:87
+#: order/templates/order/order_base.html:93
#: order/templates/order/sales_order_base.html:80
msgid "Order Reference"
msgstr ""
-#: order/templates/order/order_base.html:92
+#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:85
msgid "Order Description"
msgstr ""
-#: order/templates/order/order_base.html:97
+#: order/templates/order/order_base.html:103
#: order/templates/order/sales_order_base.html:90
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:120
+#: order/templates/order/order_base.html:126
msgid "No suppplier information available"
msgstr ""
-#: order/templates/order/order_base.html:133
+#: order/templates/order/order_base.html:139
#: order/templates/order/sales_order_base.html:129
msgid "Completed Line Items"
msgstr ""
-#: order/templates/order/order_base.html:139
+#: order/templates/order/order_base.html:145
#: order/templates/order/sales_order_base.html:135
#: order/templates/order/sales_order_base.html:145
msgid "Incomplete"
msgstr ""
-#: order/templates/order/order_base.html:158
+#: order/templates/order/order_base.html:164
#: report/templates/report/inventree_build_order_base.html:121
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:186
+#: order/templates/order/order_base.html:192
#: order/templates/order/sales_order_base.html:190
msgid "Total cost"
msgstr ""
-#: order/templates/order/order_base.html:190
+#: order/templates/order/order_base.html:196
#: order/templates/order/sales_order_base.html:194
msgid "Total cost could not be calculated"
msgstr ""
@@ -4102,8 +4130,8 @@ msgstr ""
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463
#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015
-#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443
-#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625
+#: templates/js/translated/order.js:1084 templates/js/translated/order.js:1586
+#: templates/js/translated/order.js:3097 templates/js/translated/stock.js:625
#: templates/js/translated/stock.js:793
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
@@ -4139,7 +4167,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:26
#: order/templates/order/sales_order_detail.html:22
#: order/templates/order/sales_order_detail.html:255
-#: templates/js/translated/order.js:663
+#: templates/js/translated/order.js:728
msgid "Add Line Item"
msgstr ""
@@ -4167,7 +4195,7 @@ msgstr ""
msgid "Order Notes"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:228
+#: order/templates/order/purchase_order_detail.html:232
msgid "Add Order Line"
msgstr ""
@@ -4185,12 +4213,12 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:231
+#: templates/js/translated/order.js:232
msgid "Complete Shipments"
msgstr ""
#: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:258
+#: templates/js/translated/order.js:397
msgid "Complete Sales Order"
msgstr ""
@@ -4199,7 +4227,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2632
+#: templates/js/translated/order.js:2826
msgid "Customer Reference"
msgstr ""
@@ -4223,7 +4251,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:72
-#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1116
#: templates/js/translated/build.js:1923
msgid "Actions"
msgstr ""
@@ -4308,14 +4336,14 @@ msgid "Total Stock"
msgstr ""
#: part/bom.py:129 part/templates/part/part_base.html:189
-#: templates/js/translated/order.js:3724
+#: templates/js/translated/order.js:3918
msgid "Available Stock"
msgstr ""
#: part/bom.py:130 part/templates/part/part_base.html:207
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853
-#: templates/js/translated/part.js:590 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503
+#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1853
+#: templates/js/translated/part.js:588 templates/js/translated/part.js:608
+#: templates/js/translated/part.js:1337 templates/js/translated/part.js:1520
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr ""
@@ -4344,7 +4372,7 @@ msgstr ""
msgid "Icon (optional)"
msgstr ""
-#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16
+#: part/models.py:122 part/models.py:2516 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -4361,7 +4389,7 @@ msgstr ""
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146
+#: templates/js/translated/part.js:2004 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr "Nguyên liệu"
@@ -4391,7 +4419,7 @@ msgstr ""
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:745 part/models.py:2562
+#: part/models.py:745 part/models.py:2570
msgid "Part name"
msgstr ""
@@ -4424,11 +4452,11 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:783 part/models.py:2257 part/models.py:2507
+#: part/models.py:783 part/models.py:2265 part/models.py:2515
#: part/templates/part/part_base.html:257
#: templates/InvenTree/settings/settings.html:232
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688
+#: templates/js/translated/part.js:1477 templates/js/translated/part.js:1717
msgid "Category"
msgstr ""
@@ -4437,7 +4465,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:789 part/templates/part/part_base.html:266
-#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:1430
#: templates/js/translated/stock.js:1726
msgid "IPN"
msgstr ""
@@ -4451,7 +4479,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:797 part/templates/part/part_base.html:273
-#: report/models.py:171 templates/js/translated/part.js:743
+#: report/models.py:171 templates/js/translated/part.js:741
msgid "Revision"
msgstr ""
@@ -4543,245 +4571,245 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2304
+#: part/models.py:2312
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2321
+#: part/models.py:2329
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2341 templates/js/translated/part.js:2026
+#: part/models.py:2349 templates/js/translated/part.js:2055
#: templates/js/translated/stock.js:1340
msgid "Test Name"
msgstr ""
-#: part/models.py:2342
+#: part/models.py:2350
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2347
+#: part/models.py:2355
msgid "Test Description"
msgstr ""
-#: part/models.py:2348
+#: part/models.py:2356
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2353 templates/js/translated/part.js:2035
+#: part/models.py:2361 templates/js/translated/part.js:2064
#: templates/js/translated/table_filters.js:302
msgid "Required"
msgstr ""
-#: part/models.py:2354
+#: part/models.py:2362
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2359 templates/js/translated/part.js:2043
+#: part/models.py:2367 templates/js/translated/part.js:2072
msgid "Requires Value"
msgstr ""
-#: part/models.py:2360
+#: part/models.py:2368
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2365 templates/js/translated/part.js:2050
+#: part/models.py:2373 templates/js/translated/part.js:2079
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2366
+#: part/models.py:2374
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2374
+#: part/models.py:2382
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2410
+#: part/models.py:2418
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2418
+#: part/models.py:2426
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2433
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2430
+#: part/models.py:2438
msgid "Parameter description"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2471
msgid "Parent Part"
msgstr ""
-#: part/models.py:2465 part/models.py:2513 part/models.py:2514
+#: part/models.py:2473 part/models.py:2521 part/models.py:2522
#: templates/InvenTree/settings/settings.html:227
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Data"
msgstr ""
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2518 templates/InvenTree/settings/settings.html:236
+#: part/models.py:2526 templates/InvenTree/settings/settings.html:236
msgid "Default Value"
msgstr ""
-#: part/models.py:2519
+#: part/models.py:2527
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2554
+#: part/models.py:2562
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2557 templates/js/translated/model_renderers.js:212
+#: part/models.py:2565 templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr ""
-#: part/models.py:2558
+#: part/models.py:2566
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2561
+#: part/models.py:2569
msgid "Part Name"
msgstr ""
-#: part/models.py:2565
+#: part/models.py:2573
msgid "Part IPN"
msgstr ""
-#: part/models.py:2566
+#: part/models.py:2574
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2569
+#: part/models.py:2577
msgid "Level"
msgstr ""
-#: part/models.py:2570
+#: part/models.py:2578
msgid "BOM level"
msgstr ""
-#: part/models.py:2639
+#: part/models.py:2647
msgid "Select parent part"
msgstr ""
-#: part/models.py:2647
+#: part/models.py:2655
msgid "Sub part"
msgstr ""
-#: part/models.py:2648
+#: part/models.py:2656
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2654
+#: part/models.py:2662
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2656 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997
+#: part/models.py:2664 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:876 templates/js/translated/bom.js:1005
#: templates/js/translated/table_filters.js:100
msgid "Optional"
msgstr ""
-#: part/models.py:2656
+#: part/models.py:2664
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2659 part/templates/part/upload_bom.html:55
+#: part/models.py:2667 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2660
+#: part/models.py:2668
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2671
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2666
+#: part/models.py:2674
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "Checksum"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2672 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1014
+#: part/models.py:2680 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:1022
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:96
msgid "Inherited"
msgstr ""
-#: part/models.py:2673
+#: part/models.py:2681
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2678 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1006
+#: part/models.py:2686 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:1014
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2679
+#: part/models.py:2687
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2757 stock/models.py:468
+#: part/models.py:2765 stock/models.py:468
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2766 part/models.py:2768
+#: part/models.py:2774 part/models.py:2776
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2873
+#: part/models.py:2881
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2902
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2915
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2923
msgid "Substitute part"
msgstr ""
-#: part/models.py:2930
+#: part/models.py:2938
msgid "Part 1"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Part 2"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2960
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:2956
+#: part/models.py:2964
msgid "Duplicate relationship already exists"
msgstr ""
@@ -5309,10 +5337,10 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:624
-#: templates/js/translated/company.js:884
+#: templates/js/translated/company.js:659
+#: templates/js/translated/company.js:920
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:654 templates/js/translated/part.js:731
+#: templates/js/translated/part.js:652 templates/js/translated/part.js:729
msgid "Inactive"
msgstr ""
@@ -5327,28 +5355,28 @@ msgid "This part is a variant of %(link)s"
msgstr ""
#: part/templates/part/part_base.html:194
-#: templates/js/translated/company.js:974
+#: templates/js/translated/company.js:1027
#: templates/js/translated/table_filters.js:201
msgid "In Stock"
msgstr ""
#: part/templates/part/part_base.html:215
-#: stock/templates/stock/item_base.html:379
+#: stock/templates/stock/item_base.html:382
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:224
-#: stock/templates/stock/item_base.html:372
+#: stock/templates/stock/item_base.html:375
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1043
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320
-#: templates/js/translated/part.js:1510
+#: part/templates/part/part_base.html:238 templates/js/translated/part.js:591
+#: templates/js/translated/part.js:611 templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1527
msgid "Building"
msgstr ""
@@ -5361,7 +5389,7 @@ msgid "Latest Serial Number"
msgstr "Số seri mới nhất"
#: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:328
+#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
@@ -5400,7 +5428,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:989
+#: templates/js/translated/bom.js:997
msgid "No supplier pricing available"
msgstr ""
@@ -5439,7 +5467,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:53
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468
+#: templates/js/translated/order.js:2001 templates/js/translated/stock.js:2464
msgid "Date"
msgstr ""
@@ -5495,7 +5523,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983
+#: part/templates/part/prices.html:160 templates/js/translated/bom.js:991
msgid "Supplier Cost"
msgstr ""
@@ -5533,8 +5561,8 @@ msgstr ""
msgid "No sale pice history available for this part."
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616
-#: templates/js/translated/part.js:1308
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:614
+#: templates/js/translated/part.js:1329 templates/js/translated/part.js:1331
msgid "No Stock"
msgstr ""
@@ -5735,19 +5763,19 @@ msgstr ""
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:186
+#: plugin/models.py:188
msgid "Plugin"
msgstr ""
-#: plugin/models.py:249
+#: plugin/models.py:253
msgid "Method"
msgstr ""
-#: plugin/plugin.py:251
+#: plugin/plugin.py:252
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:263
+#: plugin/plugin.py:264
msgid "No date found"
msgstr ""
@@ -5925,12 +5953,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:648 stock/templates/stock/item_base.html:317
+#: stock/models.py:648 stock/templates/stock/item_base.html:320
#: templates/js/translated/build.js:456 templates/js/translated/build.js:608
#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706
#: templates/js/translated/model_renderers.js:118
-#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403
-#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490
+#: templates/js/translated/order.js:121 templates/js/translated/order.js:3597
+#: templates/js/translated/order.js:3684 templates/js/translated/stock.js:490
msgid "Serial Number"
msgstr ""
@@ -5963,7 +5991,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780
-#: templates/js/translated/stock.js:2717
+#: templates/js/translated/stock.js:2713
msgid "Serial"
msgstr ""
@@ -5980,7 +6008,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
#: stock/models.py:89 stock/models.py:739
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:250
msgid "Owner"
msgstr ""
@@ -6046,7 +6074,7 @@ msgstr ""
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:631 stock/templates/stock/item_base.html:356
+#: stock/models.py:631 stock/templates/stock/item_base.html:359
msgid "Installed In"
msgstr ""
@@ -6086,8 +6114,8 @@ msgstr ""
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:706 stock/templates/stock/item_base.html:424
-#: templates/js/translated/stock.js:1883
+#: stock/models.py:706 stock/templates/stock/item_base.html:427
+#: templates/js/translated/stock.js:1879
msgid "Expiry Date"
msgstr ""
@@ -6379,7 +6407,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2857
msgid "Install Stock Item"
msgstr ""
@@ -6479,134 +6507,135 @@ msgstr ""
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:158
+#: stock/templates/stock/item_base.html:161
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:193
+#: stock/templates/stock/item_base.html:196
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:214
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:254
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/location.html:132
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:268
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:266
+#: stock/templates/stock/item_base.html:269
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:279
+#: stock/templates/stock/item_base.html:282
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:290
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:298
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:301
+#: stock/templates/stock/item_base.html:304
msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
msgstr ""
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:345
+#: stock/templates/stock/item_base.html:348
msgid "Available Quantity"
msgstr ""
-#: stock/templates/stock/item_base.html:389
+#: stock/templates/stock/item_base.html:392
#: templates/js/translated/build.js:1729
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:404
+#: stock/templates/stock/item_base.html:407
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#: templates/js/translated/table_filters.js:269
msgid "Expired"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:275
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:437
-#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899
+#: stock/templates/stock/item_base.html:440
+#: templates/js/translated/company.js:1038
+#: templates/js/translated/stock.js:1895
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:442
+#: stock/templates/stock/item_base.html:445
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:516
+#: stock/templates/stock/item_base.html:519
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:589
+#: stock/templates/stock/item_base.html:592
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:592
+#: stock/templates/stock/item_base.html:595
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:593
+#: stock/templates/stock/item_base.html:596
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:601
+#: stock/templates/stock/item_base.html:604
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:629
+#: stock/templates/stock/item_base.html:632
msgid "Return to Stock"
msgstr ""
@@ -6739,11 +6768,11 @@ msgstr ""
msgid "Refer to the error log in the admin interface for further details"
msgstr ""
-#: templates/503.html:11 templates/503.html:36
+#: templates/503.html:11 templates/503.html:34
msgid "Site is in Maintenance"
msgstr ""
-#: templates/503.html:42
+#: templates/503.html:40
msgid "The site is currently in maintenance and should be up again soon!"
msgstr ""
@@ -7509,7 +7538,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:644
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr ""
@@ -7728,7 +7757,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1481
+#: templates/js/translated/bom.js:1489
msgid "Required Quantity"
msgstr ""
@@ -7742,7 +7771,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2522
+#: templates/js/translated/part.js:2551
msgid "Minimum Quantity"
msgstr ""
@@ -7947,7 +7976,7 @@ msgstr ""
#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620
#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601
#: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003
-#: templates/js/translated/order.js:1085 templates/modals.html:15
+#: templates/js/translated/order.js:1179 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -7957,12 +7986,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145
+#: templates/js/translated/order.js:960 templates/js/translated/tables.js:145
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:867
+#: templates/js/translated/order.js:961
msgid "Select file format"
msgstr ""
@@ -8058,73 +8087,73 @@ msgstr ""
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857
-#: templates/js/translated/order.js:3738
+#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1857
+#: templates/js/translated/order.js:3932
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861
+#: templates/js/translated/bom.js:940 templates/js/translated/build.js:1861
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516
+#: templates/js/translated/bom.js:942 templates/js/translated/build.js:1863
+#: templates/js/translated/part.js:761 templates/js/translated/part.js:1533
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865
+#: templates/js/translated/bom.js:944 templates/js/translated/build.js:1865
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:954
+#: templates/js/translated/bom.js:962
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:969
+#: templates/js/translated/bom.js:977
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:976
+#: templates/js/translated/bom.js:984
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145
+#: templates/js/translated/bom.js:1033 templates/js/translated/bom.js:1153
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1052
+#: templates/js/translated/bom.js:1060
msgid "Including On Order"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1124
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1118
+#: templates/js/translated/bom.js:1126
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1120
+#: templates/js/translated/bom.js:1128
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284
+#: templates/js/translated/bom.js:1130 templates/js/translated/bom.js:1292
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1124
+#: templates/js/translated/bom.js:1132
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650
+#: templates/js/translated/bom.js:1228 templates/js/translated/build.js:1650
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789
+#: templates/js/translated/bom.js:1472 templates/js/translated/build.js:1789
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1486
+#: templates/js/translated/bom.js:1498
msgid "Inherited from parent BOM"
msgstr ""
@@ -8267,12 +8296,12 @@ msgid "No required tests for this build"
msgstr ""
#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697
-#: templates/js/translated/order.js:3438
+#: templates/js/translated/order.js:3632
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698
-#: templates/js/translated/order.js:3439
+#: templates/js/translated/order.js:3633
msgid "Delete stock allocation"
msgstr ""
@@ -8292,20 +8321,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745
+#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3939
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743
+#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3937
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127
-#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757
+#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3951
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837
+#: templates/js/translated/build.js:1930 templates/js/translated/order.js:4031
msgid "Build stock"
msgstr ""
@@ -8313,21 +8342,21 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830
+#: templates/js/translated/build.js:1937 templates/js/translated/order.js:4024
msgid "Allocate stock"
msgstr ""
#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965
+#: templates/js/translated/order.js:1007 templates/js/translated/order.js:3159
#: templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966
+#: templates/js/translated/build.js:1977 templates/js/translated/order.js:3160
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914
+#: templates/js/translated/build.js:2026 templates/js/translated/order.js:3108
msgid "Specify stock allocation quantity"
msgstr ""
@@ -8339,7 +8368,7 @@ msgstr ""
msgid "All selected parts have been fully allocated"
msgstr ""
-#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980
+#: templates/js/translated/build.js:2115 templates/js/translated/order.js:3174
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
@@ -8347,11 +8376,11 @@ msgstr ""
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077
+#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3271
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154
+#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3348
msgid "No matching stock items"
msgstr ""
@@ -8383,9 +8412,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401
-#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1422
+#: templates/js/translated/part.js:1948 templates/js/translated/stock.js:1686
+#: templates/js/translated/stock.js:2382
msgid "Select"
msgstr ""
@@ -8397,7 +8426,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647
+#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2643
msgid "No user information"
msgstr ""
@@ -8405,111 +8434,115 @@ msgstr ""
msgid "No parts allocated for"
msgstr ""
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:179
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:181
msgid "Add Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
msgid "Edit Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:167 templates/js/translated/order.js:511
+#: templates/js/translated/company.js:169 templates/js/translated/order.js:576
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:195 templates/js/translated/order.js:734
+#: templates/js/translated/company.js:197 templates/js/translated/order.js:828
msgid "Add Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:262
+#: templates/js/translated/company.js:297
msgid "All selected supplier parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:278
+#: templates/js/translated/company.js:313
msgid "Delete Supplier Parts"
msgstr ""
-#: templates/js/translated/company.js:350
+#: templates/js/translated/company.js:385
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:427
+#: templates/js/translated/company.js:462
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:471
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:451
+#: templates/js/translated/company.js:486
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:492
+#: templates/js/translated/company.js:527
msgid "All selected manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:507
+#: templates/js/translated/company.js:542
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:541
+#: templates/js/translated/company.js:576
msgid "All selected parameters will be deleted"
msgstr ""
-#: templates/js/translated/company.js:555
+#: templates/js/translated/company.js:590
msgid "Delete Parameters"
msgstr ""
-#: templates/js/translated/company.js:596
+#: templates/js/translated/company.js:631
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:616
-#: templates/js/translated/company.js:876 templates/js/translated/part.js:638
-#: templates/js/translated/part.js:723
+#: templates/js/translated/company.js:651
+#: templates/js/translated/company.js:912 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:721
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:620
-#: templates/js/translated/company.js:880 templates/js/translated/part.js:642
-#: templates/js/translated/part.js:727
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:916 templates/js/translated/part.js:640
+#: templates/js/translated/part.js:725
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:748 templates/js/translated/part.js:830
+#: templates/js/translated/company.js:783 templates/js/translated/part.js:828
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:785 templates/js/translated/part.js:872
+#: templates/js/translated/company.js:820 templates/js/translated/part.js:870
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:786 templates/js/translated/part.js:873
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:871
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:805 templates/js/translated/part.js:890
+#: templates/js/translated/company.js:840 templates/js/translated/part.js:888
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:816 templates/js/translated/part.js:902
+#: templates/js/translated/company.js:851 templates/js/translated/part.js:900
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:856
+#: templates/js/translated/company.js:891
msgid "No supplier parts found"
msgstr ""
-#: templates/js/translated/company.js:1002
+#: templates/js/translated/company.js:1032
+msgid "Availability"
+msgstr ""
+
+#: templates/js/translated/company.js:1055
msgid "Edit supplier part"
msgstr ""
-#: templates/js/translated/company.js:1003
+#: templates/js/translated/company.js:1056
msgid "Delete supplier part"
msgstr ""
@@ -8547,61 +8580,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:367 templates/js/translated/forms.js:382
-#: templates/js/translated/forms.js:396 templates/js/translated/forms.js:410
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:369
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:384
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:398
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:670
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:771
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1269 templates/modals.html:19
+#: templates/js/translated/forms.js:1274 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1702
+#: templates/js/translated/forms.js:1707
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1917 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2170
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2648
+#: templates/js/translated/forms.js:2653
msgid "Select Columns"
msgstr ""
@@ -8792,409 +8825,422 @@ msgstr ""
msgid "Notifications will load here"
msgstr ""
-#: templates/js/translated/order.js:96
+#: templates/js/translated/order.js:97
msgid "No stock items have been allocated to this shipment"
msgstr ""
-#: templates/js/translated/order.js:101
+#: templates/js/translated/order.js:102
msgid "The following stock items will be shipped"
msgstr ""
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:142
msgid "Complete Shipment"
msgstr ""
-#: templates/js/translated/order.js:161
+#: templates/js/translated/order.js:162
msgid "Confirm Shipment"
msgstr ""
-#: templates/js/translated/order.js:217
+#: templates/js/translated/order.js:218
msgid "No pending shipments found"
msgstr ""
-#: templates/js/translated/order.js:221
+#: templates/js/translated/order.js:222
msgid "No stock items have been allocated to pending shipments"
msgstr ""
-#: templates/js/translated/order.js:253
+#: templates/js/translated/order.js:254
msgid "Skip"
msgstr ""
-#: templates/js/translated/order.js:283
+#: templates/js/translated/order.js:284
msgid "Complete Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:289
+#: templates/js/translated/order.js:301 templates/js/translated/order.js:413
msgid "Mark this order as complete?"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:307
msgid "All line items have been received"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:312
msgid "This order has line items which have not been marked as received."
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:313 templates/js/translated/order.js:427
msgid "Completing this order means that the order and line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:324
+#: templates/js/translated/order.js:336
msgid "Cancel Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:329
+#: templates/js/translated/order.js:341
msgid "Are you sure you wish to cancel this purchase order?"
msgstr ""
-#: templates/js/translated/order.js:335
+#: templates/js/translated/order.js:347
msgid "This purchase order can not be cancelled"
msgstr ""
-#: templates/js/translated/order.js:358
+#: templates/js/translated/order.js:370
msgid "Issue Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:363
+#: templates/js/translated/order.js:375
msgid "After placing this purchase order, line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:385
+#: templates/js/translated/order.js:426
+msgid "This order has line items which have not been completed."
+msgstr ""
+
+#: templates/js/translated/order.js:450
msgid "Cancel Sales Order"
msgstr ""
-#: templates/js/translated/order.js:390
+#: templates/js/translated/order.js:455
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:444
+#: templates/js/translated/order.js:509
msgid "Create New Shipment"
msgstr ""
-#: templates/js/translated/order.js:469
+#: templates/js/translated/order.js:534
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:494
+#: templates/js/translated/order.js:559
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:555
+#: templates/js/translated/order.js:620
msgid "Select purchase order to duplicate"
msgstr ""
-#: templates/js/translated/order.js:562
+#: templates/js/translated/order.js:627
msgid "Duplicate Line Items"
msgstr ""
-#: templates/js/translated/order.js:563
+#: templates/js/translated/order.js:628
msgid "Duplicate all line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:570
+#: templates/js/translated/order.js:635
msgid "Duplicate Extra Lines"
msgstr ""
-#: templates/js/translated/order.js:571
+#: templates/js/translated/order.js:636
msgid "Duplicate extra line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:588
+#: templates/js/translated/order.js:653
msgid "Edit Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:605
+#: templates/js/translated/order.js:670
msgid "Duplication Options"
msgstr ""
-#: templates/js/translated/order.js:863
+#: templates/js/translated/order.js:957
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:914
+#: templates/js/translated/order.js:1008
msgid "At least one purchaseable part must be selected"
msgstr ""
-#: templates/js/translated/order.js:939
+#: templates/js/translated/order.js:1033
msgid "Quantity to order"
msgstr ""
-#: templates/js/translated/order.js:948
+#: templates/js/translated/order.js:1042
msgid "New supplier part"
msgstr ""
-#: templates/js/translated/order.js:966
+#: templates/js/translated/order.js:1060
msgid "New purchase order"
msgstr ""
-#: templates/js/translated/order.js:999
+#: templates/js/translated/order.js:1093
msgid "Add to purchase order"
msgstr ""
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1233
msgid "No matching supplier parts"
msgstr ""
-#: templates/js/translated/order.js:1123
+#: templates/js/translated/order.js:1252
msgid "No matching purchase orders"
msgstr ""
-#: templates/js/translated/order.js:1300
+#: templates/js/translated/order.js:1429
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1430
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420
+#: templates/js/translated/order.js:1450 templates/js/translated/order.js:1563
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431
+#: templates/js/translated/order.js:1456 templates/js/translated/order.js:1574
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1339
+#: templates/js/translated/order.js:1471
+msgid "Received Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:1482
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144
+#: templates/js/translated/order.js:1546 templates/js/translated/stock.js:2140
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:1494
+#: templates/js/translated/order.js:1639
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:1495
+#: templates/js/translated/order.js:1640
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:1497
+#: templates/js/translated/order.js:1642
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:1516
+#: templates/js/translated/order.js:1661
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:1517
+#: templates/js/translated/order.js:1662
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943
+#: templates/js/translated/order.js:1940 templates/js/translated/part.js:941
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2803
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674
-#: templates/js/translated/order.js:2815
+#: templates/js/translated/order.js:2017 templates/js/translated/order.js:2868
+#: templates/js/translated/order.js:3009
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889
+#: templates/js/translated/order.js:2115 templates/js/translated/order.js:4083
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911
+#: templates/js/translated/order.js:2132 templates/js/translated/order.js:4105
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:4116
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:2026
+#: templates/js/translated/order.js:2188
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:2215 templates/js/translated/order.js:3817
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309
-#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156
-#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753
+#: templates/js/translated/order.js:2270 templates/js/translated/part.js:1043
+#: templates/js/translated/part.js:1095
+msgid "Total Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:2301 templates/js/translated/order.js:2503
+#: templates/js/translated/order.js:3842 templates/js/translated/order.js:4350
+#: templates/js/translated/part.js:2184 templates/js/translated/part.js:2782
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325
-#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172
+#: templates/js/translated/order.js:2316 templates/js/translated/order.js:2519
+#: templates/js/translated/order.js:3858 templates/js/translated/order.js:4366
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706
-#: templates/js/translated/part.js:1070
+#: templates/js/translated/order.js:2357 templates/js/translated/order.js:3900
+#: templates/js/translated/part.js:1079
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110
+#: templates/js/translated/order.js:2416 templates/js/translated/part.js:1130
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2420 templates/js/translated/order.js:4037
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844
+#: templates/js/translated/order.js:2421 templates/js/translated/order.js:4038
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848
+#: templates/js/translated/order.js:2422 templates/js/translated/order.js:4042
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221
+#: templates/js/translated/order.js:2568 templates/js/translated/order.js:4415
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222
+#: templates/js/translated/order.js:2569 templates/js/translated/order.js:4416
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223
+#: templates/js/translated/order.js:2570 templates/js/translated/order.js:4417
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253
+#: templates/js/translated/order.js:2600 templates/js/translated/order.js:4447
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274
+#: templates/js/translated/order.js:2621 templates/js/translated/order.js:4468
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285
+#: templates/js/translated/order.js:2632 templates/js/translated/order.js:4479
msgid "Delete Line"
msgstr ""
-#: templates/js/translated/order.js:2449
+#: templates/js/translated/order.js:2643
msgid "No matching line"
msgstr ""
-#: templates/js/translated/order.js:2560
+#: templates/js/translated/order.js:2754
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:2623
+#: templates/js/translated/order.js:2817
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:2721
+#: templates/js/translated/order.js:2915
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:2724
+#: templates/js/translated/order.js:2918
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:2729
+#: templates/js/translated/order.js:2923
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:2749
+#: templates/js/translated/order.js:2943
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:2766
+#: templates/js/translated/order.js:2960
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:2800
+#: templates/js/translated/order.js:2994
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:2810
+#: templates/js/translated/order.js:3004
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:2834
+#: templates/js/translated/order.js:3028
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:2840
+#: templates/js/translated/order.js:3034
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:2844
+#: templates/js/translated/order.js:3038
msgid "Invoice"
msgstr ""
-#: templates/js/translated/order.js:3013
+#: templates/js/translated/order.js:3207
msgid "Add Shipment"
msgstr ""
-#: templates/js/translated/order.js:3064
+#: templates/js/translated/order.js:3258
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/order.js:3065
+#: templates/js/translated/order.js:3259
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:3273
+#: templates/js/translated/order.js:3467
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:3352
+#: templates/js/translated/order.js:3546
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3369
+#: templates/js/translated/order.js:3563
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:3370
+#: templates/js/translated/order.js:3564
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504
+#: templates/js/translated/order.js:3609 templates/js/translated/order.js:3698
#: templates/js/translated/stock.js:1602
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513
+#: templates/js/translated/order.js:3617 templates/js/translated/order.js:3707
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3827
+#: templates/js/translated/order.js:4021
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3833
+#: templates/js/translated/order.js:4027
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038
+#: templates/js/translated/order.js:4034 templates/js/translated/order.js:4232
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3852
+#: templates/js/translated/order.js:4046
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3855
+#: templates/js/translated/order.js:4049
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3937
+#: templates/js/translated/order.js:4131
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:4046
+#: templates/js/translated/order.js:4240
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:4060
+#: templates/js/translated/order.js:4254
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4296
+#: templates/js/translated/order.js:4490
msgid "No matching lines"
msgstr ""
@@ -9374,173 +9420,177 @@ msgstr ""
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498
+#: templates/js/translated/part.js:584 templates/js/translated/part.js:1515
#: templates/js/translated/table_filters.js:468
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:596
+#: templates/js/translated/part.js:594
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:715
+#: templates/js/translated/part.js:628 templates/js/translated/part.js:713
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:634 templates/js/translated/part.js:719
+#: templates/js/translated/part.js:632 templates/js/translated/part.js:717
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:646
+#: templates/js/translated/part.js:644
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:650
+#: templates/js/translated/part.js:648
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:778
+#: templates/js/translated/part.js:776
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1180
+#: templates/js/translated/part.js:1200
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1204
+#: templates/js/translated/part.js:1224
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573
+#: templates/js/translated/part.js:1291 templates/js/translated/part.js:1602
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1310
-msgid "Not available"
-msgstr ""
-
-#: templates/js/translated/part.js:1461
+#: templates/js/translated/part.js:1482
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1496
+#: templates/js/translated/part.js:1513
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840
-#: templates/js/translated/stock.js:2347
+#: templates/js/translated/part.js:1537
+msgid "Allocated to build orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1541
+msgid "Allocated to sales orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1626 templates/js/translated/part.js:1869
+#: templates/js/translated/stock.js:2343
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1613
+#: templates/js/translated/part.js:1642
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1679
+#: templates/js/translated/part.js:1708
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1684
+#: templates/js/translated/part.js:1713
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:1689
+#: templates/js/translated/part.js:1718
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1702
+#: templates/js/translated/part.js:1731
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366
+#: templates/js/translated/part.js:1888 templates/js/translated/stock.js:2362
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1938
+#: templates/js/translated/part.js:1967
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:1954
+#: templates/js/translated/part.js:1983
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2012
+#: templates/js/translated/part.js:2041
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299
+#: templates/js/translated/part.js:2092 templates/js/translated/stock.js:1299
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300
+#: templates/js/translated/part.js:2093 templates/js/translated/stock.js:1300
#: templates/js/translated/stock.js:1560
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2070
+#: templates/js/translated/part.js:2099
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2092
+#: templates/js/translated/part.js:2121
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2106
+#: templates/js/translated/part.js:2135
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2131
+#: templates/js/translated/part.js:2160
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:2188
+#: templates/js/translated/part.js:2217
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2189
+#: templates/js/translated/part.js:2218
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355
+#: templates/js/translated/part.js:2383 templates/js/translated/part.js:2384
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2357
+#: templates/js/translated/part.js:2386
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2363
+#: templates/js/translated/part.js:2392
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2413
+#: templates/js/translated/part.js:2442
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2419
+#: templates/js/translated/part.js:2448
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2515
+#: templates/js/translated/part.js:2544
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2531
+#: templates/js/translated/part.js:2560
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2576
+#: templates/js/translated/part.js:2605
msgid "Minimum Stock Level"
msgstr ""
-#: templates/js/translated/part.js:2677
+#: templates/js/translated/part.js:2706
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:2696
+#: templates/js/translated/part.js:2725
msgid "Single Price Difference"
msgstr ""
@@ -9778,7 +9828,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:942 users/models.py:216
+#: templates/js/translated/stock.js:942 users/models.py:218
msgid "Add"
msgstr ""
@@ -9854,156 +9904,156 @@ msgstr ""
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1775
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1780
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1787
+#: templates/js/translated/stock.js:1783
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1790
+#: templates/js/translated/stock.js:1786
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1792
+#: templates/js/translated/stock.js:1788
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1794
+#: templates/js/translated/stock.js:1790
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1797
+#: templates/js/translated/stock.js:1793
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1797
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1803
+#: templates/js/translated/stock.js:1799
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1810
+#: templates/js/translated/stock.js:1806
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:1808
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1814
+#: templates/js/translated/stock.js:1810
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1818
+#: templates/js/translated/stock.js:1814
#: templates/js/translated/table_filters.js:196
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1869
+#: templates/js/translated/stock.js:1865
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1948
+#: templates/js/translated/stock.js:1944
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1986
+#: templates/js/translated/stock.js:1982
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2159
+#: templates/js/translated/stock.js:2155
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2173
+#: templates/js/translated/stock.js:2169
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2174
+#: templates/js/translated/stock.js:2170
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2404
+#: templates/js/translated/stock.js:2400
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2493
+#: templates/js/translated/stock.js:2489
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2509
+#: templates/js/translated/stock.js:2505
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2531
+#: templates/js/translated/stock.js:2527
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2550
+#: templates/js/translated/stock.js:2546
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2569
+#: templates/js/translated/stock.js:2565
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2587
+#: templates/js/translated/stock.js:2583
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2610
+#: templates/js/translated/stock.js:2606
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2618
+#: templates/js/translated/stock.js:2614
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2694
+#: templates/js/translated/stock.js:2690
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781
+#: templates/js/translated/stock.js:2741 templates/js/translated/stock.js:2777
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2790
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2815
+#: templates/js/translated/stock.js:2811
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2816
+#: templates/js/translated/stock.js:2812
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2818
+#: templates/js/translated/stock.js:2814
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2819
+#: templates/js/translated/stock.js:2815
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2820
+#: templates/js/translated/stock.js:2816
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2821
+#: templates/js/translated/stock.js:2817
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2834
+#: templates/js/translated/stock.js:2830
msgid "Select part to install"
msgstr ""
@@ -10525,35 +10575,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:203
+#: users/models.py:205
msgid "Permission set"
msgstr ""
-#: users/models.py:211
+#: users/models.py:213
msgid "Group"
msgstr ""
-#: users/models.py:214
+#: users/models.py:216
msgid "View"
msgstr ""
-#: users/models.py:214
+#: users/models.py:216
msgid "Permission to view items"
msgstr ""
-#: users/models.py:216
+#: users/models.py:218
msgid "Permission to add items"
msgstr ""
-#: users/models.py:218
+#: users/models.py:220
msgid "Change"
msgstr ""
-#: users/models.py:218
+#: users/models.py:220
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:222
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po
index 275dbf6c7f..b3e93dfb1e 100644
--- a/InvenTree/locale/zh/LC_MESSAGES/django.po
+++ b/InvenTree/locale/zh/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-08-25 10:08+0000\n"
-"PO-Revision-Date: 2022-08-26 01:55\n"
+"POT-Creation-Date: 2022-09-09 02:44+0000\n"
+"PO-Revision-Date: 2022-09-09 03:57\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Language: zh_CN\n"
@@ -29,9 +29,9 @@ msgstr "在管理面板中可以找到错误详细信息"
msgid "Enter date"
msgstr "输入日期"
-#: InvenTree/fields.py:186 build/serializers.py:384
-#: build/templates/build/sidebar.html:21 company/models.py:523
-#: company/templates/company/sidebar.html:25 order/models.py:906
+#: InvenTree/fields.py:183 build/serializers.py:384
+#: build/templates/build/sidebar.html:21 company/models.py:524
+#: company/templates/company/sidebar.html:25 order/models.py:910
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17
#: part/templates/part/part_sidebar.html:59
@@ -40,11 +40,12 @@ msgstr "输入日期"
#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823
#: stock/serializers.py:922 stock/serializers.py:1054
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1099
-#: templates/js/translated/company.js:964 templates/js/translated/order.js:2210
-#: templates/js/translated/order.js:2361 templates/js/translated/order.js:2859
-#: templates/js/translated/order.js:3810 templates/js/translated/order.js:4208
-#: templates/js/translated/stock.js:1374 templates/js/translated/stock.js:1980
+#: templates/js/translated/barcode.js:100 templates/js/translated/bom.js:1107
+#: templates/js/translated/company.js:1022
+#: templates/js/translated/order.js:2404 templates/js/translated/order.js:2555
+#: templates/js/translated/order.js:3053 templates/js/translated/order.js:4004
+#: templates/js/translated/order.js:4402 templates/js/translated/stock.js:1374
+#: templates/js/translated/stock.js:1976
msgid "Notes"
msgstr "备注"
@@ -210,12 +211,12 @@ msgid "Select file to attach"
msgstr "选择附件"
#: InvenTree/models.py:402 company/models.py:124 company/models.py:276
-#: company/models.py:510 order/models.py:84 order/models.py:1245
+#: company/models.py:511 order/models.py:84 order/models.py:1249
#: part/models.py:802 part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
-#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:948 templates/js/translated/order.js:2848
-#: templates/js/translated/part.js:1534
+#: templates/js/translated/company.js:691
+#: templates/js/translated/company.js:1011
+#: templates/js/translated/order.js:3042 templates/js/translated/part.js:1563
msgid "Link"
msgstr "链接"
@@ -233,12 +234,12 @@ msgstr "注释"
msgid "File comment"
msgstr "文件注释"
-#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1665
-#: common/models.py:1666 common/models.py:1889 common/models.py:1890
-#: common/models.py:2152 common/models.py:2153 part/models.py:2239
-#: part/models.py:2259 plugin/models.py:256 plugin/models.py:257
+#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1669
+#: common/models.py:1670 common/models.py:1893 common/models.py:1894
+#: common/models.py:2156 common/models.py:2157 part/models.py:2247
+#: part/models.py:2267 plugin/models.py:260 plugin/models.py:261
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2641
+#: templates/js/translated/stock.js:2637
msgid "User"
msgstr "用户"
@@ -275,28 +276,28 @@ msgstr "重命名文件出错"
msgid "Invalid choice"
msgstr "选择无效"
-#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1875
+#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1879
#: company/models.py:358 label/models.py:101 part/models.py:746
-#: part/models.py:2417 plugin/models.py:94 report/models.py:152
+#: part/models.py:2425 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin.html:134
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:347
-#: templates/js/translated/company.js:545
-#: templates/js/translated/company.js:758
+#: templates/js/translated/company.js:580
+#: templates/js/translated/company.js:793
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:688 templates/js/translated/part.js:840
-#: templates/js/translated/part.js:1926 templates/js/translated/stock.js:2392
+#: templates/js/translated/part.js:686 templates/js/translated/part.js:838
+#: templates/js/translated/part.js:1955 templates/js/translated/stock.js:2388
msgid "Name"
msgstr "名称"
#: InvenTree/models.py:544 build/models.py:174
#: build/templates/build/detail.html:24 company/models.py:282
-#: company/models.py:516 company/templates/company/company_base.html:71
+#: company/models.py:517 company/templates/company/company_base.html:71
#: company/templates/company/manufacturer_part.html:75
-#: company/templates/company/supplier_part.html:87 label/models.py:108
-#: order/models.py:82 part/models.py:769 part/models.py:2429
+#: company/templates/company/supplier_part.html:92 label/models.py:108
+#: order/models.py:82 part/models.py:769 part/models.py:2437
#: part/templates/part/category.html:80 part/templates/part/part_base.html:167
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
@@ -305,14 +306,14 @@ msgstr "名称"
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/InvenTree/settings/settings.html:358
#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:846
-#: templates/js/translated/build.js:2512 templates/js/translated/company.js:409
-#: templates/js/translated/company.js:667
-#: templates/js/translated/company.js:959 templates/js/translated/order.js:1826
-#: templates/js/translated/order.js:2058 templates/js/translated/order.js:2637
-#: templates/js/translated/part.js:747 templates/js/translated/part.js:1167
-#: templates/js/translated/part.js:1442 templates/js/translated/part.js:1962
-#: templates/js/translated/part.js:2031 templates/js/translated/stock.js:1743
-#: templates/js/translated/stock.js:2424 templates/js/translated/stock.js:2478
+#: templates/js/translated/build.js:2512 templates/js/translated/company.js:444
+#: templates/js/translated/company.js:702
+#: templates/js/translated/company.js:986 templates/js/translated/order.js:1988
+#: templates/js/translated/order.js:2220 templates/js/translated/order.js:2831
+#: templates/js/translated/part.js:745 templates/js/translated/part.js:1187
+#: templates/js/translated/part.js:1463 templates/js/translated/part.js:1991
+#: templates/js/translated/part.js:2060 templates/js/translated/stock.js:1743
+#: templates/js/translated/stock.js:2420 templates/js/translated/stock.js:2474
msgid "Description"
msgstr "描述信息"
@@ -325,7 +326,7 @@ msgid "parent"
msgstr "上级项"
#: InvenTree/models.py:560 InvenTree/models.py:561
-#: templates/js/translated/part.js:1968 templates/js/translated/stock.js:2430
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:2426
msgid "Path"
msgstr ""
@@ -337,7 +338,7 @@ msgstr "服务器错误"
msgid "An error has been logged by the server."
msgstr "服务器记录了一个错误。"
-#: InvenTree/serializers.py:55 part/models.py:2745
+#: InvenTree/serializers.py:55 part/models.py:2753
msgid "Must be a valid number"
msgstr "必须是有效数字"
@@ -522,7 +523,7 @@ msgid "Placed"
msgstr "已添加"
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:309
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:133
msgid "Complete"
msgstr "完成"
@@ -542,8 +543,8 @@ msgstr "丢失"
msgid "Returned"
msgstr "已退回"
-#: InvenTree/status_codes.py:141 order/models.py:1128
-#: templates/js/translated/order.js:3436 templates/js/translated/order.js:3785
+#: InvenTree/status_codes.py:141 order/models.py:1132
+#: templates/js/translated/order.js:3630 templates/js/translated/order.js:3979
msgid "Shipped"
msgstr "已发货"
@@ -627,7 +628,7 @@ msgstr "从父项拆分"
msgid "Split child item"
msgstr "拆分子项"
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2084
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2080
msgid "Merged stock items"
msgstr "合并的库存项目"
@@ -717,7 +718,7 @@ msgstr "系统信息"
msgid "About InvenTree"
msgstr "关于 InventTree"
-#: build/api.py:217
+#: build/api.py:219
msgid "Build must be cancelled before it can be deleted"
msgstr "在删除前必须取消生产"
@@ -748,15 +749,15 @@ msgstr "生产订单"
msgid "Build Order Reference"
msgstr "相关生产订单"
-#: build/models.py:166 order/models.py:240 order/models.py:623
-#: order/models.py:904 part/models.py:2663
+#: build/models.py:166 order/models.py:240 order/models.py:627
+#: order/models.py:908 part/models.py:2671
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:690 templates/js/translated/bom.js:853
-#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2089
-#: templates/js/translated/order.js:2290 templates/js/translated/order.js:3629
-#: templates/js/translated/order.js:4137
+#: templates/js/translated/build.js:1813 templates/js/translated/order.js:2251
+#: templates/js/translated/order.js:2484 templates/js/translated/order.js:3823
+#: templates/js/translated/order.js:4331
msgid "Reference"
msgstr "引用"
@@ -774,12 +775,12 @@ msgid "BuildOrder to which this build is allocated"
msgstr "此次生产匹配的订单"
#: build/models.py:191 build/templates/build/build_base.html:80
-#: build/templates/build/detail.html:29 company/models.py:670
-#: order/models.py:1001 order/models.py:1112 order/models.py:1113
-#: part/models.py:343 part/models.py:2185 part/models.py:2200
-#: part/models.py:2219 part/models.py:2237 part/models.py:2336
-#: part/models.py:2463 part/models.py:2553 part/models.py:2638
-#: part/models.py:2914 part/serializers.py:814
+#: build/templates/build/detail.html:29 company/models.py:679
+#: order/models.py:1005 order/models.py:1116 order/models.py:1117
+#: part/models.py:343 part/models.py:2193 part/models.py:2208
+#: part/models.py:2227 part/models.py:2245 part/models.py:2344
+#: part/models.py:2471 part/models.py:2561 part/models.py:2646
+#: part/models.py:2922 part/serializers.py:814
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -795,18 +796,18 @@ msgstr "此次生产匹配的订单"
#: templates/js/translated/bom.js:689 templates/js/translated/bom.js:800
#: templates/js/translated/build.js:1189 templates/js/translated/build.js:1682
#: templates/js/translated/build.js:2126 templates/js/translated/build.js:2517
-#: templates/js/translated/company.js:266
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:608
-#: templates/js/translated/company.js:868 templates/js/translated/order.js:105
-#: templates/js/translated/order.js:1040 templates/js/translated/order.js:1493
-#: templates/js/translated/order.js:2043 templates/js/translated/order.js:2991
-#: templates/js/translated/order.js:3387 templates/js/translated/order.js:3613
-#: templates/js/translated/part.js:1152 templates/js/translated/part.js:1224
-#: templates/js/translated/part.js:1420 templates/js/translated/stock.js:586
+#: templates/js/translated/company.js:301
+#: templates/js/translated/company.js:531
+#: templates/js/translated/company.js:643
+#: templates/js/translated/company.js:904 templates/js/translated/order.js:106
+#: templates/js/translated/order.js:1134 templates/js/translated/order.js:1638
+#: templates/js/translated/order.js:2205 templates/js/translated/order.js:3185
+#: templates/js/translated/order.js:3581 templates/js/translated/order.js:3807
+#: templates/js/translated/part.js:1172 templates/js/translated/part.js:1244
+#: templates/js/translated/part.js:1441 templates/js/translated/stock.js:586
#: templates/js/translated/stock.js:751 templates/js/translated/stock.js:958
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2504
-#: templates/js/translated/stock.js:2699 templates/js/translated/stock.js:2833
+#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2500
+#: templates/js/translated/stock.js:2695 templates/js/translated/stock.js:2829
msgid "Part"
msgstr "商品"
@@ -823,7 +824,7 @@ msgid "SalesOrder to which this build is allocated"
msgstr "此次生产匹配的销售订单"
#: build/models.py:213 build/serializers.py:800
-#: templates/js/translated/build.js:2114 templates/js/translated/order.js:2979
+#: templates/js/translated/build.js:2114 templates/js/translated/order.js:3173
msgid "Source Location"
msgstr "来源地点"
@@ -863,8 +864,8 @@ msgstr "生产状态"
msgid "Build status code"
msgstr "生产状态代码"
-#: build/models.py:251 build/serializers.py:225 order/serializers.py:447
-#: stock/models.py:662 templates/js/translated/order.js:1353
+#: build/models.py:251 build/serializers.py:225 order/serializers.py:464
+#: stock/models.py:662 templates/js/translated/order.js:1496
msgid "Batch Code"
msgstr "批量代码"
@@ -873,11 +874,11 @@ msgid "Batch code for this build output"
msgstr "此生产产出的批量代码"
#: build/models.py:258 order/models.py:86 part/models.py:938
-#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2650
+#: part/templates/part/part_base.html:305 templates/js/translated/order.js:2844
msgid "Creation Date"
msgstr "创建日期"
-#: build/models.py:262 order/models.py:648
+#: build/models.py:262 order/models.py:652
msgid "Target completion date"
msgstr "预计完成日期"
@@ -904,10 +905,10 @@ msgstr "发布此生产订单的用户"
#: build/models.py:289 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:100
-#: order/templates/order/order_base.html:179
+#: order/templates/order/order_base.html:185
#: order/templates/order/sales_order_base.html:183 part/models.py:942
#: report/templates/report/inventree_build_order_base.html:158
-#: templates/js/translated/build.js:2574 templates/js/translated/order.js:1860
+#: templates/js/translated/build.js:2574 templates/js/translated/order.js:2022
msgid "Responsible"
msgstr "责任人"
@@ -917,9 +918,9 @@ msgstr "负责此生产订单的用户"
#: build/models.py:295 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
-#: company/templates/company/supplier_part.html:153
+#: company/templates/company/supplier_part.html:165
#: part/templates/part/part_base.html:346 stock/models.py:656
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr "外部链接"
@@ -957,11 +958,11 @@ msgstr "生产项必须指定生产产出,因为主部件已经被标记为可
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "分配数量 ({q}) 不得超过可用库存数量 ({a})"
-#: build/models.py:1188 order/models.py:1379
+#: build/models.py:1188 order/models.py:1383
msgid "Stock item is over-allocated"
msgstr "库存物品分配过度!"
-#: build/models.py:1194 order/models.py:1382
+#: build/models.py:1194 order/models.py:1386
msgid "Allocation quantity must be greater than zero"
msgstr "分配数量必须大于0"
@@ -973,7 +974,7 @@ msgstr "序列化库存的数量必须是 1"
msgid "Selected stock item not found in BOM"
msgstr "在BOM中找不到选定的库存项"
-#: build/models.py:1326 stock/templates/stock/item_base.html:172
+#: build/models.py:1326 stock/templates/stock/item_base.html:175
#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2496
#: templates/navbar.html:38
msgid "Build"
@@ -983,18 +984,18 @@ msgstr "生产"
msgid "Build to allocate parts"
msgstr "生产以分配部件"
-#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1015
-#: order/serializers.py:1036 stock/serializers.py:394 stock/serializers.py:754
+#: build/models.py:1343 build/serializers.py:645 order/serializers.py:1035
+#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754
#: stock/serializers.py:880 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:197
#: templates/js/translated/build.js:774 templates/js/translated/build.js:779
#: templates/js/translated/build.js:2128 templates/js/translated/build.js:2679
-#: templates/js/translated/order.js:106 templates/js/translated/order.js:2992
-#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3299
-#: templates/js/translated/order.js:3394 templates/js/translated/order.js:3486
+#: templates/js/translated/order.js:107 templates/js/translated/order.js:3186
+#: templates/js/translated/order.js:3488 templates/js/translated/order.js:3493
+#: templates/js/translated/order.js:3588 templates/js/translated/order.js:3680
#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:752
-#: templates/js/translated/stock.js:2577
+#: templates/js/translated/stock.js:2573
msgid "Stock Item"
msgstr "库存项"
@@ -1004,11 +1005,11 @@ msgstr "源库存项"
#: build/models.py:1356 build/serializers.py:193
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1697
-#: company/templates/company/supplier_part.html:279 order/models.py:897
-#: order/models.py:1423 order/serializers.py:1155
+#: build/templates/build/detail.html:34 common/models.py:1701
+#: company/templates/company/supplier_part.html:291 order/models.py:901
+#: order/models.py:1427 order/serializers.py:1209
#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40
-#: part/models.py:2654 part/templates/part/detail.html:951
+#: part/models.py:2662 part/templates/part/detail.html:951
#: part/templates/part/detail.html:1037
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
@@ -1017,8 +1018,8 @@ msgstr "源库存项"
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/serializers.py:291 stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
+#: stock/serializers.py:291 stock/templates/stock/item_base.html:290
+#: stock/templates/stock/item_base.html:298
#: templates/email/build_order_completed.html:18
#: templates/js/translated/barcode.js:437 templates/js/translated/bom.js:691
#: templates/js/translated/bom.js:861 templates/js/translated/build.js:458
@@ -1026,16 +1027,16 @@ msgstr "源库存项"
#: templates/js/translated/build.js:1211 templates/js/translated/build.js:1708
#: templates/js/translated/build.js:2129
#: templates/js/translated/model_renderers.js:120
-#: templates/js/translated/order.js:122 templates/js/translated/order.js:1043
-#: templates/js/translated/order.js:2095 templates/js/translated/order.js:2296
-#: templates/js/translated/order.js:2993 templates/js/translated/order.js:3313
-#: templates/js/translated/order.js:3400 templates/js/translated/order.js:3492
-#: templates/js/translated/order.js:3635 templates/js/translated/order.js:4143
-#: templates/js/translated/part.js:1038 templates/js/translated/part.js:2176
-#: templates/js/translated/part.js:2645 templates/js/translated/part.js:2686
-#: templates/js/translated/part.js:2764 templates/js/translated/stock.js:458
+#: templates/js/translated/order.js:123 templates/js/translated/order.js:1137
+#: templates/js/translated/order.js:2257 templates/js/translated/order.js:2490
+#: templates/js/translated/order.js:3187 templates/js/translated/order.js:3507
+#: templates/js/translated/order.js:3594 templates/js/translated/order.js:3686
+#: templates/js/translated/order.js:3829 templates/js/translated/order.js:4337
+#: templates/js/translated/part.js:1036 templates/js/translated/part.js:2205
+#: templates/js/translated/part.js:2674 templates/js/translated/part.js:2715
+#: templates/js/translated/part.js:2793 templates/js/translated/stock.js:458
#: templates/js/translated/stock.js:612 templates/js/translated/stock.js:782
-#: templates/js/translated/stock.js:2626 templates/js/translated/stock.js:2711
+#: templates/js/translated/stock.js:2622 templates/js/translated/stock.js:2707
msgid "Quantity"
msgstr "数量"
@@ -1077,7 +1078,7 @@ msgid "Enter quantity for build output"
msgstr "输入生产产出数量"
#: build/serializers.py:208 build/serializers.py:665 order/models.py:318
-#: order/serializers.py:287 order/serializers.py:442 part/serializers.py:545
+#: order/serializers.py:304 order/serializers.py:459 part/serializers.py:545
#: part/serializers.py:977 stock/models.py:484 stock/models.py:1251
#: stock/serializers.py:300
msgid "Quantity must be greater than zero"
@@ -1091,8 +1092,8 @@ msgstr "对于可追踪的部件,需要整数型数值"
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr "需要整数型数值,因为BOM包含可追踪的部件"
-#: build/serializers.py:232 order/serializers.py:455 order/serializers.py:1159
-#: stock/serializers.py:309 templates/js/translated/order.js:1364
+#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213
+#: stock/serializers.py:309 templates/js/translated/order.js:1507
#: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459
msgid "Serial Numbers"
msgstr "序列号"
@@ -1117,18 +1118,18 @@ msgstr "以下的序列号已存在"
msgid "A list of build outputs must be provided"
msgstr "必须提供生产产出列表"
-#: build/serializers.py:366 order/serializers.py:428 order/serializers.py:532
+#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552
#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532
#: stock/serializers.py:915 stock/serializers.py:1148
-#: stock/templates/stock/item_base.html:385
+#: stock/templates/stock/item_base.html:388
#: templates/js/translated/barcode.js:436
#: templates/js/translated/barcode.js:618 templates/js/translated/build.js:786
-#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1391
-#: templates/js/translated/order.js:3306 templates/js/translated/order.js:3411
-#: templates/js/translated/order.js:3419 templates/js/translated/order.js:3500
+#: templates/js/translated/build.js:1720 templates/js/translated/order.js:1534
+#: templates/js/translated/order.js:3500 templates/js/translated/order.js:3605
+#: templates/js/translated/order.js:3613 templates/js/translated/order.js:3694
#: templates/js/translated/part.js:181 templates/js/translated/stock.js:588
#: templates/js/translated/stock.js:753 templates/js/translated/stock.js:960
-#: templates/js/translated/stock.js:1854 templates/js/translated/stock.js:2518
+#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2514
msgid "Location"
msgstr "地点"
@@ -1137,12 +1138,12 @@ msgid "Location for completed build outputs"
msgstr "已完成生产产出的仓储地点"
#: build/serializers.py:373 build/templates/build/build_base.html:145
-#: build/templates/build/detail.html:62 order/models.py:642
-#: order/serializers.py:465 stock/templates/stock/item_base.html:418
+#: build/templates/build/detail.html:62 order/models.py:646
+#: order/serializers.py:482 stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2546
-#: templates/js/translated/order.js:1498 templates/js/translated/order.js:1830
-#: templates/js/translated/order.js:2642 templates/js/translated/stock.js:1829
-#: templates/js/translated/stock.js:2595 templates/js/translated/stock.js:2727
+#: templates/js/translated/order.js:1643 templates/js/translated/order.js:1992
+#: templates/js/translated/order.js:2836 templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:2591 templates/js/translated/stock.js:2723
msgid "Status"
msgstr "状态"
@@ -1202,7 +1203,7 @@ msgstr "接受库存项未被完成分配至此生产订单"
msgid "Required stock has not been fully allocated"
msgstr "所需库存尚未完全分配"
-#: build/serializers.py:527
+#: build/serializers.py:527 order/serializers.py:208 order/serializers.py:1103
msgid "Accept Incomplete"
msgstr "接受未完成"
@@ -1218,8 +1219,8 @@ msgstr "所需生产数量尚未完成"
msgid "Build order has incomplete outputs"
msgstr "生产订单有未完成的产出"
-#: build/serializers.py:577 build/serializers.py:622 part/models.py:2772
-#: part/models.py:2906
+#: build/serializers.py:577 build/serializers.py:622 part/models.py:2780
+#: part/models.py:2914
msgid "BOM Item"
msgstr "BOM项"
@@ -1239,7 +1240,7 @@ msgstr "bom_item.part 必须与生产订单指向相同的部件"
msgid "Item must be in stock"
msgstr "项目必须在库存中"
-#: build/serializers.py:709 order/serializers.py:1073
+#: build/serializers.py:709 order/serializers.py:1093
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "可用量 ({q}) 超出了限制"
@@ -1256,7 +1257,7 @@ msgstr "对于未被追踪的部件,无法指定生产产出"
msgid "This stock item has already been allocated to this build output"
msgstr "此库存项已被分配至此生产产出"
-#: build/serializers.py:750 order/serializers.py:1319
+#: build/serializers.py:750 order/serializers.py:1373
msgid "Allocation items must be provided"
msgstr "必须提供分配的项"
@@ -1371,13 +1372,13 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:154
-#: build/templates/build/detail.html:131 order/models.py:910
-#: order/templates/order/order_base.html:165
+#: build/templates/build/detail.html:131 order/models.py:914
+#: order/templates/order/order_base.html:171
#: order/templates/order/sales_order_base.html:164
#: report/templates/report/inventree_build_order_base.html:125
-#: templates/js/translated/build.js:2586 templates/js/translated/order.js:1847
-#: templates/js/translated/order.js:2157 templates/js/translated/order.js:2658
-#: templates/js/translated/order.js:3698 templates/js/translated/part.js:1042
+#: templates/js/translated/build.js:2586 templates/js/translated/order.js:2009
+#: templates/js/translated/order.js:2351 templates/js/translated/order.js:2852
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1051
msgid "Target Date"
msgstr "预计日期"
@@ -1388,7 +1389,7 @@ msgstr "此次生产的截止日期为 %(target)s"
#: build/templates/build/build_base.html:159
#: build/templates/build/build_base.html:204
-#: order/templates/order/order_base.html:101
+#: order/templates/order/order_base.html:107
#: order/templates/order/sales_order_base.html:94
#: templates/js/translated/table_filters.js:320
#: templates/js/translated/table_filters.js:361
@@ -1404,15 +1405,15 @@ msgid "Completed"
msgstr "已完成"
#: build/templates/build/build_base.html:179
-#: build/templates/build/detail.html:94 order/models.py:1105
-#: order/models.py:1199 order/models.py:1330
+#: build/templates/build/detail.html:94 order/models.py:1109
+#: order/models.py:1203 order/models.py:1334
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:365
+#: stock/templates/stock/item_base.html:368
#: templates/email/overdue_sales_order.html:15
-#: templates/js/translated/order.js:2604
+#: templates/js/translated/order.js:2798
msgid "Sales Order"
msgstr "销售订单"
@@ -1438,8 +1439,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1023
-#: templates/js/translated/order.js:1499 templates/js/translated/order.js:2199
+#: build/templates/build/detail.html:49 order/models.py:1027
+#: templates/js/translated/order.js:1644 templates/js/translated/order.js:2393
msgid "Destination"
msgstr ""
@@ -1452,18 +1453,18 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80
-#: stock/templates/stock/item_base.html:165
+#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1215
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1843
-#: templates/js/translated/stock.js:2734
+#: templates/js/translated/stock.js:1026 templates/js/translated/stock.js:1839
+#: templates/js/translated/stock.js:2730
#: templates/js/translated/table_filters.js:159
#: templates/js/translated/table_filters.js:250
msgid "Batch"
msgstr ""
#: build/templates/build/detail.html:126
-#: order/templates/order/order_base.html:152
+#: order/templates/order/order_base.html:158
#: order/templates/order/sales_order_base.html:158
#: templates/js/translated/build.js:2554
msgid "Created"
@@ -1516,7 +1517,7 @@ msgstr "订单所需部件"
#: build/templates/build/detail.html:187
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:85
-#: part/templates/part/category.html:183 templates/js/translated/order.js:1083
+#: part/templates/part/category.html:183 templates/js/translated/order.js:1177
msgid "Order Parts"
msgstr "订购商品"
@@ -1851,7 +1852,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:951 part/models.py:2465 report/models.py:158
+#: common/models.py:951 part/models.py:2473 report/models.py:158
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:484
msgid "Template"
@@ -1861,7 +1862,7 @@ msgstr "模板"
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1446
+#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1454
#: templates/js/translated/table_filters.js:176
#: templates/js/translated/table_filters.js:447
msgid "Assembly"
@@ -2275,349 +2276,349 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1342 common/models.py:1658
+#: common/models.py:1344 common/models.py:1662
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1364
+#: common/models.py:1366
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1365
+#: common/models.py:1367
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1371
+#: common/models.py:1373
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1372
+#: common/models.py:1374
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1378
+#: common/models.py:1380
msgid "Show latest parts"
msgstr "显示最近商品"
-#: common/models.py:1379
+#: common/models.py:1381
msgid "Show latest parts on the homepage"
msgstr "在主页上显示最近商品"
-#: common/models.py:1385
+#: common/models.py:1387
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1386
+#: common/models.py:1388
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1392
+#: common/models.py:1394
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1393
+#: common/models.py:1395
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1399
+#: common/models.py:1401
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1400
+#: common/models.py:1402
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1406
+#: common/models.py:1408
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1407
+#: common/models.py:1409
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1413
+#: common/models.py:1415
msgid "Show low stock"
msgstr ""
-#: common/models.py:1414
+#: common/models.py:1416
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1420
+#: common/models.py:1422
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1421
+#: common/models.py:1423
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1427
+#: common/models.py:1429
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1430
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1434
+#: common/models.py:1436
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1435
+#: common/models.py:1437
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1441
+#: common/models.py:1443
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1442
+#: common/models.py:1444
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1448
+#: common/models.py:1450
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1449
+#: common/models.py:1451
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1455
+#: common/models.py:1457
msgid "Show overdue builds"
msgstr "显示逾期生产"
-#: common/models.py:1456
+#: common/models.py:1458
msgid "Show overdue builds on the homepage"
msgstr "在主页上显示逾期的生产"
-#: common/models.py:1462
+#: common/models.py:1464
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1463
+#: common/models.py:1465
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1469
+#: common/models.py:1471
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1470
+#: common/models.py:1472
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1476
+#: common/models.py:1478
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1477
+#: common/models.py:1479
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1483
+#: common/models.py:1485
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1484
+#: common/models.py:1486
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1490
+#: common/models.py:1492
msgid "Inline label display"
msgstr "内嵌标签显示"
-#: common/models.py:1491
+#: common/models.py:1493
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr "在浏览器中显示 PDF 标签,而不是以文件形式下载"
-#: common/models.py:1497
+#: common/models.py:1499
msgid "Inline report display"
msgstr ""
-#: common/models.py:1498
+#: common/models.py:1500
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr "在浏览器中显示 PDF 报告,而不是以文件形式下载"
-#: common/models.py:1504
+#: common/models.py:1506
msgid "Search Parts"
msgstr ""
-#: common/models.py:1505
+#: common/models.py:1507
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1513
msgid "Seach Supplier Parts"
msgstr ""
-#: common/models.py:1512
+#: common/models.py:1514
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1520
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:1519
+#: common/models.py:1521
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:1525
+#: common/models.py:1527
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1526
+#: common/models.py:1528
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1532
+#: common/models.py:1534
msgid "Search Categories"
msgstr ""
-#: common/models.py:1533
+#: common/models.py:1535
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1539
+#: common/models.py:1541
msgid "Search Stock"
msgstr ""
-#: common/models.py:1540
+#: common/models.py:1542
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1546
+#: common/models.py:1548
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1547
+#: common/models.py:1549
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1553
+#: common/models.py:1555
msgid "Search Locations"
msgstr ""
-#: common/models.py:1554
+#: common/models.py:1556
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1560
+#: common/models.py:1562
msgid "Search Companies"
msgstr ""
-#: common/models.py:1561
+#: common/models.py:1563
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1567
+#: common/models.py:1569
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1568
+#: common/models.py:1570
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1574
+#: common/models.py:1576
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1575
+#: common/models.py:1577
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1581
+#: common/models.py:1583
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1582
+#: common/models.py:1584
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1588
+#: common/models.py:1590
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1591
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1595
+#: common/models.py:1597
msgid "Search Preview Results"
msgstr "搜索预览结果"
-#: common/models.py:1596
+#: common/models.py:1598
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1602
+#: common/models.py:1604
msgid "Show Quantity in Forms"
msgstr "在表格中显示数量"
-#: common/models.py:1603
+#: common/models.py:1605
msgid "Display available part quantity in some forms"
msgstr "在某些表格中显示可用的商品数量"
-#: common/models.py:1609
+#: common/models.py:1611
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1610
+#: common/models.py:1612
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1616
+#: common/models.py:1618
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1617
+#: common/models.py:1619
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1623
+#: common/models.py:1625
msgid "Date Format"
msgstr ""
-#: common/models.py:1624
+#: common/models.py:1626
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1638 part/templates/part/detail.html:41
+#: common/models.py:1640 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1641
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1698
+#: common/models.py:1702
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1705 company/serializers.py:366
-#: company/templates/company/supplier_part.html:284 order/models.py:938
-#: templates/js/translated/part.js:1083 templates/js/translated/part.js:2181
+#: common/models.py:1709 company/serializers.py:372
+#: company/templates/company/supplier_part.html:296 order/models.py:942
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:2210
msgid "Price"
msgstr "价格"
-#: common/models.py:1706
+#: common/models.py:1710
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1866 common/models.py:2044
+#: common/models.py:1870 common/models.py:2048
msgid "Endpoint"
msgstr ""
-#: common/models.py:1867
+#: common/models.py:1871
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1876
+#: common/models.py:1880
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1881 part/models.py:921 plugin/models.py:100
+#: common/models.py:1885 part/models.py:921 plugin/models.py:100
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:104
#: templates/js/translated/table_filters.js:316
@@ -2625,67 +2626,67 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1886
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1896
+#: common/models.py:1900
msgid "Token"
msgstr "令牌"
-#: common/models.py:1897
+#: common/models.py:1901
msgid "Token for access"
msgstr ""
-#: common/models.py:1904
+#: common/models.py:1908
msgid "Secret"
msgstr ""
-#: common/models.py:1905
+#: common/models.py:1909
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2011
+#: common/models.py:2015
msgid "Message ID"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2016
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2020
+#: common/models.py:2024
msgid "Host"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2025
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2032
msgid "Header"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2033
msgid "Header of this message"
msgstr ""
-#: common/models.py:2035
+#: common/models.py:2039
msgid "Body"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2040
msgid "Body of this message"
msgstr ""
-#: common/models.py:2045
+#: common/models.py:2049
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2054
msgid "Worked on"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2055
msgid "Was the work on this message finished?"
msgstr ""
@@ -2747,7 +2748,7 @@ msgstr "公司简介"
#: company/models.py:105 company/templates/company/company_base.html:100
#: templates/InvenTree/settings/plugin_settings.html:55
-#: templates/js/translated/company.js:413
+#: templates/js/translated/company.js:448
msgid "Website"
msgstr "网站"
@@ -2824,7 +2825,7 @@ msgstr "是制造商"
msgid "Does this company manufacture parts?"
msgstr "该公司制造商品吗?"
-#: company/models.py:148 company/serializers.py:372
+#: company/models.py:148 company/serializers.py:378
#: company/templates/company/company_base.html:106 part/serializers.py:153
#: part/serializers.py:184 stock/serializers.py:178
msgid "Currency"
@@ -2834,24 +2835,24 @@ msgstr "货币"
msgid "Default currency used for this company"
msgstr "该公司使用的默认货币"
-#: company/models.py:248 company/models.py:481 stock/models.py:598
+#: company/models.py:248 company/models.py:482 stock/models.py:598
#: stock/serializers.py:85 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:542
msgid "Base Part"
msgstr ""
-#: company/models.py:252 company/models.py:485
+#: company/models.py:252 company/models.py:486
msgid "Select part"
msgstr "选择商品"
#: company/models.py:263 company/templates/company/company_base.html:76
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:124
-#: stock/templates/stock/item_base.html:207
-#: templates/js/translated/company.js:397
-#: templates/js/translated/company.js:498
-#: templates/js/translated/company.js:633
-#: templates/js/translated/company.js:919 templates/js/translated/part.js:236
+#: company/templates/company/supplier_part.html:129
+#: stock/templates/stock/item_base.html:210
+#: templates/js/translated/company.js:432
+#: templates/js/translated/company.js:533
+#: templates/js/translated/company.js:668
+#: templates/js/translated/company.js:956 templates/js/translated/part.js:236
#: templates/js/translated/table_filters.js:419
msgid "Manufacturer"
msgstr "制造商"
@@ -2861,12 +2862,12 @@ msgid "Select manufacturer"
msgstr "选择制造商"
#: company/models.py:270 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:132
-#: templates/js/translated/company.js:269
-#: templates/js/translated/company.js:497
-#: templates/js/translated/company.js:649
-#: templates/js/translated/company.js:937 templates/js/translated/order.js:2077
-#: templates/js/translated/part.js:247 templates/js/translated/part.js:1027
+#: company/templates/company/supplier_part.html:137
+#: templates/js/translated/company.js:304
+#: templates/js/translated/company.js:532
+#: templates/js/translated/company.js:684
+#: templates/js/translated/company.js:975 templates/js/translated/order.js:2239
+#: templates/js/translated/part.js:247 templates/js/translated/part.js:1025
msgid "MPN"
msgstr ""
@@ -2882,10 +2883,10 @@ msgstr ""
msgid "Manufacturer part description"
msgstr "制造商商品描述"
-#: company/models.py:328 company/models.py:352 company/models.py:504
+#: company/models.py:328 company/models.py:352 company/models.py:505
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:220
msgid "Manufacturer Part"
msgstr "制造商商品"
@@ -2895,8 +2896,8 @@ msgstr "参数名称"
#: company/models.py:365
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2095 templates/js/translated/company.js:546
-#: templates/js/translated/company.js:764 templates/js/translated/part.js:849
+#: stock/models.py:2095 templates/js/translated/company.js:581
+#: templates/js/translated/company.js:799 templates/js/translated/part.js:847
#: templates/js/translated/stock.js:1360
msgid "Value"
msgstr "数值"
@@ -2905,10 +2906,10 @@ msgstr "数值"
msgid "Parameter value"
msgstr "参数值"
-#: company/models.py:372 part/models.py:888 part/models.py:2425
+#: company/models.py:372 part/models.py:888 part/models.py:2433
#: part/templates/part/part_base.html:280
#: templates/InvenTree/settings/settings.html:352
-#: templates/js/translated/company.js:770 templates/js/translated/part.js:855
+#: templates/js/translated/company.js:805 templates/js/translated/part.js:853
msgid "Units"
msgstr "单位"
@@ -2916,106 +2917,119 @@ msgstr "单位"
msgid "Parameter units"
msgstr "参数单位"
-#: company/models.py:449
+#: company/models.py:450
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:491 company/templates/company/company_base.html:81
-#: company/templates/company/supplier_part.html:108 order/models.py:258
-#: order/templates/order/order_base.html:115 part/bom.py:237 part/bom.py:265
-#: stock/templates/stock/item_base.html:224
+#: company/models.py:492 company/templates/company/company_base.html:81
+#: company/templates/company/supplier_part.html:113 order/models.py:258
+#: order/templates/order/order_base.html:121 part/bom.py:237 part/bom.py:265
+#: stock/templates/stock/item_base.html:227
#: templates/email/overdue_purchase_order.html:16
-#: templates/js/translated/company.js:268
-#: templates/js/translated/company.js:401
-#: templates/js/translated/company.js:893 templates/js/translated/order.js:1813
-#: templates/js/translated/part.js:217 templates/js/translated/part.js:995
+#: templates/js/translated/company.js:303
+#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:929 templates/js/translated/order.js:1975
+#: templates/js/translated/part.js:217 templates/js/translated/part.js:993
#: templates/js/translated/table_filters.js:423
msgid "Supplier"
msgstr "供应商"
-#: company/models.py:492 templates/js/translated/part.js:218
+#: company/models.py:493 templates/js/translated/part.js:218
msgid "Select supplier"
msgstr "选择供应商"
-#: company/models.py:497 company/templates/company/supplier_part.html:118
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:267
-#: templates/js/translated/order.js:2064 templates/js/translated/part.js:228
-#: templates/js/translated/part.js:1013
+#: company/models.py:498 company/templates/company/supplier_part.html:123
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/company.js:302
+#: templates/js/translated/order.js:2226 templates/js/translated/part.js:228
+#: templates/js/translated/part.js:1011
msgid "SKU"
msgstr ""
-#: company/models.py:498 templates/js/translated/part.js:229
+#: company/models.py:499 templates/js/translated/part.js:229
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:505
+#: company/models.py:506
msgid "Select manufacturer part"
msgstr "选择制造商商品"
-#: company/models.py:511
+#: company/models.py:512
msgid "URL for external supplier part link"
msgstr "外部供货商商品链接URL"
-#: company/models.py:517
+#: company/models.py:518
msgid "Supplier part description"
msgstr "供应商商品描述"
-#: company/models.py:522 company/templates/company/supplier_part.html:146
-#: part/models.py:2666 part/templates/part/upload_bom.html:59
+#: company/models.py:523 company/templates/company/supplier_part.html:158
+#: part/models.py:2674 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399
msgid "Note"
msgstr "备注"
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "base cost"
msgstr ""
-#: company/models.py:526 part/models.py:1781
+#: company/models.py:527 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr "最低收费(例如库存费)"
-#: company/models.py:528 company/templates/company/supplier_part.html:139
-#: stock/models.py:624 stock/templates/stock/item_base.html:240
-#: templates/js/translated/company.js:969 templates/js/translated/stock.js:1976
+#: company/models.py:529 company/templates/company/supplier_part.html:144
+#: stock/models.py:624 stock/templates/stock/item_base.html:243
+#: templates/js/translated/company.js:991 templates/js/translated/stock.js:1972
msgid "Packaging"
msgstr "打包"
-#: company/models.py:528
+#: company/models.py:529
msgid "Part packaging"
msgstr "商品打包"
-#: company/models.py:530 part/models.py:1783
+#: company/models.py:532 company/serializers.py:242
+#: company/templates/company/supplier_part.html:151
+#: templates/js/translated/company.js:996 templates/js/translated/order.js:820
+#: templates/js/translated/order.js:1215 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:2270 templates/js/translated/order.js:2287
+#: templates/js/translated/part.js:1043 templates/js/translated/part.js:1095
+msgid "Pack Quantity"
+msgstr ""
+
+#: company/models.py:533
+msgid "Unit quantity supplied in a single pack"
+msgstr ""
+
+#: company/models.py:539 part/models.py:1783
msgid "multiple"
msgstr ""
-#: company/models.py:530
+#: company/models.py:539
msgid "Order multiple"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part.html:94
+#: company/models.py:547 company/templates/company/supplier_part.html:99
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:911 templates/js/translated/build.js:1823
-#: templates/js/translated/build.js:2686 templates/js/translated/company.js:979
-#: templates/js/translated/part.js:600 templates/js/translated/part.js:603
+#: templates/js/translated/bom.js:915 templates/js/translated/build.js:1823
+#: templates/js/translated/build.js:2686 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:601
#: templates/js/translated/table_filters.js:186
msgid "Available"
msgstr "空闲"
-#: company/models.py:539
+#: company/models.py:548
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:543
+#: company/models.py:552
msgid "Availability Updated"
msgstr ""
-#: company/models.py:544
+#: company/models.py:553
msgid "Date of last update of availability data"
msgstr ""
-#: company/models.py:672
+#: company/models.py:681
msgid "last updated"
msgstr ""
@@ -3029,12 +3043,12 @@ msgstr "货币代码"
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:179 templates/js/translated/company.js:386
+#: templates/InvenTree/search.html:179 templates/js/translated/company.js:421
msgid "Company"
msgstr "公司"
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:624
+#: templates/js/translated/order.js:689
msgid "Create Purchase Order"
msgstr "创建采购订单"
@@ -3047,7 +3061,7 @@ msgid "Edit company information"
msgstr "编辑公司信息"
#: company/templates/company/company_base.html:34
-#: templates/js/translated/company.js:329
+#: templates/js/translated/company.js:364
msgid "Edit Company"
msgstr "编辑公司信息"
@@ -3070,13 +3084,13 @@ msgstr "上传新图片"
msgid "Download image from URL"
msgstr "从 URL 下载图片"
-#: company/templates/company/company_base.html:86 order/models.py:637
+#: company/templates/company/company_base.html:86 order/models.py:641
#: order/templates/order/sales_order_base.html:116 stock/models.py:643
#: stock/models.py:644 stock/serializers.py:809
-#: stock/templates/stock/item_base.html:396
+#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
-#: templates/js/translated/company.js:393 templates/js/translated/order.js:2619
-#: templates/js/translated/stock.js:2559
+#: templates/js/translated/company.js:428 templates/js/translated/order.js:2813
+#: templates/js/translated/stock.js:2555
#: templates/js/translated/table_filters.js:427
msgid "Customer"
msgstr "客户"
@@ -3211,23 +3225,23 @@ msgid "Manufacturers"
msgstr "制造商"
#: company/templates/company/manufacturer_part.html:35
-#: company/templates/company/supplier_part.html:186
+#: company/templates/company/supplier_part.html:198
#: part/templates/part/detail.html:87 part/templates/part/part_base.html:80
msgid "Order part"
msgstr "订购商品"
#: company/templates/company/manufacturer_part.html:39
-#: templates/js/translated/company.js:681
+#: templates/js/translated/company.js:716
msgid "Edit manufacturer part"
msgstr "编辑制造商商品"
#: company/templates/company/manufacturer_part.html:43
-#: templates/js/translated/company.js:682
+#: templates/js/translated/company.js:717
msgid "Delete manufacturer part"
msgstr "删除生产商商品"
#: company/templates/company/manufacturer_part.html:65
-#: company/templates/company/supplier_part.html:77
+#: company/templates/company/supplier_part.html:82
msgid "Internal Part"
msgstr "内部商品"
@@ -3250,8 +3264,8 @@ msgstr "删除供应商商品"
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
#: part/templates/part/detail.html:371 part/templates/part/detail.html:401
-#: templates/js/translated/forms.js:453 templates/js/translated/helpers.js:34
-#: users/models.py:220
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:34
+#: users/models.py:222
msgid "Delete"
msgstr "删除"
@@ -3296,9 +3310,9 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:607
-#: stock/templates/stock/item_base.html:233
-#: templates/js/translated/company.js:909 templates/js/translated/order.js:1041
-#: templates/js/translated/stock.js:1933
+#: stock/templates/stock/item_base.html:236
+#: templates/js/translated/company.js:945 templates/js/translated/order.js:1135
+#: templates/js/translated/stock.js:1929
msgid "Supplier Part"
msgstr "供应商商品"
@@ -3308,7 +3322,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:40
#: company/templates/company/supplier_part.html:41
-#: company/templates/company/supplier_part.html:187
+#: company/templates/company/supplier_part.html:199
#: part/templates/part/detail.html:88
msgid "Order Part"
msgstr "订购商品"
@@ -3320,81 +3334,87 @@ msgstr ""
#: company/templates/company/supplier_part.html:48
#: company/templates/company/supplier_part.html:49
-#: templates/js/translated/company.js:212
+#: templates/js/translated/company.js:247
msgid "Edit Supplier Part"
msgstr "编辑供应商商品"
#: company/templates/company/supplier_part.html:53
+#: company/templates/company/supplier_part.html:54
+#: templates/js/translated/company.js:222
+msgid "Duplicate Supplier Part"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:58
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:54
+#: company/templates/company/supplier_part.html:59
msgid "Delete Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:112
+#: company/templates/company/supplier_part.html:117
msgid "No supplier information available"
msgstr ""
-#: company/templates/company/supplier_part.html:165
+#: company/templates/company/supplier_part.html:177
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr "供货商商品库存"
-#: company/templates/company/supplier_part.html:168
+#: company/templates/company/supplier_part.html:180
#: part/templates/part/detail.html:24 stock/templates/stock/location.html:181
msgid "Create new stock item"
msgstr ""
-#: company/templates/company/supplier_part.html:169
+#: company/templates/company/supplier_part.html:181
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:182
#: templates/js/translated/stock.js:435
msgid "New Stock Item"
msgstr ""
-#: company/templates/company/supplier_part.html:182
+#: company/templates/company/supplier_part.html:194
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr "供应商商品订单"
-#: company/templates/company/supplier_part.html:207
+#: company/templates/company/supplier_part.html:219
#: part/templates/part/prices.html:10
msgid "Pricing Information"
msgstr "价格信息"
-#: company/templates/company/supplier_part.html:212
-#: company/templates/company/supplier_part.html:326
-#: part/templates/part/prices.html:276 templates/js/translated/part.js:2253
+#: company/templates/company/supplier_part.html:224
+#: company/templates/company/supplier_part.html:338
+#: part/templates/part/prices.html:276 templates/js/translated/part.js:2282
msgid "Add Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:250
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:252
-#: templates/js/translated/part.js:2263
+#: company/templates/company/supplier_part.html:264
+#: templates/js/translated/part.js:2292
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:266
-#: templates/js/translated/part.js:2277
+#: company/templates/company/supplier_part.html:278
+#: templates/js/translated/part.js:2306
msgid "Edit Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:291
+#: company/templates/company/supplier_part.html:303
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part.html:292
+#: company/templates/company/supplier_part.html:304
msgid "Delete price break"
msgstr ""
-#: company/templates/company/supplier_part.html:301
+#: company/templates/company/supplier_part.html:313
msgid "Last updated"
msgstr ""
-#: company/templates/company/supplier_part.html:382
+#: company/templates/company/supplier_part.html:394
msgid "Update Part Availability"
msgstr ""
@@ -3404,8 +3424,8 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:751 templates/js/translated/part.js:1313
-#: templates/js/translated/part.js:1474 templates/js/translated/stock.js:959
+#: templates/js/translated/part.js:749 templates/js/translated/part.js:1334
+#: templates/js/translated/part.js:1495 templates/js/translated/stock.js:959
#: templates/js/translated/stock.js:1754 templates/navbar.html:31
msgid "Stock"
msgstr "库存"
@@ -3432,7 +3452,7 @@ msgstr "定价"
#: stock/templates/stock/location.html:178
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2436 users/models.py:40
+#: templates/js/translated/stock.js:2432 users/models.py:40
msgid "Stock Items"
msgstr "库存项"
@@ -3534,7 +3554,7 @@ msgstr ""
msgid "Order description"
msgstr ""
-#: order/models.py:84 order/models.py:1246
+#: order/models.py:84 order/models.py:1250
msgid "Link to external page"
msgstr ""
@@ -3550,11 +3570,11 @@ msgstr "负责此订单的用户或群组"
msgid "Order notes"
msgstr ""
-#: order/models.py:241 order/models.py:624
+#: order/models.py:241 order/models.py:628
msgid "Order reference"
msgstr ""
-#: order/models.py:249 order/models.py:642
+#: order/models.py:249 order/models.py:646
msgid "Purchase order status"
msgstr ""
@@ -3562,8 +3582,8 @@ msgstr ""
msgid "Company from which the items are being ordered"
msgstr "订购该商品的公司"
-#: order/models.py:262 order/templates/order/order_base.html:127
-#: templates/js/translated/order.js:1822
+#: order/models.py:262 order/templates/order/order_base.html:133
+#: templates/js/translated/order.js:1984
msgid "Supplier Reference"
msgstr ""
@@ -3603,245 +3623,245 @@ msgstr ""
msgid "Quantity must be a positive number"
msgstr "数量必须大于0"
-#: order/models.py:638
+#: order/models.py:642
msgid "Company to which the items are being sold"
msgstr "向其出售该商品的公司"
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer Reference "
msgstr ""
-#: order/models.py:644
+#: order/models.py:648
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:649
+#: order/models.py:653
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:652 order/models.py:1204
-#: templates/js/translated/order.js:2666 templates/js/translated/order.js:2828
+#: order/models.py:656 order/models.py:1208
+#: templates/js/translated/order.js:2860 templates/js/translated/order.js:3022
msgid "Shipment Date"
msgstr ""
-#: order/models.py:659
+#: order/models.py:663
msgid "shipped by"
msgstr ""
-#: order/models.py:714
+#: order/models.py:718
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:718
+#: order/models.py:722
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:721
+#: order/models.py:725 templates/js/translated/order.js:419
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:724
+#: order/models.py:728
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:898
+#: order/models.py:902
msgid "Item quantity"
msgstr ""
-#: order/models.py:904
+#: order/models.py:908
msgid "Line item reference"
msgstr ""
-#: order/models.py:906
+#: order/models.py:910
msgid "Line item notes"
msgstr ""
-#: order/models.py:911
+#: order/models.py:915
msgid "Target shipping date for this line item"
msgstr ""
-#: order/models.py:929
+#: order/models.py:933
msgid "Context"
msgstr ""
-#: order/models.py:930
+#: order/models.py:934
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:939
+#: order/models.py:943
msgid "Unit price"
msgstr ""
-#: order/models.py:969
+#: order/models.py:973
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:977
+#: order/models.py:981
msgid "deleted"
msgstr ""
-#: order/models.py:983 order/models.py:1063 order/models.py:1104
-#: order/models.py:1198 order/models.py:1330
-#: templates/js/translated/order.js:3284
+#: order/models.py:987 order/models.py:1067 order/models.py:1108
+#: order/models.py:1202 order/models.py:1334
+#: templates/js/translated/order.js:3478
msgid "Order"
msgstr ""
-#: order/models.py:984 order/models.py:1063
+#: order/models.py:988 order/models.py:1067
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:76
-#: stock/templates/stock/item_base.html:179
+#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
-#: templates/js/translated/order.js:554 templates/js/translated/order.js:1042
-#: templates/js/translated/order.js:1797 templates/js/translated/part.js:972
-#: templates/js/translated/stock.js:1913 templates/js/translated/stock.js:2540
+#: templates/js/translated/order.js:619 templates/js/translated/order.js:1136
+#: templates/js/translated/order.js:1959 templates/js/translated/part.js:970
+#: templates/js/translated/stock.js:1909 templates/js/translated/stock.js:2536
msgid "Purchase Order"
msgstr ""
-#: order/models.py:1002
+#: order/models.py:1006
msgid "Supplier part"
msgstr "供应商商品"
-#: order/models.py:1009 order/templates/order/order_base.html:172
-#: templates/js/translated/order.js:1496 templates/js/translated/order.js:2179
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1105
+#: order/models.py:1013 order/templates/order/order_base.html:178
+#: templates/js/translated/order.js:1641 templates/js/translated/order.js:2373
+#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1125
#: templates/js/translated/table_filters.js:338
msgid "Received"
msgstr ""
-#: order/models.py:1010
+#: order/models.py:1014
msgid "Number of items received"
msgstr ""
-#: order/models.py:1017 part/templates/part/prices.html:181 stock/models.py:734
-#: stock/serializers.py:169 stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1964
+#: order/models.py:1021 part/templates/part/prices.html:181 stock/models.py:734
+#: stock/serializers.py:169 stock/templates/stock/item_base.html:189
+#: templates/js/translated/stock.js:1960
msgid "Purchase Price"
msgstr "采购价格"
-#: order/models.py:1018
+#: order/models.py:1022
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1026
+#: order/models.py:1030
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1092
+#: order/models.py:1096
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1097
+#: order/models.py:1101
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1123 part/templates/part/part_pricing.html:115
+#: order/models.py:1127 part/templates/part/part_pricing.html:115
#: part/templates/part/prices.html:121 part/templates/part/prices.html:290
msgid "Sale Price"
msgstr "销售价格"
-#: order/models.py:1124
+#: order/models.py:1128
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1129
+#: order/models.py:1133
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1205
+#: order/models.py:1209
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1212
+#: order/models.py:1216
msgid "Checked By"
msgstr ""
-#: order/models.py:1213
+#: order/models.py:1217
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1220 order/models.py:1405 order/serializers.py:1170
-#: order/serializers.py:1294 templates/js/translated/model_renderers.js:314
+#: order/models.py:1224 order/models.py:1409 order/serializers.py:1224
+#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314
msgid "Shipment"
msgstr ""
-#: order/models.py:1221
+#: order/models.py:1225
msgid "Shipment number"
msgstr ""
-#: order/models.py:1225
+#: order/models.py:1229
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1231
+#: order/models.py:1235
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1232
+#: order/models.py:1236
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1239
+#: order/models.py:1243
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1240
+#: order/models.py:1244
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1258
+#: order/models.py:1262
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1261
+#: order/models.py:1265
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1364 order/models.py:1366
+#: order/models.py:1368 order/models.py:1370
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1370
+#: order/models.py:1374
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1372
+#: order/models.py:1376
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1375
+#: order/models.py:1379
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1385 order/serializers.py:1066
+#: order/models.py:1389 order/serializers.py:1086
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1388
+#: order/models.py:1392
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1389
+#: order/models.py:1393
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1397
+#: order/models.py:1401
msgid "Line"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1410
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1419 templates/js/translated/notification.js:55
+#: order/models.py:1423 templates/js/translated/notification.js:55
msgid "Item"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1424
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1423
+#: order/models.py:1427
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3853,111 +3873,119 @@ msgstr ""
msgid "Order cannot be cancelled"
msgstr "无法取消订单"
-#: order/serializers.py:294
+#: order/serializers.py:209 order/serializers.py:1104
+msgid "Allow order to be closed with incomplete line items"
+msgstr ""
+
+#: order/serializers.py:220 order/serializers.py:1115
+msgid "Order has incomplete line items"
+msgstr ""
+
+#: order/serializers.py:311
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:318
+#: order/serializers.py:335
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:354
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:342
+#: order/serializers.py:359
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:348
+#: order/serializers.py:365
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:349
+#: order/serializers.py:366
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:413 order/serializers.py:1138
+#: order/serializers.py:430 order/serializers.py:1192
msgid "Line Item"
msgstr ""
-#: order/serializers.py:419
+#: order/serializers.py:436
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:429 order/serializers.py:533
+#: order/serializers.py:446 order/serializers.py:553
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:448 templates/js/translated/order.js:1354
+#: order/serializers.py:465 templates/js/translated/order.js:1497
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:456 templates/js/translated/order.js:1365
+#: order/serializers.py:473 templates/js/translated/order.js:1508
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:469
+#: order/serializers.py:486
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:470
+#: order/serializers.py:487
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:484
+#: order/serializers.py:501
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:507
+#: order/serializers.py:527
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:549
+#: order/serializers.py:569
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:566
+#: order/serializers.py:586
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:577
+#: order/serializers.py:597
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:883
+#: order/serializers.py:903
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:964
+#: order/serializers.py:984
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1027 order/serializers.py:1147
+#: order/serializers.py:1047 order/serializers.py:1201
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1049
+#: order/serializers.py:1069
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1160
+#: order/serializers.py:1214
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1182 order/serializers.py:1302
+#: order/serializers.py:1236 order/serializers.py:1356
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1185 order/serializers.py:1305
+#: order/serializers.py:1239 order/serializers.py:1359
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1235
+#: order/serializers.py:1289
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1245
+#: order/serializers.py:1299
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3993,83 +4021,83 @@ msgstr ""
msgid "Order actions"
msgstr ""
-#: order/templates/order/order_base.html:45
+#: order/templates/order/order_base.html:46
#: order/templates/order/sales_order_base.html:58
msgid "Edit order"
msgstr ""
-#: order/templates/order/order_base.html:47
+#: order/templates/order/order_base.html:50
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr "取消订单"
-#: order/templates/order/order_base.html:50
+#: order/templates/order/order_base.html:55
msgid "Duplicate order"
msgstr ""
-#: order/templates/order/order_base.html:55
+#: order/templates/order/order_base.html:61
msgid "Place order"
msgstr ""
-#: order/templates/order/order_base.html:59
+#: order/templates/order/order_base.html:65
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:61
+#: order/templates/order/order_base.html:67
#: order/templates/order/purchase_order_detail.html:30
msgid "Receive Items"
msgstr ""
-#: order/templates/order/order_base.html:63
+#: order/templates/order/order_base.html:69
msgid "Mark order as complete"
msgstr ""
-#: order/templates/order/order_base.html:65
+#: order/templates/order/order_base.html:71
#: order/templates/order/sales_order_base.html:68
msgid "Complete Order"
msgstr ""
-#: order/templates/order/order_base.html:87
+#: order/templates/order/order_base.html:93
#: order/templates/order/sales_order_base.html:80
msgid "Order Reference"
msgstr ""
-#: order/templates/order/order_base.html:92
+#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:85
msgid "Order Description"
msgstr ""
-#: order/templates/order/order_base.html:97
+#: order/templates/order/order_base.html:103
#: order/templates/order/sales_order_base.html:90
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:120
+#: order/templates/order/order_base.html:126
msgid "No suppplier information available"
msgstr ""
-#: order/templates/order/order_base.html:133
+#: order/templates/order/order_base.html:139
#: order/templates/order/sales_order_base.html:129
msgid "Completed Line Items"
msgstr ""
-#: order/templates/order/order_base.html:139
+#: order/templates/order/order_base.html:145
#: order/templates/order/sales_order_base.html:135
#: order/templates/order/sales_order_base.html:145
msgid "Incomplete"
msgstr ""
-#: order/templates/order/order_base.html:158
+#: order/templates/order/order_base.html:164
#: report/templates/report/inventree_build_order_base.html:121
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:186
+#: order/templates/order/order_base.html:192
#: order/templates/order/sales_order_base.html:190
msgid "Total cost"
msgstr ""
-#: order/templates/order/order_base.html:190
+#: order/templates/order/order_base.html:196
#: order/templates/order/sales_order_base.html:194
msgid "Total cost could not be calculated"
msgstr ""
@@ -4102,8 +4130,8 @@ msgstr "选择供应商商品"
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:77 templates/js/translated/build.js:463
#: templates/js/translated/build.js:615 templates/js/translated/build.js:2015
-#: templates/js/translated/order.js:990 templates/js/translated/order.js:1443
-#: templates/js/translated/order.js:2903 templates/js/translated/stock.js:625
+#: templates/js/translated/order.js:1084 templates/js/translated/order.js:1586
+#: templates/js/translated/order.js:3097 templates/js/translated/stock.js:625
#: templates/js/translated/stock.js:793
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
@@ -4139,7 +4167,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:26
#: order/templates/order/sales_order_detail.html:22
#: order/templates/order/sales_order_detail.html:255
-#: templates/js/translated/order.js:663
+#: templates/js/translated/order.js:728
msgid "Add Line Item"
msgstr ""
@@ -4167,7 +4195,7 @@ msgstr ""
msgid "Order Notes"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:228
+#: order/templates/order/purchase_order_detail.html:232
msgid "Add Order Line"
msgstr ""
@@ -4185,12 +4213,12 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:60
-#: templates/js/translated/order.js:231
+#: templates/js/translated/order.js:232
msgid "Complete Shipments"
msgstr ""
#: order/templates/order/sales_order_base.html:67
-#: order/templates/order/sales_order_base.html:258
+#: templates/js/translated/order.js:397
msgid "Complete Sales Order"
msgstr ""
@@ -4199,7 +4227,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:123
-#: templates/js/translated/order.js:2632
+#: templates/js/translated/order.js:2826
msgid "Customer Reference"
msgstr ""
@@ -4223,7 +4251,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:72
-#: templates/attachment_table.html:6 templates/js/translated/bom.js:1108
+#: templates/attachment_table.html:6 templates/js/translated/bom.js:1116
#: templates/js/translated/build.js:1923
msgid "Actions"
msgstr ""
@@ -4308,14 +4336,14 @@ msgid "Total Stock"
msgstr ""
#: part/bom.py:129 part/templates/part/part_base.html:189
-#: templates/js/translated/order.js:3724
+#: templates/js/translated/order.js:3918
msgid "Available Stock"
msgstr "可用库存"
#: part/bom.py:130 part/templates/part/part_base.html:207
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1853
-#: templates/js/translated/part.js:590 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:1316 templates/js/translated/part.js:1503
+#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1853
+#: templates/js/translated/part.js:588 templates/js/translated/part.js:608
+#: templates/js/translated/part.js:1337 templates/js/translated/part.js:1520
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr ""
@@ -4344,7 +4372,7 @@ msgstr ""
msgid "Icon (optional)"
msgstr ""
-#: part/models.py:122 part/models.py:2508 part/templates/part/category.html:16
+#: part/models.py:122 part/models.py:2516 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "商品类别"
@@ -4361,7 +4389,7 @@ msgstr "商品类别"
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:1975 templates/js/translated/search.js:146
+#: templates/js/translated/part.js:2004 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr "商品"
@@ -4391,7 +4419,7 @@ msgstr ""
msgid "Duplicate IPN not allowed in part settings"
msgstr "在商品设置中不允许重复的IPN"
-#: part/models.py:745 part/models.py:2562
+#: part/models.py:745 part/models.py:2570
msgid "Part name"
msgstr "商品名称"
@@ -4424,11 +4452,11 @@ msgstr "关键词"
msgid "Part keywords to improve visibility in search results"
msgstr "提高搜索结果可见性的关键字"
-#: part/models.py:783 part/models.py:2257 part/models.py:2507
+#: part/models.py:783 part/models.py:2265 part/models.py:2515
#: part/templates/part/part_base.html:257
#: templates/InvenTree/settings/settings.html:232
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1456 templates/js/translated/part.js:1688
+#: templates/js/translated/part.js:1477 templates/js/translated/part.js:1717
msgid "Category"
msgstr "类别"
@@ -4437,7 +4465,7 @@ msgid "Part category"
msgstr "商品类别"
#: part/models.py:789 part/templates/part/part_base.html:266
-#: templates/js/translated/part.js:739 templates/js/translated/part.js:1409
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:1430
#: templates/js/translated/stock.js:1726
msgid "IPN"
msgstr ""
@@ -4451,7 +4479,7 @@ msgid "Part revision or version number"
msgstr "商品版本号"
#: part/models.py:797 part/templates/part/part_base.html:273
-#: report/models.py:171 templates/js/translated/part.js:743
+#: report/models.py:171 templates/js/translated/part.js:741
msgid "Revision"
msgstr ""
@@ -4543,245 +4571,245 @@ msgstr "新建用户"
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2304
+#: part/models.py:2312
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2321
+#: part/models.py:2329
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2341 templates/js/translated/part.js:2026
+#: part/models.py:2349 templates/js/translated/part.js:2055
#: templates/js/translated/stock.js:1340
msgid "Test Name"
msgstr ""
-#: part/models.py:2342
+#: part/models.py:2350
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2347
+#: part/models.py:2355
msgid "Test Description"
msgstr ""
-#: part/models.py:2348
+#: part/models.py:2356
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2353 templates/js/translated/part.js:2035
+#: part/models.py:2361 templates/js/translated/part.js:2064
#: templates/js/translated/table_filters.js:302
msgid "Required"
msgstr ""
-#: part/models.py:2354
+#: part/models.py:2362
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2359 templates/js/translated/part.js:2043
+#: part/models.py:2367 templates/js/translated/part.js:2072
msgid "Requires Value"
msgstr ""
-#: part/models.py:2360
+#: part/models.py:2368
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2365 templates/js/translated/part.js:2050
+#: part/models.py:2373 templates/js/translated/part.js:2079
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2366
+#: part/models.py:2374
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2374
+#: part/models.py:2382
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2410
+#: part/models.py:2418
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2418
+#: part/models.py:2426
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2425
+#: part/models.py:2433
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2430
+#: part/models.py:2438
msgid "Parameter description"
msgstr ""
-#: part/models.py:2463
+#: part/models.py:2471
msgid "Parent Part"
msgstr ""
-#: part/models.py:2465 part/models.py:2513 part/models.py:2514
+#: part/models.py:2473 part/models.py:2521 part/models.py:2522
#: templates/InvenTree/settings/settings.html:227
msgid "Parameter Template"
msgstr "参数模板"
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Data"
msgstr ""
-#: part/models.py:2467
+#: part/models.py:2475
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2518 templates/InvenTree/settings/settings.html:236
+#: part/models.py:2526 templates/InvenTree/settings/settings.html:236
msgid "Default Value"
msgstr "默认值"
-#: part/models.py:2519
+#: part/models.py:2527
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2554
+#: part/models.py:2562
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2557 templates/js/translated/model_renderers.js:212
+#: part/models.py:2565 templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr "商品ID"
-#: part/models.py:2558
+#: part/models.py:2566
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2561
+#: part/models.py:2569
msgid "Part Name"
msgstr ""
-#: part/models.py:2565
+#: part/models.py:2573
msgid "Part IPN"
msgstr ""
-#: part/models.py:2566
+#: part/models.py:2574
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2569
+#: part/models.py:2577
msgid "Level"
msgstr ""
-#: part/models.py:2570
+#: part/models.py:2578
msgid "BOM level"
msgstr ""
-#: part/models.py:2639
+#: part/models.py:2647
msgid "Select parent part"
msgstr ""
-#: part/models.py:2647
+#: part/models.py:2655
msgid "Sub part"
msgstr ""
-#: part/models.py:2648
+#: part/models.py:2656
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2654
+#: part/models.py:2662
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2656 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:872 templates/js/translated/bom.js:997
+#: part/models.py:2664 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:876 templates/js/translated/bom.js:1005
#: templates/js/translated/table_filters.js:100
msgid "Optional"
msgstr "可选项"
-#: part/models.py:2656
+#: part/models.py:2664
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2659 part/templates/part/upload_bom.html:55
+#: part/models.py:2667 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2660
+#: part/models.py:2668
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2671
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2666
+#: part/models.py:2674
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "Checksum"
msgstr ""
-#: part/models.py:2668
+#: part/models.py:2676
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2672 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:1014
+#: part/models.py:2680 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:1022
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:96
msgid "Inherited"
msgstr "继承项"
-#: part/models.py:2673
+#: part/models.py:2681
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2678 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:1006
+#: part/models.py:2686 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:1014
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2679
+#: part/models.py:2687
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2757 stock/models.py:468
+#: part/models.py:2765 stock/models.py:468
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2766 part/models.py:2768
+#: part/models.py:2774 part/models.py:2776
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2873
+#: part/models.py:2881
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2894
+#: part/models.py:2902
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2907
+#: part/models.py:2915
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2923
msgid "Substitute part"
msgstr ""
-#: part/models.py:2930
+#: part/models.py:2938
msgid "Part 1"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Part 2"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2942
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2960
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:2956
+#: part/models.py:2964
msgid "Duplicate relationship already exists"
msgstr ""
@@ -5309,10 +5337,10 @@ msgid "Part is virtual (not a physical part)"
msgstr "商品是虚拟的(不是实体零件)"
#: part/templates/part/part_base.html:143
-#: templates/js/translated/company.js:624
-#: templates/js/translated/company.js:884
+#: templates/js/translated/company.js:659
+#: templates/js/translated/company.js:920
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:654 templates/js/translated/part.js:731
+#: templates/js/translated/part.js:652 templates/js/translated/part.js:729
msgid "Inactive"
msgstr ""
@@ -5327,28 +5355,28 @@ msgid "This part is a variant of %(link)s"
msgstr ""
#: part/templates/part/part_base.html:194
-#: templates/js/translated/company.js:974
+#: templates/js/translated/company.js:1027
#: templates/js/translated/table_filters.js:201
msgid "In Stock"
msgstr ""
#: part/templates/part/part_base.html:215
-#: stock/templates/stock/item_base.html:379
+#: stock/templates/stock/item_base.html:382
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:224
-#: stock/templates/stock/item_base.html:372
+#: stock/templates/stock/item_base.html:375
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1035
+#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:1043
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:238 templates/js/translated/part.js:593
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:1320
-#: templates/js/translated/part.js:1510
+#: part/templates/part/part_base.html:238 templates/js/translated/part.js:591
+#: templates/js/translated/part.js:611 templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1527
msgid "Building"
msgstr ""
@@ -5361,7 +5389,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:320
-#: stock/templates/stock/item_base.html:328
+#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
@@ -5400,7 +5428,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43
-#: templates/js/translated/bom.js:989
+#: templates/js/translated/bom.js:997
msgid "No supplier pricing available"
msgstr ""
@@ -5439,7 +5467,7 @@ msgstr "此商品无价格信息可用。"
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:53
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1839 templates/js/translated/stock.js:2468
+#: templates/js/translated/order.js:2001 templates/js/translated/stock.js:2464
msgid "Date"
msgstr ""
@@ -5495,7 +5523,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:160 templates/js/translated/bom.js:983
+#: part/templates/part/prices.html:160 templates/js/translated/bom.js:991
msgid "Supplier Cost"
msgstr ""
@@ -5533,8 +5561,8 @@ msgstr ""
msgid "No sale pice history available for this part."
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:616
-#: templates/js/translated/part.js:1308
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:614
+#: templates/js/translated/part.js:1329 templates/js/translated/part.js:1331
msgid "No Stock"
msgstr ""
@@ -5735,19 +5763,19 @@ msgstr ""
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:186
+#: plugin/models.py:188
msgid "Plugin"
msgstr ""
-#: plugin/models.py:249
+#: plugin/models.py:253
msgid "Method"
msgstr ""
-#: plugin/plugin.py:251
+#: plugin/plugin.py:252
msgid "No author found"
msgstr ""
-#: plugin/plugin.py:263
+#: plugin/plugin.py:264
msgid "No date found"
msgstr ""
@@ -5925,12 +5953,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:648 stock/templates/stock/item_base.html:317
+#: stock/models.py:648 stock/templates/stock/item_base.html:320
#: templates/js/translated/build.js:456 templates/js/translated/build.js:608
#: templates/js/translated/build.js:1209 templates/js/translated/build.js:1706
#: templates/js/translated/model_renderers.js:118
-#: templates/js/translated/order.js:120 templates/js/translated/order.js:3403
-#: templates/js/translated/order.js:3490 templates/js/translated/stock.js:490
+#: templates/js/translated/order.js:121 templates/js/translated/order.js:3597
+#: templates/js/translated/order.js:3684 templates/js/translated/stock.js:490
msgid "Serial Number"
msgstr "序列号"
@@ -5963,7 +5991,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
#: templates/js/translated/stock.js:610 templates/js/translated/stock.js:780
-#: templates/js/translated/stock.js:2717
+#: templates/js/translated/stock.js:2713
msgid "Serial"
msgstr ""
@@ -5980,7 +6008,7 @@ msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
#: stock/models.py:89 stock/models.py:739
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:250
msgid "Owner"
msgstr ""
@@ -6046,7 +6074,7 @@ msgstr ""
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:631 stock/templates/stock/item_base.html:356
+#: stock/models.py:631 stock/templates/stock/item_base.html:359
msgid "Installed In"
msgstr ""
@@ -6086,8 +6114,8 @@ msgstr ""
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:706 stock/templates/stock/item_base.html:424
-#: templates/js/translated/stock.js:1883
+#: stock/models.py:706 stock/templates/stock/item_base.html:427
+#: templates/js/translated/stock.js:1879
msgid "Expiry Date"
msgstr ""
@@ -6379,7 +6407,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2861
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2857
msgid "Install Stock Item"
msgstr ""
@@ -6479,134 +6507,135 @@ msgstr ""
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:158
+#: stock/templates/stock/item_base.html:161
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:193
+#: stock/templates/stock/item_base.html:196
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:214
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:254
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/location.html:132
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:268
msgid "This stock item is in production and cannot be edited."
msgstr "此库存项目正在生产中,无法编辑。"
-#: stock/templates/stock/item_base.html:266
+#: stock/templates/stock/item_base.html:269
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:279
+#: stock/templates/stock/item_base.html:282
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:290
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:298
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:301
+#: stock/templates/stock/item_base.html:304
msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
msgstr ""
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:326
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:332
+#: stock/templates/stock/item_base.html:335
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:345
+#: stock/templates/stock/item_base.html:348
msgid "Available Quantity"
msgstr ""
-#: stock/templates/stock/item_base.html:389
+#: stock/templates/stock/item_base.html:392
#: templates/js/translated/build.js:1729
msgid "No location set"
msgstr "未设置仓储地点"
-#: stock/templates/stock/item_base.html:404
+#: stock/templates/stock/item_base.html:407
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:431
#: templates/js/translated/table_filters.js:269
msgid "Expired"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:430
+#: stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:275
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:437
-#: templates/js/translated/company.js:985 templates/js/translated/stock.js:1899
+#: stock/templates/stock/item_base.html:440
+#: templates/js/translated/company.js:1038
+#: templates/js/translated/stock.js:1895
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:442
+#: stock/templates/stock/item_base.html:445
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:516
+#: stock/templates/stock/item_base.html:519
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:589
+#: stock/templates/stock/item_base.html:592
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:592
+#: stock/templates/stock/item_base.html:595
msgid "Warning"
msgstr "警告"
-#: stock/templates/stock/item_base.html:593
+#: stock/templates/stock/item_base.html:596
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:601
+#: stock/templates/stock/item_base.html:604
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:629
+#: stock/templates/stock/item_base.html:632
msgid "Return to Stock"
msgstr ""
@@ -6739,11 +6768,11 @@ msgstr ""
msgid "Refer to the error log in the admin interface for further details"
msgstr ""
-#: templates/503.html:11 templates/503.html:36
+#: templates/503.html:11 templates/503.html:34
msgid "Site is in Maintenance"
msgstr ""
-#: templates/503.html:42
+#: templates/503.html:40
msgid "The site is currently in maintenance and should be up again soon!"
msgstr ""
@@ -7509,7 +7538,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:644
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "确认"
@@ -7728,7 +7757,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1481
+#: templates/js/translated/bom.js:1489
msgid "Required Quantity"
msgstr ""
@@ -7742,7 +7771,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2522
+#: templates/js/translated/part.js:2551
msgid "Minimum Quantity"
msgstr ""
@@ -7947,7 +7976,7 @@ msgstr ""
#: templates/js/translated/bom.js:133 templates/js/translated/bom.js:620
#: templates/js/translated/modals.js:56 templates/js/translated/modals.js:601
#: templates/js/translated/modals.js:695 templates/js/translated/modals.js:1003
-#: templates/js/translated/order.js:1085 templates/modals.html:15
+#: templates/js/translated/order.js:1179 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -7957,12 +7986,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:866 templates/js/translated/tables.js:145
+#: templates/js/translated/order.js:960 templates/js/translated/tables.js:145
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:254 templates/js/translated/bom.js:288
-#: templates/js/translated/order.js:867
+#: templates/js/translated/order.js:961
msgid "Select file format"
msgstr ""
@@ -8058,73 +8087,73 @@ msgstr ""
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:927 templates/js/translated/build.js:1857
-#: templates/js/translated/order.js:3738
+#: templates/js/translated/bom.js:935 templates/js/translated/build.js:1857
+#: templates/js/translated/order.js:3932
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:932 templates/js/translated/build.js:1861
+#: templates/js/translated/bom.js:940 templates/js/translated/build.js:1861
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:934 templates/js/translated/build.js:1863
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1516
+#: templates/js/translated/bom.js:942 templates/js/translated/build.js:1863
+#: templates/js/translated/part.js:761 templates/js/translated/part.js:1533
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:936 templates/js/translated/build.js:1865
+#: templates/js/translated/bom.js:944 templates/js/translated/build.js:1865
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:954
+#: templates/js/translated/bom.js:962
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:969
+#: templates/js/translated/bom.js:977
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:976
+#: templates/js/translated/bom.js:984
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:1025 templates/js/translated/bom.js:1145
+#: templates/js/translated/bom.js:1033 templates/js/translated/bom.js:1153
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1052
+#: templates/js/translated/bom.js:1060
msgid "Including On Order"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1124
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1118
+#: templates/js/translated/bom.js:1126
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1120
+#: templates/js/translated/bom.js:1128
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1122 templates/js/translated/bom.js:1284
+#: templates/js/translated/bom.js:1130 templates/js/translated/bom.js:1292
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1124
+#: templates/js/translated/bom.js:1132
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1220 templates/js/translated/build.js:1650
+#: templates/js/translated/bom.js:1228 templates/js/translated/build.js:1650
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1464 templates/js/translated/build.js:1789
+#: templates/js/translated/bom.js:1472 templates/js/translated/build.js:1789
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1486
+#: templates/js/translated/bom.js:1498
msgid "Inherited from parent BOM"
msgstr ""
@@ -8267,12 +8296,12 @@ msgid "No required tests for this build"
msgstr ""
#: templates/js/translated/build.js:1746 templates/js/translated/build.js:2697
-#: templates/js/translated/order.js:3438
+#: templates/js/translated/order.js:3632
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1748 templates/js/translated/build.js:2698
-#: templates/js/translated/order.js:3439
+#: templates/js/translated/order.js:3633
msgid "Delete stock allocation"
msgstr ""
@@ -8292,20 +8321,20 @@ msgstr ""
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3745
+#: templates/js/translated/build.js:1847 templates/js/translated/order.js:3939
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3743
+#: templates/js/translated/build.js:1849 templates/js/translated/order.js:3937
msgid "Sufficient stock available"
msgstr ""
#: templates/js/translated/build.js:1882 templates/js/translated/build.js:2127
-#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3757
+#: templates/js/translated/build.js:2693 templates/js/translated/order.js:3951
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1930 templates/js/translated/order.js:3837
+#: templates/js/translated/build.js:1930 templates/js/translated/order.js:4031
msgid "Build stock"
msgstr ""
@@ -8313,21 +8342,21 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1937 templates/js/translated/order.js:3830
+#: templates/js/translated/build.js:1937 templates/js/translated/order.js:4024
msgid "Allocate stock"
msgstr ""
#: templates/js/translated/build.js:1976 templates/js/translated/label.js:172
-#: templates/js/translated/order.js:913 templates/js/translated/order.js:2965
+#: templates/js/translated/order.js:1007 templates/js/translated/order.js:3159
#: templates/js/translated/report.js:225
msgid "Select Parts"
msgstr "选择商品"
-#: templates/js/translated/build.js:1977 templates/js/translated/order.js:2966
+#: templates/js/translated/build.js:1977 templates/js/translated/order.js:3160
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:2026 templates/js/translated/order.js:2914
+#: templates/js/translated/build.js:2026 templates/js/translated/order.js:3108
msgid "Specify stock allocation quantity"
msgstr ""
@@ -8339,7 +8368,7 @@ msgstr ""
msgid "All selected parts have been fully allocated"
msgstr ""
-#: templates/js/translated/build.js:2115 templates/js/translated/order.js:2980
+#: templates/js/translated/build.js:2115 templates/js/translated/order.js:3174
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
@@ -8347,11 +8376,11 @@ msgstr ""
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3077
+#: templates/js/translated/build.js:2154 templates/js/translated/order.js:3271
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3154
+#: templates/js/translated/build.js:2226 templates/js/translated/order.js:3348
msgid "No matching stock items"
msgstr ""
@@ -8383,9 +8412,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1401
-#: templates/js/translated/part.js:1919 templates/js/translated/stock.js:1686
-#: templates/js/translated/stock.js:2386
+#: templates/js/translated/build.js:2490 templates/js/translated/part.js:1422
+#: templates/js/translated/part.js:1948 templates/js/translated/stock.js:1686
+#: templates/js/translated/stock.js:2382
msgid "Select"
msgstr ""
@@ -8397,7 +8426,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2647
+#: templates/js/translated/build.js:2568 templates/js/translated/stock.js:2643
msgid "No user information"
msgstr "没有用户信息"
@@ -8405,111 +8434,115 @@ msgstr "没有用户信息"
msgid "No parts allocated for"
msgstr ""
-#: templates/js/translated/company.js:65
+#: templates/js/translated/company.js:66
msgid "Add Manufacturer"
msgstr "添加制造商"
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:179
+#: templates/js/translated/company.js:79 templates/js/translated/company.js:181
msgid "Add Manufacturer Part"
msgstr "添加制造商商品"
-#: templates/js/translated/company.js:99
+#: templates/js/translated/company.js:100
msgid "Edit Manufacturer Part"
msgstr "编辑制造商商品"
-#: templates/js/translated/company.js:167 templates/js/translated/order.js:511
+#: templates/js/translated/company.js:169 templates/js/translated/order.js:576
msgid "Add Supplier"
msgstr "添加供应商"
-#: templates/js/translated/company.js:195 templates/js/translated/order.js:734
+#: templates/js/translated/company.js:197 templates/js/translated/order.js:828
msgid "Add Supplier Part"
msgstr "添加供应商商品"
-#: templates/js/translated/company.js:262
+#: templates/js/translated/company.js:297
msgid "All selected supplier parts will be deleted"
msgstr "删除所有选定的供应商商品"
-#: templates/js/translated/company.js:278
+#: templates/js/translated/company.js:313
msgid "Delete Supplier Parts"
msgstr ""
-#: templates/js/translated/company.js:350
+#: templates/js/translated/company.js:385
msgid "Add new Company"
msgstr "增加新的公司信息"
-#: templates/js/translated/company.js:427
+#: templates/js/translated/company.js:462
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:436
+#: templates/js/translated/company.js:471
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:451
+#: templates/js/translated/company.js:486
msgid "No company information found"
msgstr "未找到该公司信息"
-#: templates/js/translated/company.js:492
+#: templates/js/translated/company.js:527
msgid "All selected manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:507
+#: templates/js/translated/company.js:542
msgid "Delete Manufacturer Parts"
msgstr "删除制造商商品"
-#: templates/js/translated/company.js:541
+#: templates/js/translated/company.js:576
msgid "All selected parameters will be deleted"
msgstr ""
-#: templates/js/translated/company.js:555
+#: templates/js/translated/company.js:590
msgid "Delete Parameters"
msgstr "删除参数"
-#: templates/js/translated/company.js:596
+#: templates/js/translated/company.js:631
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:616
-#: templates/js/translated/company.js:876 templates/js/translated/part.js:638
-#: templates/js/translated/part.js:723
+#: templates/js/translated/company.js:651
+#: templates/js/translated/company.js:912 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:721
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:620
-#: templates/js/translated/company.js:880 templates/js/translated/part.js:642
-#: templates/js/translated/part.js:727
+#: templates/js/translated/company.js:655
+#: templates/js/translated/company.js:916 templates/js/translated/part.js:640
+#: templates/js/translated/part.js:725
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:748 templates/js/translated/part.js:830
+#: templates/js/translated/company.js:783 templates/js/translated/part.js:828
msgid "No parameters found"
msgstr "无指定参数"
-#: templates/js/translated/company.js:785 templates/js/translated/part.js:872
+#: templates/js/translated/company.js:820 templates/js/translated/part.js:870
msgid "Edit parameter"
msgstr "编辑参数"
-#: templates/js/translated/company.js:786 templates/js/translated/part.js:873
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:871
msgid "Delete parameter"
msgstr "删除参数"
-#: templates/js/translated/company.js:805 templates/js/translated/part.js:890
+#: templates/js/translated/company.js:840 templates/js/translated/part.js:888
msgid "Edit Parameter"
msgstr "编辑参数"
-#: templates/js/translated/company.js:816 templates/js/translated/part.js:902
+#: templates/js/translated/company.js:851 templates/js/translated/part.js:900
msgid "Delete Parameter"
msgstr "删除参数"
-#: templates/js/translated/company.js:856
+#: templates/js/translated/company.js:891
msgid "No supplier parts found"
msgstr "未找到供应商商品"
-#: templates/js/translated/company.js:1002
+#: templates/js/translated/company.js:1032
+msgid "Availability"
+msgstr ""
+
+#: templates/js/translated/company.js:1055
msgid "Edit supplier part"
msgstr "编辑供应商商品"
-#: templates/js/translated/company.js:1003
+#: templates/js/translated/company.js:1056
msgid "Delete supplier part"
msgstr "删除供应商商品"
@@ -8547,61 +8580,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:367 templates/js/translated/forms.js:382
-#: templates/js/translated/forms.js:396 templates/js/translated/forms.js:410
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:369
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:384
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:398
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:670
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:771
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1269 templates/modals.html:19
+#: templates/js/translated/forms.js:1274 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1702
+#: templates/js/translated/forms.js:1707
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1917 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2170
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2636
+#: templates/js/translated/forms.js:2641
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2648
+#: templates/js/translated/forms.js:2653
msgid "Select Columns"
msgstr ""
@@ -8792,409 +8825,422 @@ msgstr ""
msgid "Notifications will load here"
msgstr ""
-#: templates/js/translated/order.js:96
+#: templates/js/translated/order.js:97
msgid "No stock items have been allocated to this shipment"
msgstr ""
-#: templates/js/translated/order.js:101
+#: templates/js/translated/order.js:102
msgid "The following stock items will be shipped"
msgstr ""
-#: templates/js/translated/order.js:141
+#: templates/js/translated/order.js:142
msgid "Complete Shipment"
msgstr ""
-#: templates/js/translated/order.js:161
+#: templates/js/translated/order.js:162
msgid "Confirm Shipment"
msgstr ""
-#: templates/js/translated/order.js:217
+#: templates/js/translated/order.js:218
msgid "No pending shipments found"
msgstr ""
-#: templates/js/translated/order.js:221
+#: templates/js/translated/order.js:222
msgid "No stock items have been allocated to pending shipments"
msgstr ""
-#: templates/js/translated/order.js:253
+#: templates/js/translated/order.js:254
msgid "Skip"
msgstr ""
-#: templates/js/translated/order.js:283
+#: templates/js/translated/order.js:284
msgid "Complete Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:289
+#: templates/js/translated/order.js:301 templates/js/translated/order.js:413
msgid "Mark this order as complete?"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:307
msgid "All line items have been received"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:312
msgid "This order has line items which have not been marked as received."
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:313 templates/js/translated/order.js:427
msgid "Completing this order means that the order and line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:324
+#: templates/js/translated/order.js:336
msgid "Cancel Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:329
+#: templates/js/translated/order.js:341
msgid "Are you sure you wish to cancel this purchase order?"
msgstr ""
-#: templates/js/translated/order.js:335
+#: templates/js/translated/order.js:347
msgid "This purchase order can not be cancelled"
msgstr ""
-#: templates/js/translated/order.js:358
+#: templates/js/translated/order.js:370
msgid "Issue Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:363
+#: templates/js/translated/order.js:375
msgid "After placing this purchase order, line items will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:385
+#: templates/js/translated/order.js:426
+msgid "This order has line items which have not been completed."
+msgstr ""
+
+#: templates/js/translated/order.js:450
msgid "Cancel Sales Order"
msgstr ""
-#: templates/js/translated/order.js:390
+#: templates/js/translated/order.js:455
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: templates/js/translated/order.js:444
+#: templates/js/translated/order.js:509
msgid "Create New Shipment"
msgstr ""
-#: templates/js/translated/order.js:469
+#: templates/js/translated/order.js:534
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:494
+#: templates/js/translated/order.js:559
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:555
+#: templates/js/translated/order.js:620
msgid "Select purchase order to duplicate"
msgstr ""
-#: templates/js/translated/order.js:562
+#: templates/js/translated/order.js:627
msgid "Duplicate Line Items"
msgstr ""
-#: templates/js/translated/order.js:563
+#: templates/js/translated/order.js:628
msgid "Duplicate all line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:570
+#: templates/js/translated/order.js:635
msgid "Duplicate Extra Lines"
msgstr ""
-#: templates/js/translated/order.js:571
+#: templates/js/translated/order.js:636
msgid "Duplicate extra line items from the selected order"
msgstr ""
-#: templates/js/translated/order.js:588
+#: templates/js/translated/order.js:653
msgid "Edit Purchase Order"
msgstr ""
-#: templates/js/translated/order.js:605
+#: templates/js/translated/order.js:670
msgid "Duplication Options"
msgstr ""
-#: templates/js/translated/order.js:863
+#: templates/js/translated/order.js:957
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:914
+#: templates/js/translated/order.js:1008
msgid "At least one purchaseable part must be selected"
msgstr ""
-#: templates/js/translated/order.js:939
+#: templates/js/translated/order.js:1033
msgid "Quantity to order"
msgstr ""
-#: templates/js/translated/order.js:948
+#: templates/js/translated/order.js:1042
msgid "New supplier part"
msgstr ""
-#: templates/js/translated/order.js:966
+#: templates/js/translated/order.js:1060
msgid "New purchase order"
msgstr ""
-#: templates/js/translated/order.js:999
+#: templates/js/translated/order.js:1093
msgid "Add to purchase order"
msgstr ""
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/order.js:1233
msgid "No matching supplier parts"
msgstr ""
-#: templates/js/translated/order.js:1123
+#: templates/js/translated/order.js:1252
msgid "No matching purchase orders"
msgstr ""
-#: templates/js/translated/order.js:1300
+#: templates/js/translated/order.js:1429
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:1301
+#: templates/js/translated/order.js:1430
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:1321 templates/js/translated/order.js:1420
+#: templates/js/translated/order.js:1450 templates/js/translated/order.js:1563
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:1327 templates/js/translated/order.js:1431
+#: templates/js/translated/order.js:1456 templates/js/translated/order.js:1574
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1339
+#: templates/js/translated/order.js:1471
+msgid "Received Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:1482
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1403 templates/js/translated/stock.js:2144
+#: templates/js/translated/order.js:1546 templates/js/translated/stock.js:2140
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:1494
+#: templates/js/translated/order.js:1639
msgid "Order Code"
msgstr "订单编码"
-#: templates/js/translated/order.js:1495
+#: templates/js/translated/order.js:1640
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:1497
+#: templates/js/translated/order.js:1642
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:1516
+#: templates/js/translated/order.js:1661
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:1517
+#: templates/js/translated/order.js:1662
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1778 templates/js/translated/part.js:943
+#: templates/js/translated/order.js:1940 templates/js/translated/part.js:941
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:1805 templates/js/translated/order.js:2609
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2803
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1855 templates/js/translated/order.js:2674
-#: templates/js/translated/order.js:2815
+#: templates/js/translated/order.js:2017 templates/js/translated/order.js:2868
+#: templates/js/translated/order.js:3009
msgid "Items"
msgstr ""
-#: templates/js/translated/order.js:1953 templates/js/translated/order.js:3889
+#: templates/js/translated/order.js:2115 templates/js/translated/order.js:4083
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/order.js:1970 templates/js/translated/order.js:3911
+#: templates/js/translated/order.js:2132 templates/js/translated/order.js:4105
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1983 templates/js/translated/order.js:3922
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:4116
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:2026
+#: templates/js/translated/order.js:2188
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:2053 templates/js/translated/order.js:3623
+#: templates/js/translated/order.js:2215 templates/js/translated/order.js:3817
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2107 templates/js/translated/order.js:2309
-#: templates/js/translated/order.js:3648 templates/js/translated/order.js:4156
-#: templates/js/translated/part.js:2155 templates/js/translated/part.js:2753
+#: templates/js/translated/order.js:2270 templates/js/translated/part.js:1043
+#: templates/js/translated/part.js:1095
+msgid "Total Quantity"
+msgstr ""
+
+#: templates/js/translated/order.js:2301 templates/js/translated/order.js:2503
+#: templates/js/translated/order.js:3842 templates/js/translated/order.js:4350
+#: templates/js/translated/part.js:2184 templates/js/translated/part.js:2782
msgid "Unit Price"
msgstr "单价"
-#: templates/js/translated/order.js:2122 templates/js/translated/order.js:2325
-#: templates/js/translated/order.js:3664 templates/js/translated/order.js:4172
+#: templates/js/translated/order.js:2316 templates/js/translated/order.js:2519
+#: templates/js/translated/order.js:3858 templates/js/translated/order.js:4366
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:2163 templates/js/translated/order.js:3706
-#: templates/js/translated/part.js:1070
+#: templates/js/translated/order.js:2357 templates/js/translated/order.js:3900
+#: templates/js/translated/part.js:1079
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2222 templates/js/translated/part.js:1110
+#: templates/js/translated/order.js:2416 templates/js/translated/part.js:1130
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:2226 templates/js/translated/order.js:3843
+#: templates/js/translated/order.js:2420 templates/js/translated/order.js:4037
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/order.js:2227 templates/js/translated/order.js:3844
+#: templates/js/translated/order.js:2421 templates/js/translated/order.js:4038
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:2228 templates/js/translated/order.js:3848
+#: templates/js/translated/order.js:2422 templates/js/translated/order.js:4042
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:2374 templates/js/translated/order.js:4221
+#: templates/js/translated/order.js:2568 templates/js/translated/order.js:4415
msgid "Duplicate line"
msgstr ""
-#: templates/js/translated/order.js:2375 templates/js/translated/order.js:4222
+#: templates/js/translated/order.js:2569 templates/js/translated/order.js:4416
msgid "Edit line"
msgstr ""
-#: templates/js/translated/order.js:2376 templates/js/translated/order.js:4223
+#: templates/js/translated/order.js:2570 templates/js/translated/order.js:4417
msgid "Delete line"
msgstr ""
-#: templates/js/translated/order.js:2406 templates/js/translated/order.js:4253
+#: templates/js/translated/order.js:2600 templates/js/translated/order.js:4447
msgid "Duplicate Line"
msgstr ""
-#: templates/js/translated/order.js:2427 templates/js/translated/order.js:4274
+#: templates/js/translated/order.js:2621 templates/js/translated/order.js:4468
msgid "Edit Line"
msgstr ""
-#: templates/js/translated/order.js:2438 templates/js/translated/order.js:4285
+#: templates/js/translated/order.js:2632 templates/js/translated/order.js:4479
msgid "Delete Line"
msgstr ""
-#: templates/js/translated/order.js:2449
+#: templates/js/translated/order.js:2643
msgid "No matching line"
msgstr ""
-#: templates/js/translated/order.js:2560
+#: templates/js/translated/order.js:2754
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:2623
+#: templates/js/translated/order.js:2817
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:2721
+#: templates/js/translated/order.js:2915
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:2724
+#: templates/js/translated/order.js:2918
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:2729
+#: templates/js/translated/order.js:2923
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:2749
+#: templates/js/translated/order.js:2943
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:2766
+#: templates/js/translated/order.js:2960
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:2800
+#: templates/js/translated/order.js:2994
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:2810
+#: templates/js/translated/order.js:3004
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:2834
+#: templates/js/translated/order.js:3028
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:2840
+#: templates/js/translated/order.js:3034
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:2844
+#: templates/js/translated/order.js:3038
msgid "Invoice"
msgstr ""
-#: templates/js/translated/order.js:3013
+#: templates/js/translated/order.js:3207
msgid "Add Shipment"
msgstr ""
-#: templates/js/translated/order.js:3064
+#: templates/js/translated/order.js:3258
msgid "Confirm stock allocation"
msgstr "确认库存分配"
-#: templates/js/translated/order.js:3065
+#: templates/js/translated/order.js:3259
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:3273
+#: templates/js/translated/order.js:3467
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:3352
+#: templates/js/translated/order.js:3546
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3369
+#: templates/js/translated/order.js:3563
msgid "Confirm Delete Operation"
msgstr "确认删除操作"
-#: templates/js/translated/order.js:3370
+#: templates/js/translated/order.js:3564
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:3415 templates/js/translated/order.js:3504
+#: templates/js/translated/order.js:3609 templates/js/translated/order.js:3698
#: templates/js/translated/stock.js:1602
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:3423 templates/js/translated/order.js:3513
+#: templates/js/translated/order.js:3617 templates/js/translated/order.js:3707
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:3827
+#: templates/js/translated/order.js:4021
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:3833
+#: templates/js/translated/order.js:4027
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:3840 templates/js/translated/order.js:4038
+#: templates/js/translated/order.js:4034 templates/js/translated/order.js:4232
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:3852
+#: templates/js/translated/order.js:4046
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:3855
+#: templates/js/translated/order.js:4049
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:3937
+#: templates/js/translated/order.js:4131
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:4046
+#: templates/js/translated/order.js:4240
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:4060
+#: templates/js/translated/order.js:4254
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/order.js:4296
+#: templates/js/translated/order.js:4490
msgid "No matching lines"
msgstr ""
@@ -9374,173 +9420,177 @@ msgstr ""
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:586 templates/js/translated/part.js:1498
+#: templates/js/translated/part.js:584 templates/js/translated/part.js:1515
#: templates/js/translated/table_filters.js:468
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:596
+#: templates/js/translated/part.js:594
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:715
+#: templates/js/translated/part.js:628 templates/js/translated/part.js:713
msgid "Trackable part"
msgstr "可追溯商品"
-#: templates/js/translated/part.js:634 templates/js/translated/part.js:719
+#: templates/js/translated/part.js:632 templates/js/translated/part.js:717
msgid "Virtual part"
msgstr "虚拟商品"
-#: templates/js/translated/part.js:646
+#: templates/js/translated/part.js:644
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:650
+#: templates/js/translated/part.js:648
msgid "Salable part"
msgstr "可销售商品"
-#: templates/js/translated/part.js:778
+#: templates/js/translated/part.js:776
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1180
+#: templates/js/translated/part.js:1200
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1204
+#: templates/js/translated/part.js:1224
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1271 templates/js/translated/part.js:1573
+#: templates/js/translated/part.js:1291 templates/js/translated/part.js:1602
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1310
-msgid "Not available"
-msgstr ""
-
-#: templates/js/translated/part.js:1461
+#: templates/js/translated/part.js:1482
msgid "No category"
msgstr "没有分类"
-#: templates/js/translated/part.js:1496
+#: templates/js/translated/part.js:1513
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1597 templates/js/translated/part.js:1840
-#: templates/js/translated/stock.js:2347
+#: templates/js/translated/part.js:1537
+msgid "Allocated to build orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1541
+msgid "Allocated to sales orders"
+msgstr ""
+
+#: templates/js/translated/part.js:1626 templates/js/translated/part.js:1869
+#: templates/js/translated/stock.js:2343
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1613
+#: templates/js/translated/part.js:1642
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1679
+#: templates/js/translated/part.js:1708
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1684
+#: templates/js/translated/part.js:1713
msgid "Set Part Category"
msgstr "设置商品类别"
-#: templates/js/translated/part.js:1689
+#: templates/js/translated/part.js:1718
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1702
+#: templates/js/translated/part.js:1731
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1859 templates/js/translated/stock.js:2366
+#: templates/js/translated/part.js:1888 templates/js/translated/stock.js:2362
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1938
+#: templates/js/translated/part.js:1967
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:1954
+#: templates/js/translated/part.js:1983
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2012
+#: templates/js/translated/part.js:2041
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:1299
+#: templates/js/translated/part.js:2092 templates/js/translated/stock.js:1299
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2064 templates/js/translated/stock.js:1300
+#: templates/js/translated/part.js:2093 templates/js/translated/stock.js:1300
#: templates/js/translated/stock.js:1560
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2070
+#: templates/js/translated/part.js:2099
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2092
+#: templates/js/translated/part.js:2121
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2106
+#: templates/js/translated/part.js:2135
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2131
+#: templates/js/translated/part.js:2160
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:2188
+#: templates/js/translated/part.js:2217
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2189
+#: templates/js/translated/part.js:2218
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2354 templates/js/translated/part.js:2355
+#: templates/js/translated/part.js:2383 templates/js/translated/part.js:2384
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2357
+#: templates/js/translated/part.js:2386
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2363
+#: templates/js/translated/part.js:2392
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2413
+#: templates/js/translated/part.js:2442
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2419
+#: templates/js/translated/part.js:2448
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2515
+#: templates/js/translated/part.js:2544
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2531
+#: templates/js/translated/part.js:2560
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2576
+#: templates/js/translated/part.js:2605
msgid "Minimum Stock Level"
msgstr ""
-#: templates/js/translated/part.js:2677
+#: templates/js/translated/part.js:2706
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:2696
+#: templates/js/translated/part.js:2725
msgid "Single Price Difference"
msgstr ""
@@ -9778,7 +9828,7 @@ msgstr ""
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:942 users/models.py:216
+#: templates/js/translated/stock.js:942 users/models.py:218
msgid "Add"
msgstr "添加"
@@ -9854,156 +9904,156 @@ msgstr ""
msgid "No stock location set"
msgstr "未设置仓储地点"
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1775
msgid "Stock item is in production"
msgstr "库存品正在生产"
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1780
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1787
+#: templates/js/translated/stock.js:1783
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1790
+#: templates/js/translated/stock.js:1786
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1792
+#: templates/js/translated/stock.js:1788
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1794
+#: templates/js/translated/stock.js:1790
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1797
+#: templates/js/translated/stock.js:1793
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1797
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1803
+#: templates/js/translated/stock.js:1799
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1810
+#: templates/js/translated/stock.js:1806
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:1808
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1814
+#: templates/js/translated/stock.js:1810
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1818
+#: templates/js/translated/stock.js:1814
#: templates/js/translated/table_filters.js:196
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1869
+#: templates/js/translated/stock.js:1865
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1948
+#: templates/js/translated/stock.js:1944
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1986
+#: templates/js/translated/stock.js:1982
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2159
+#: templates/js/translated/stock.js:2155
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2173
+#: templates/js/translated/stock.js:2169
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2174
+#: templates/js/translated/stock.js:2170
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2404
+#: templates/js/translated/stock.js:2400
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2493
+#: templates/js/translated/stock.js:2489
msgid "Details"
msgstr "详情"
-#: templates/js/translated/stock.js:2509
+#: templates/js/translated/stock.js:2505
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2531
+#: templates/js/translated/stock.js:2527
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2550
+#: templates/js/translated/stock.js:2546
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2569
+#: templates/js/translated/stock.js:2565
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2587
+#: templates/js/translated/stock.js:2583
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2610
+#: templates/js/translated/stock.js:2606
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2618
+#: templates/js/translated/stock.js:2614
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2694
+#: templates/js/translated/stock.js:2690
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2745 templates/js/translated/stock.js:2781
+#: templates/js/translated/stock.js:2741 templates/js/translated/stock.js:2777
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2790
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2815
+#: templates/js/translated/stock.js:2811
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2816
+#: templates/js/translated/stock.js:2812
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2818
+#: templates/js/translated/stock.js:2814
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2819
+#: templates/js/translated/stock.js:2815
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2820
+#: templates/js/translated/stock.js:2816
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2821
+#: templates/js/translated/stock.js:2817
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2834
+#: templates/js/translated/stock.js:2830
msgid "Select part to install"
msgstr ""
@@ -10525,35 +10575,35 @@ msgstr "权限"
msgid "Important dates"
msgstr "重要日期"
-#: users/models.py:203
+#: users/models.py:205
msgid "Permission set"
msgstr "权限设置"
-#: users/models.py:211
+#: users/models.py:213
msgid "Group"
msgstr "群组"
-#: users/models.py:214
+#: users/models.py:216
msgid "View"
msgstr "视图"
-#: users/models.py:214
+#: users/models.py:216
msgid "Permission to view items"
msgstr "查看项目权限"
-#: users/models.py:216
+#: users/models.py:218
msgid "Permission to add items"
msgstr "添加项目权限"
-#: users/models.py:218
+#: users/models.py:220
msgid "Change"
msgstr "更改"
-#: users/models.py:218
+#: users/models.py:220
msgid "Permissions to edit items"
msgstr "编辑项目权限"
-#: users/models.py:220
+#: users/models.py:222
msgid "Permission to delete items"
msgstr "删除项目权限"
diff --git a/InvenTree/order/fixtures/order.yaml b/InvenTree/order/fixtures/order.yaml
index 6c13b10020..fc0dc070fc 100644
--- a/InvenTree/order/fixtures/order.yaml
+++ b/InvenTree/order/fixtures/order.yaml
@@ -5,6 +5,7 @@
pk: 1
fields:
reference: 'PO-0001'
+ reference_int: 1
description: "Ordering some screws"
supplier: 1
status: 10 # Pending
@@ -14,6 +15,7 @@
pk: 2
fields:
reference: 'PO-0002'
+ reference_int: 2
description: "Ordering some more screws"
supplier: 3
status: 10 # Pending
@@ -22,6 +24,7 @@
pk: 3
fields:
reference: 'PO-0003'
+ reference_int: 3
description: 'Another PO'
supplier: 3
status: 20 # Placed
@@ -30,6 +33,7 @@
pk: 4
fields:
reference: 'PO-0004'
+ reference_int: 4
description: 'Another PO'
supplier: 3
status: 20 # Placed
@@ -38,6 +42,7 @@
pk: 5
fields:
reference: 'PO-0005'
+ reference_int: 5
description: 'Another PO'
supplier: 3
status: 30 # Complete
@@ -46,6 +51,7 @@
pk: 6
fields:
reference: 'PO-0006'
+ reference_int: 6
description: 'Another PO'
supplier: 3
status: 40 # Cancelled
@@ -55,6 +61,7 @@
pk: 7
fields:
reference: 'PO-0007'
+ reference_int: 7
description: 'Another PO'
supplier: 2
status: 10 # Pending
diff --git a/InvenTree/order/models.py b/InvenTree/order/models.py
index d3d4922d46..94cc4078ec 100644
--- a/InvenTree/order/models.py
+++ b/InvenTree/order/models.py
@@ -450,11 +450,11 @@ class PurchaseOrder(Order):
notes = kwargs.get('notes', '')
# Extract optional barcode field
- barcode = kwargs.get('barcode', None)
+ barcode_hash = kwargs.get('barcode', None)
# Prevent null values for barcode
- if barcode is None:
- barcode = ''
+ if barcode_hash is None:
+ barcode_hash = ''
if self.status != PurchaseOrderStatus.PLACED:
raise ValidationError(
@@ -475,6 +475,9 @@ class PurchaseOrder(Order):
# Create a new stock item
if line.part and quantity > 0:
+ # Take the 'pack_size' of the SupplierPart into account
+ pack_quantity = Decimal(quantity) * Decimal(line.part.pack_size)
+
# Determine if we should individually serialize the items, or not
if type(serials) is list and len(serials) > 0:
serialize = True
@@ -488,13 +491,13 @@ class PurchaseOrder(Order):
part=line.part.part,
supplier_part=line.part,
location=location,
- quantity=1 if serialize else quantity,
+ quantity=1 if serialize else pack_quantity,
purchase_order=self,
status=status,
batch=batch_code,
serial=sn,
purchase_price=line.purchase_price,
- uid=barcode
+ barcode_hash=barcode_hash
)
stock.save(add_note=False)
@@ -515,6 +518,7 @@ class PurchaseOrder(Order):
)
# Update the number of parts received against the particular line item
+ # Note that this quantity does *not* take the pack_size into account, it is "number of packs"
line.received += quantity
line.save()
diff --git a/InvenTree/order/serializers.py b/InvenTree/order/serializers.py
index f161d42b5b..6d23e83628 100644
--- a/InvenTree/order/serializers.py
+++ b/InvenTree/order/serializers.py
@@ -497,7 +497,7 @@ class PurchaseOrderLineItemReceiveSerializer(serializers.Serializer):
if not barcode or barcode.strip() == '':
return None
- if stock.models.StockItem.objects.filter(uid=barcode).exists():
+ if stock.models.StockItem.objects.filter(barcode_hash=barcode).exists():
raise ValidationError(_('Barcode is already in use'))
return barcode
@@ -515,11 +515,14 @@ class PurchaseOrderLineItemReceiveSerializer(serializers.Serializer):
serial_numbers = data.get('serial_numbers', '').strip()
base_part = line_item.part.part
+ pack_size = line_item.part.pack_size
+
+ pack_quantity = pack_size * quantity
# Does the quantity need to be "integer" (for trackable parts?)
if base_part.trackable:
- if Decimal(quantity) != int(quantity):
+ if Decimal(pack_quantity) != int(pack_quantity):
raise ValidationError({
'quantity': _('An integer quantity must be provided for trackable parts'),
})
@@ -528,7 +531,7 @@ class PurchaseOrderLineItemReceiveSerializer(serializers.Serializer):
if serial_numbers:
try:
# Pass the serial numbers through to the parent serializer once validated
- data['serials'] = extract_serial_numbers(serial_numbers, quantity, base_part.getLatestSerialNumberInt())
+ data['serials'] = extract_serial_numbers(serial_numbers, pack_quantity, base_part.getLatestSerialNumberInt())
except DjangoValidationError as e:
raise ValidationError({
'serial_numbers': e.messages,
diff --git a/InvenTree/order/templates/order/order_base.html b/InvenTree/order/templates/order/order_base.html
index cbb82640db..5ffb6bcd7e 100644
--- a/InvenTree/order/templates/order/order_base.html
+++ b/InvenTree/order/templates/order/order_base.html
@@ -42,12 +42,18 @@
@@ -235,19 +241,11 @@ $("#edit-order").click(function() {
$("#receive-order").click(function() {
// Auto select items which have not been fully allocated
- var items = $("#po-line-table").bootstrapTable('getData');
-
- var items_to_receive = [];
-
- items.forEach(function(item) {
- if (item.received < item.quantity) {
- items_to_receive.push(item);
- }
- });
+ var items = getTableData('#po-line-table');
receivePurchaseOrderItems(
{{ order.id }},
- items_to_receive,
+ items,
{
success: function() {
$("#po-line-table").bootstrapTable('refresh');
diff --git a/InvenTree/order/templates/order/purchase_order_detail.html b/InvenTree/order/templates/order/purchase_order_detail.html
index 8e301acf39..ace9ae77c3 100644
--- a/InvenTree/order/templates/order/purchase_order_detail.html
+++ b/InvenTree/order/templates/order/purchase_order_detail.html
@@ -222,6 +222,10 @@ $("#new-po-extra-line").click(function() {
order: {{ order.pk }},
});
+ {% if order.supplier.currency %}
+ fields.price_currency.value = '{{ order.supplier.currency }}';
+ {% endif %}
+
constructForm('{% url "api-po-extra-line-list" %}', {
fields: fields,
method: 'POST',
diff --git a/InvenTree/order/test_api.py b/InvenTree/order/test_api.py
index da8011923b..b7d4fec091 100644
--- a/InvenTree/order/test_api.py
+++ b/InvenTree/order/test_api.py
@@ -582,11 +582,11 @@ class PurchaseOrderReceiveTest(OrderTest):
"""Tests for checking in items with invalid barcodes:
- Cannot check in "duplicate" barcodes
- - Barcodes cannot match UID field for existing StockItem
+ - Barcodes cannot match 'barcode_hash' field for existing StockItem
"""
# Set stock item barcode
item = StockItem.objects.get(pk=1)
- item.uid = 'MY-BARCODE-HASH'
+ item.barcode_hash = 'MY-BARCODE-HASH'
item.save()
response = self.post(
@@ -705,8 +705,8 @@ class PurchaseOrderReceiveTest(OrderTest):
self.assertEqual(stock_2.last().location.pk, 2)
# Barcodes should have been assigned to the stock items
- self.assertTrue(StockItem.objects.filter(uid='MY-UNIQUE-BARCODE-123').exists())
- self.assertTrue(StockItem.objects.filter(uid='MY-UNIQUE-BARCODE-456').exists())
+ self.assertTrue(StockItem.objects.filter(barcode_hash='MY-UNIQUE-BARCODE-123').exists())
+ self.assertTrue(StockItem.objects.filter(barcode_hash='MY-UNIQUE-BARCODE-456').exists())
def test_batch_code(self):
"""Test that we can supply a 'batch code' when receiving items."""
diff --git a/InvenTree/order/tests.py b/InvenTree/order/tests.py
index 3885c972c4..8c66b3a53a 100644
--- a/InvenTree/order/tests.py
+++ b/InvenTree/order/tests.py
@@ -1,6 +1,7 @@
"""Various unit tests for order models"""
from datetime import datetime, timedelta
+from decimal import Decimal
import django.core.exceptions as django_exceptions
from django.contrib.auth import get_user_model
@@ -194,11 +195,18 @@ class OrderTest(TestCase):
# Receive the rest of the items
order.receive_line_item(line, loc, 50, user=None)
+ self.assertEqual(part.on_order, 1300)
+
line = PurchaseOrderLineItem.objects.get(id=2)
+ in_stock = part.total_stock
+
order.receive_line_item(line, loc, 500, user=None)
- self.assertEqual(part.on_order, 800)
+ # Check that the part stock quantity has increased by the correct amount
+ self.assertEqual(part.total_stock, in_stock + 500)
+
+ self.assertEqual(part.on_order, 1100)
self.assertEqual(order.status, PurchaseOrderStatus.PLACED)
for line in order.pending_line_items():
@@ -206,6 +214,91 @@ class OrderTest(TestCase):
self.assertEqual(order.status, PurchaseOrderStatus.COMPLETE)
+ def test_receive_pack_size(self):
+ """Test receiving orders from suppliers with different pack_size values"""
+
+ prt = Part.objects.get(pk=1)
+ sup = Company.objects.get(pk=1)
+
+ # Create a new supplier part with larger pack size
+ sp_1 = SupplierPart.objects.create(
+ part=prt,
+ supplier=sup,
+ SKU='SKUx10',
+ pack_size=10,
+ )
+
+ # Create a new supplier part with smaller pack size
+ sp_2 = SupplierPart.objects.create(
+ part=prt,
+ supplier=sup,
+ SKU='SKUx0.1',
+ pack_size=0.1,
+ )
+
+ # Record values before we start
+ on_order = prt.on_order
+ in_stock = prt.total_stock
+
+ n = PurchaseOrder.objects.count()
+
+ # Create a new PurchaseOrder
+ po = PurchaseOrder.objects.create(
+ supplier=sup,
+ reference=f"PO-{n + 1}",
+ description='Some PO',
+ )
+
+ # Add line items
+
+ # 3 x 10 = 30
+ line_1 = PurchaseOrderLineItem.objects.create(
+ order=po,
+ part=sp_1,
+ quantity=3
+ )
+
+ # 13 x 0.1 = 1.3
+ line_2 = PurchaseOrderLineItem.objects.create(
+ order=po,
+ part=sp_2,
+ quantity=13,
+ )
+
+ po.place_order()
+
+ # The 'on_order' quantity should have been increased by 31.3
+ self.assertEqual(prt.on_order, round(on_order + Decimal(31.3), 1))
+
+ loc = StockLocation.objects.get(id=1)
+
+ # Receive 1x item against line_1
+ po.receive_line_item(line_1, loc, 1, user=None)
+
+ # Receive 5x item against line_2
+ po.receive_line_item(line_2, loc, 5, user=None)
+
+ # Check that the line items have been updated correctly
+ self.assertEqual(line_1.quantity, 3)
+ self.assertEqual(line_1.received, 1)
+ self.assertEqual(line_1.remaining(), 2)
+
+ self.assertEqual(line_2.quantity, 13)
+ self.assertEqual(line_2.received, 5)
+ self.assertEqual(line_2.remaining(), 8)
+
+ # The 'on_order' quantity should have decreased by 10.5
+ self.assertEqual(
+ prt.on_order,
+ round(on_order + Decimal(31.3) - Decimal(10.5), 1)
+ )
+
+ # The 'in_stock' quantity should have increased by 10.5
+ self.assertEqual(
+ prt.total_stock,
+ round(in_stock + Decimal(10.5), 1)
+ )
+
def test_overdue_notification(self):
"""Test overdue purchase order notification
diff --git a/InvenTree/part/filters.py b/InvenTree/part/filters.py
index 112a1799eb..026328f816 100644
--- a/InvenTree/part/filters.py
+++ b/InvenTree/part/filters.py
@@ -19,8 +19,8 @@ Relevant PRs:
from decimal import Decimal
from django.db import models
-from django.db.models import (F, FloatField, Func, IntegerField, OuterRef, Q,
- Subquery)
+from django.db.models import (DecimalField, ExpressionWrapper, F, FloatField,
+ Func, IntegerField, OuterRef, Q, Subquery)
from django.db.models.functions import Coalesce
from sql_util.utils import SubquerySum
@@ -32,19 +32,43 @@ from InvenTree.status_codes import (BuildStatus, PurchaseOrderStatus,
def annotate_on_order_quantity(reference: str = ''):
- """Annotate the 'on order' quantity for each part in a queryset"""
+ """Annotate the 'on order' quantity for each part in a queryset.
+
+ Sum the 'remaining quantity' of each line item for any open purchase orders for each part:
+
+ - Purchase order must be 'active' or 'pending'
+ - Received quantity must be less than line item quantity
+
+ Note that in addition to the 'quantity' on order, we must also take into account 'pack_size'.
+ """
# Filter only 'active' purhase orders
- order_filter = Q(order__status__in=PurchaseOrderStatus.OPEN)
+ # Filter only line with outstanding quantity
+ order_filter = Q(
+ order__status__in=PurchaseOrderStatus.OPEN,
+ quantity__gt=F('received'),
+ )
return Coalesce(
- SubquerySum(f'{reference}supplier_parts__purchase_order_line_items__quantity', filter=order_filter),
+ SubquerySum(
+ ExpressionWrapper(
+ F(f'{reference}supplier_parts__purchase_order_line_items__quantity') * F(f'{reference}supplier_parts__pack_size'),
+ output_field=DecimalField(),
+ ),
+ filter=order_filter
+ ),
Decimal(0),
- output_field=models.DecimalField()
+ output_field=DecimalField()
) - Coalesce(
- SubquerySum(f'{reference}supplier_parts__purchase_order_line_items__received', filter=order_filter),
+ SubquerySum(
+ ExpressionWrapper(
+ F(f'{reference}supplier_parts__purchase_order_line_items__received') * F(f'{reference}supplier_parts__pack_size'),
+ output_field=DecimalField(),
+ ),
+ filter=order_filter
+ ),
Decimal(0),
- output_field=models.DecimalField(),
+ output_field=DecimalField(),
)
diff --git a/InvenTree/part/migrations/0086_auto_20220912_0007.py b/InvenTree/part/migrations/0086_auto_20220912_0007.py
new file mode 100644
index 0000000000..dfaba36cf2
--- /dev/null
+++ b/InvenTree/part/migrations/0086_auto_20220912_0007.py
@@ -0,0 +1,23 @@
+# Generated by Django 3.2.15 on 2022-09-12 00:07
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('part', '0085_partparametertemplate_description'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='part',
+ name='barcode_data',
+ field=models.CharField(blank=True, help_text='Third party barcode data', max_length=500, verbose_name='Barcode Data'),
+ ),
+ migrations.AddField(
+ model_name='part',
+ name='barcode_hash',
+ field=models.CharField(blank=True, help_text='Unique hash of barcode data', max_length=128, verbose_name='Barcode Hash'),
+ ),
+ ]
diff --git a/InvenTree/part/models.py b/InvenTree/part/models.py
index 16035c5a46..6fe06e49db 100644
--- a/InvenTree/part/models.py
+++ b/InvenTree/part/models.py
@@ -43,7 +43,7 @@ from InvenTree import helpers, validators
from InvenTree.fields import InvenTreeNotesField, InvenTreeURLField
from InvenTree.helpers import decimal2money, decimal2string, normalize
from InvenTree.models import (DataImportMixin, InvenTreeAttachment,
- InvenTreeTree)
+ InvenTreeBarcodeMixin, InvenTreeTree)
from InvenTree.status_codes import (BuildStatus, PurchaseOrderStatus,
SalesOrderStatus)
from order import models as OrderModels
@@ -300,7 +300,7 @@ class PartManager(TreeManager):
@cleanup.ignore
-class Part(MetadataMixin, MPTTModel):
+class Part(InvenTreeBarcodeMixin, MetadataMixin, MPTTModel):
"""The Part object represents an abstract part, the 'concept' of an actual entity.
An actual physical instance of a Part is a StockItem which is treated separately.
@@ -941,18 +941,6 @@ class Part(MetadataMixin, MPTTModel):
responsible = models.ForeignKey(User, on_delete=models.SET_NULL, blank=True, null=True, verbose_name=_('Responsible'), related_name='parts_responible')
- def format_barcode(self, **kwargs):
- """Return a JSON string for formatting a barcode for this Part object."""
- return helpers.MakeBarcode(
- "part",
- self.id,
- {
- "name": self.full_name,
- "url": reverse('api-part-detail', kwargs={'pk': self.id}),
- },
- **kwargs
- )
-
@property
def category_path(self):
"""Return the category path of this Part instance"""
@@ -2036,22 +2024,30 @@ class Part(MetadataMixin, MPTTModel):
@property
def on_order(self):
- """Return the total number of items on order for this part."""
- orders = self.supplier_parts.filter(purchase_order_line_items__order__status__in=PurchaseOrderStatus.OPEN).aggregate(
- quantity=Sum('purchase_order_line_items__quantity'),
- received=Sum('purchase_order_line_items__received')
- )
+ """Return the total number of items on order for this part.
- quantity = orders['quantity']
- received = orders['received']
+ Note that some supplier parts may have a different pack_size attribute,
+ and this needs to be taken into account!
+ """
- if quantity is None:
- quantity = 0
+ quantity = 0
- if received is None:
- received = 0
+ # Iterate through all supplier parts
+ for sp in self.supplier_parts.all():
- return quantity - received
+ # Look at any incomplete line item for open orders
+ lines = sp.purchase_order_line_items.filter(
+ order__status__in=PurchaseOrderStatus.OPEN,
+ quantity__gt=F('received'),
+ )
+
+ for line in lines:
+ remaining = line.quantity - line.received
+
+ if remaining > 0:
+ quantity += remaining * sp.pack_size
+
+ return quantity
def get_parameters(self):
"""Return all parameters for this part, ordered by name."""
diff --git a/InvenTree/part/templates/part/part_base.html b/InvenTree/part/templates/part/part_base.html
index a0ad88bed6..aef2183740 100644
--- a/InvenTree/part/templates/part/part_base.html
+++ b/InvenTree/part/templates/part/part_base.html
@@ -45,6 +45,11 @@
{% if barcodes %}
{% trans "Show QR Code" %}
{% endif %}
+ {% if part.barcode_hash %}
+ {% trans "Unink Barcode" %}
+ {% else %}
+ {% trans "Link Barcode" %}
+ {% endif %}
{% if labels_enabled %}
{% trans "Print Label" %}
{% endif %}
@@ -167,6 +172,7 @@
{% trans "Description" %}
{{ part.description }}{% include "clip.html"%}
+
@@ -187,7 +193,7 @@
{% trans "Available Stock" %}
- {% decimal available %}{% if part.units %} {{ part.units }}{% endif %}
+ {% decimal available %} {% include "part/part_units.html" %}
@@ -198,14 +204,14 @@
{% trans "Minimum Stock" %}
- {{ part.minimum_stock }}
+ {{ part.minimum_stock }} {% include "part/part_units.html" %}
{% endif %}
{% if on_order > 0 %}
{% trans "On Order" %}
- {% decimal on_order %}
+ {% decimal on_order %} {% include "part/part_units.html" %}
{% endif %}
{% if part.component %}
@@ -295,6 +301,13 @@
{{ part.keywords }}{% include "clip.html"%}
{% endif %}
+ {% if part.barcode_hash %}
+
+
+ {% trans "Barcode Identifier" %}
+ {{ part.barcode_hash }}
+
+ {% endif %}
@@ -391,6 +404,7 @@
}
);
+ {% if barcodes %}
$("#show-qr-code").click(function() {
launchModalForm(
"{% url 'part-qr' part.id %}",
@@ -400,6 +414,24 @@
);
});
+ $('#barcode-unlink').click(function() {
+ unlinkBarcode({
+ part: {{ part.pk }},
+ });
+ });
+
+ $('#barcode-link').click(function() {
+ linkBarcodeDialog(
+ {
+ part: {{ part.pk }},
+ },
+ {
+ title: '{% trans "Link Barcode to Part" %}',
+ }
+ );
+ });
+ {% endif %}
+
{% if labels_enabled %}
$('#print-label').click(function() {
printPartLabels([{{ part.pk }}]);
diff --git a/InvenTree/part/templates/part/part_units.html b/InvenTree/part/templates/part/part_units.html
new file mode 100644
index 0000000000..86189debf8
--- /dev/null
+++ b/InvenTree/part/templates/part/part_units.html
@@ -0,0 +1 @@
+{% if part.units %}{{ part.units }}{% endif %}
diff --git a/InvenTree/part/templates/part/stock_count.html b/InvenTree/part/templates/part/stock_count.html
index 237c12b83e..41dda6ce5d 100644
--- a/InvenTree/part/templates/part/stock_count.html
+++ b/InvenTree/part/templates/part/stock_count.html
@@ -1,7 +1,7 @@
{% load inventree_extras %}
{% load i18n %}
-{% decimal total_stock %}
+{% decimal total_stock %} {% include "part/part_units.html" %}
{% if total_stock == 0 %}
{% trans "No Stock" %}
diff --git a/InvenTree/part/test_api.py b/InvenTree/part/test_api.py
index 79819d613e..35179485d0 100644
--- a/InvenTree/part/test_api.py
+++ b/InvenTree/part/test_api.py
@@ -1,5 +1,7 @@
"""Unit tests for the various part API endpoints"""
+from random import randint
+
from django.urls import reverse
import PIL
@@ -9,7 +11,7 @@ from rest_framework.test import APIClient
import build.models
import order.models
from common.models import InvenTreeSetting
-from company.models import Company
+from company.models import Company, SupplierPart
from InvenTree.api_tester import InvenTreeAPITestCase
from InvenTree.status_codes import (BuildStatus, PurchaseOrderStatus,
StockStatus)
@@ -1676,6 +1678,110 @@ class PartAPIAggregationTest(InvenTreeAPITestCase):
self.assertEqual(part.total_stock, 91)
self.assertEqual(part.available_stock, 56)
+ def test_on_order(self):
+ """Test that the 'on_order' queryset annotation works as expected.
+
+ This queryset annotation takes into account any outstanding line items for active orders,
+ and should also use the 'pack_size' of the supplier part objects.
+ """
+
+ supplier = Company.objects.create(
+ name='Paint Supplies',
+ description='A supplier of paints',
+ is_supplier=True
+ )
+
+ # First, create some parts
+ paint = PartCategory.objects.create(
+ parent=None,
+ name="Paint",
+ description="Paints and such",
+ )
+
+ for color in ['Red', 'Green', 'Blue', 'Orange', 'Yellow']:
+ p = Part.objects.create(
+ category=paint,
+ units='litres',
+ name=f"{color} Paint",
+ description=f"Paint which is {color} in color"
+ )
+
+ # Create multiple supplier parts in different sizes
+ for pk_sz in [1, 10, 25, 100]:
+ sp = SupplierPart.objects.create(
+ part=p,
+ supplier=supplier,
+ SKU=f"PNT-{color}-{pk_sz}L",
+ pack_size=pk_sz,
+ )
+
+ self.assertEqual(p.supplier_parts.count(), 4)
+
+ # Check that we have the right base data to start with
+ self.assertEqual(paint.parts.count(), 5)
+ self.assertEqual(supplier.supplied_parts.count(), 20)
+
+ supplier_parts = supplier.supplied_parts.all()
+
+ # Create multiple orders
+ for _ii in range(5):
+
+ po = order.models.PurchaseOrder.objects.create(
+ supplier=supplier,
+ description='ordering some paint',
+ )
+
+ # Order an assortment of items
+ for sp in supplier_parts:
+
+ # Generate random quantity to order
+ quantity = randint(10, 20)
+
+ # Mark up to half of the quantity as received
+ received = randint(0, quantity // 2)
+
+ # Add a line item
+ item = order.models.PurchaseOrderLineItem.objects.create(
+ part=sp,
+ order=po,
+ quantity=quantity,
+ received=received,
+ )
+
+ # Now grab a list of parts from the API
+ response = self.get(
+ reverse('api-part-list'),
+ {
+ 'category': paint.pk,
+ },
+ expected_code=200,
+ )
+
+ # Check that the correct number of items have been returned
+ self.assertEqual(len(response.data), 5)
+
+ for item in response.data:
+ # Calculate the 'ordering' quantity from first principles
+ p = Part.objects.get(pk=item['pk'])
+
+ on_order = 0
+
+ for sp in p.supplier_parts.all():
+ for line_item in sp.purchase_order_line_items.all():
+ po = line_item.order
+
+ if po.status in PurchaseOrderStatus.OPEN:
+ remaining = line_item.quantity - line_item.received
+
+ if remaining > 0:
+ on_order += remaining * sp.pack_size
+
+ # The annotated quantity must be equal to the hand-calculated quantity
+ self.assertEqual(on_order, item['ordering'])
+
+ # The annotated quantity must also match the part.on_order quantity
+ self.assertEqual(on_order, p.on_order)
+
class BomItemTest(InvenTreeAPITestCase):
"""Unit tests for the BomItem API."""
diff --git a/InvenTree/part/test_part.py b/InvenTree/part/test_part.py
index a33a0ef83b..47b23f9b78 100644
--- a/InvenTree/part/test_part.py
+++ b/InvenTree/part/test_part.py
@@ -144,6 +144,15 @@ class PartTest(TestCase):
Part.objects.rebuild()
+ def test_barcode_mixin(self):
+ """Test the barcode mixin functionality"""
+
+ self.assertEqual(Part.barcode_model_type(), 'part')
+
+ p = Part.objects.get(pk=1)
+ barcode = p.format_barcode(brief=True)
+ self.assertEqual(barcode, '{"part": 1}')
+
def test_tree(self):
"""Test that the part variant tree is working properly"""
chair = Part.objects.get(pk=10000)
@@ -243,7 +252,7 @@ class PartTest(TestCase):
"""Test barcode format functionality"""
barcode = self.r1.format_barcode(brief=False)
self.assertIn('InvenTree', barcode)
- self.assertIn(self.r1.name, barcode)
+ self.assertIn('"part": {"id": 3}', barcode)
def test_copy(self):
"""Test that we can 'deep copy' a Part instance"""
diff --git a/InvenTree/plugin/base/barcodes/api.py b/InvenTree/plugin/base/barcodes/api.py
index 7cda2576c0..21a35a754a 100644
--- a/InvenTree/plugin/base/barcodes/api.py
+++ b/InvenTree/plugin/base/barcodes/api.py
@@ -1,7 +1,7 @@
"""API endpoints for barcode plugins."""
-from django.urls import path, re_path, reverse
+from django.urls import path, re_path
from django.utils.translation import gettext_lazy as _
from rest_framework import permissions
@@ -9,11 +9,10 @@ from rest_framework.exceptions import ValidationError
from rest_framework.response import Response
from rest_framework.views import APIView
+from InvenTree.helpers import hash_barcode
from plugin import registry
-from plugin.base.barcodes.mixins import hash_barcode
-from plugin.builtin.barcodes.inventree_barcode import InvenTreeBarcodePlugin
-from stock.models import StockItem
-from stock.serializers import StockItemSerializer
+from plugin.builtin.barcodes.inventree_barcode import (
+ InvenTreeExternalBarcodePlugin, InvenTreeInternalBarcodePlugin)
class BarcodeScan(APIView):
@@ -51,85 +50,40 @@ class BarcodeScan(APIView):
if 'barcode' not in data:
raise ValidationError({'barcode': _('Must provide barcode_data parameter')})
- plugins = registry.with_mixin('barcode')
+ # Ensure that the default barcode handlers are run first
+ plugins = [
+ InvenTreeInternalBarcodePlugin(),
+ InvenTreeExternalBarcodePlugin(),
+ ] + registry.with_mixin('barcode')
barcode_data = data.get('barcode')
-
- # Ensure that the default barcode handler is installed
- plugins.append(InvenTreeBarcodePlugin())
+ barcode_hash = hash_barcode(barcode_data)
# Look for a barcode plugin which knows how to deal with this barcode
plugin = None
-
- for current_plugin in plugins:
- current_plugin.init(barcode_data)
-
- if current_plugin.validate():
- plugin = current_plugin
- break
-
- match_found = False
response = {}
+ for current_plugin in plugins:
+
+ result = current_plugin.scan(barcode_data)
+
+ if result is not None:
+ plugin = current_plugin
+ response = result
+ break
+
+ response['plugin'] = plugin.name if plugin else None
response['barcode_data'] = barcode_data
+ response['barcode_hash'] = barcode_hash
- # A plugin has been found!
- if plugin is not None:
-
- # Try to associate with a stock item
- item = plugin.getStockItem()
-
- if item is None:
- item = plugin.getStockItemByHash()
-
- if item is not None:
- response['stockitem'] = plugin.renderStockItem(item)
- response['url'] = reverse('stock-item-detail', kwargs={'pk': item.id})
- match_found = True
-
- # Try to associate with a stock location
- loc = plugin.getStockLocation()
-
- if loc is not None:
- response['stocklocation'] = plugin.renderStockLocation(loc)
- response['url'] = reverse('stock-location-detail', kwargs={'pk': loc.id})
- match_found = True
-
- # Try to associate with a part
- part = plugin.getPart()
-
- if part is not None:
- response['part'] = plugin.renderPart(part)
- response['url'] = reverse('part-detail', kwargs={'pk': part.id})
- match_found = True
-
- response['hash'] = plugin.hash()
- response['plugin'] = plugin.name
-
- # No plugin is found!
- # However, the hash of the barcode may still be associated with a StockItem!
- else:
- result_hash = hash_barcode(barcode_data)
-
- response['hash'] = result_hash
- response['plugin'] = None
-
- # Try to look for a matching StockItem
- try:
- item = StockItem.objects.get(uid=result_hash)
- serializer = StockItemSerializer(item, part_detail=True, location_detail=True, supplier_part_detail=True)
- response['stockitem'] = serializer.data
- response['url'] = reverse('stock-item-detail', kwargs={'pk': item.id})
- match_found = True
- except StockItem.DoesNotExist:
- pass
-
- if not match_found:
+ # A plugin has not been found!
+ if plugin is None:
response['error'] = _('No match found for barcode data')
+
+ raise ValidationError(response)
else:
response['success'] = _('Match found for barcode data')
-
- return Response(response)
+ return Response(response)
class BarcodeAssign(APIView):
@@ -148,97 +102,134 @@ class BarcodeAssign(APIView):
Checks inputs and assign barcode (hash) to StockItem.
"""
+
data = request.data
if 'barcode' not in data:
raise ValidationError({'barcode': _('Must provide barcode_data parameter')})
- if 'stockitem' not in data:
- raise ValidationError({'stockitem': _('Must provide stockitem parameter')})
-
barcode_data = data['barcode']
- try:
- item = StockItem.objects.get(pk=data['stockitem'])
- except (ValueError, StockItem.DoesNotExist):
- raise ValidationError({'stockitem': _('No matching stock item found')})
+ # Here we only check against 'InvenTree' plugins
+ plugins = [
+ InvenTreeInternalBarcodePlugin(),
+ InvenTreeExternalBarcodePlugin(),
+ ]
- plugins = registry.with_mixin('barcode')
+ # First check if the provided barcode matches an existing database entry
+ for plugin in plugins:
+ result = plugin.scan(barcode_data)
- plugin = None
+ if result is not None:
+ result["error"] = _("Barcode matches existing item")
+ result["plugin"] = plugin.name
+ result["barcode_data"] = barcode_data
- for current_plugin in plugins:
- current_plugin.init(barcode_data)
+ raise ValidationError(result)
- if current_plugin.validate():
- plugin = current_plugin
- break
+ barcode_hash = hash_barcode(barcode_data)
- match_found = False
+ valid_labels = []
- response = {}
+ for model in InvenTreeExternalBarcodePlugin.get_supported_barcode_models():
+ label = model.barcode_model_type()
+ valid_labels.append(label)
- response['barcode_data'] = barcode_data
+ if label in data:
+ try:
+ instance = model.objects.get(pk=data[label])
- # Matching plugin was found
- if plugin is not None:
+ instance.assign_barcode(
+ barcode_data=barcode_data,
+ barcode_hash=barcode_hash,
+ )
- result_hash = plugin.hash()
- response['hash'] = result_hash
- response['plugin'] = plugin.name
+ return Response({
+ 'success': f"Assigned barcode to {label} instance",
+ label: {
+ 'pk': instance.pk,
+ },
+ "barcode_data": barcode_data,
+ "barcode_hash": barcode_hash,
+ })
- # Ensure that the barcode does not already match a database entry
+ except (ValueError, model.DoesNotExist):
+ raise ValidationError({
+ 'error': f"No matching {label} instance found in database",
+ })
- if plugin.getStockItem() is not None:
- match_found = True
- response['error'] = _('Barcode already matches Stock Item')
+ # If we got here, it means that no valid model types were provided
+ raise ValidationError({
+ 'error': f"Missing data: provide one of '{valid_labels}'",
+ })
- if plugin.getStockLocation() is not None:
- match_found = True
- response['error'] = _('Barcode already matches Stock Location')
- if plugin.getPart() is not None:
- match_found = True
- response['error'] = _('Barcode already matches Part')
+class BarcodeUnassign(APIView):
+ """Endpoint for unlinking / unassigning a custom barcode from a database object"""
- if not match_found:
- item = plugin.getStockItemByHash()
+ permission_classes = [
+ permissions.IsAuthenticated,
+ ]
- if item is not None:
- response['error'] = _('Barcode hash already matches Stock Item')
- match_found = True
+ def post(self, request, *args, **kwargs):
+ """Respond to a barcode unassign POST request"""
- else:
- result_hash = hash_barcode(barcode_data)
+ # The following database models support assignment of third-party barcodes
+ supported_models = InvenTreeExternalBarcodePlugin.get_supported_barcode_models()
- response['hash'] = result_hash
- response['plugin'] = None
+ supported_labels = [model.barcode_model_type() for model in supported_models]
+ model_names = ', '.join(supported_labels)
- # Lookup stock item by hash
- try:
- item = StockItem.objects.get(uid=result_hash)
- response['error'] = _('Barcode hash already matches Stock Item')
- match_found = True
- except StockItem.DoesNotExist:
- pass
+ data = request.data
- if not match_found:
- response['success'] = _('Barcode associated with Stock Item')
+ matched_labels = []
- # Save the barcode hash
- item.uid = response['hash']
- item.save()
+ for label in supported_labels:
+ if label in data:
+ matched_labels.append(label)
- serializer = StockItemSerializer(item, part_detail=True, location_detail=True, supplier_part_detail=True)
- response['stockitem'] = serializer.data
+ if len(matched_labels) == 0:
+ raise ValidationError({
+ 'error': f"Missing data: Provide one of '{model_names}'"
+ })
- return Response(response)
+ if len(matched_labels) > 1:
+ raise ValidationError({
+ 'error': f"Multiple conflicting fields: '{model_names}'",
+ })
+
+ # At this stage, we know that we have received a single valid field
+ for model in supported_models:
+ label = model.barcode_model_type()
+
+ if label in data:
+ try:
+ instance = model.objects.get(pk=data[label])
+ except (ValueError, model.DoesNotExist):
+ raise ValidationError({
+ label: _('No match found for provided value')
+ })
+
+ # Unassign the barcode data from the model instance
+ instance.unassign_barcode()
+
+ return Response({
+ 'success': 'Barcode unassigned from {label} instance',
+ })
+
+ # If we get to this point, something has gone wrong!
+ raise ValidationError({
+ 'error': 'Could not unassign barcode',
+ })
barcode_api_urls = [
- # Link a barcode to a part
+ # Link a third-party barcode to an item (e.g. Part / StockItem / etc)
path('link/', BarcodeAssign.as_view(), name='api-barcode-link'),
+ # Unlink a third-pary barcode from an item
+ path('unlink/', BarcodeUnassign.as_view(), name='api-barcode-unlink'),
+
# Catch-all performs barcode 'scan'
re_path(r'^.*$', BarcodeScan.as_view(), name='api-barcode-scan'),
]
diff --git a/InvenTree/plugin/base/barcodes/mixins.py b/InvenTree/plugin/base/barcodes/mixins.py
index 5ba90d7157..5ad4794ebd 100644
--- a/InvenTree/plugin/base/barcodes/mixins.py
+++ b/InvenTree/plugin/base/barcodes/mixins.py
@@ -1,33 +1,8 @@
"""Plugin mixin classes for barcode plugin."""
-import hashlib
-import string
-
-from part.serializers import PartSerializer
-from stock.models import StockItem
-from stock.serializers import LocationSerializer, StockItemSerializer
-
-
-def hash_barcode(barcode_data):
- """Calculate an MD5 hash of barcode data.
-
- HACK: Remove any 'non printable' characters from the hash,
- as it seems browers will remove special control characters...
-
- TODO: Work out a way around this!
- """
- barcode_data = str(barcode_data).strip()
-
- printable_chars = filter(lambda x: x in string.printable, barcode_data)
-
- barcode_data = ''.join(list(printable_chars))
-
- result_hash = hashlib.md5(str(barcode_data).encode())
- return str(result_hash.hexdigest())
-
class BarcodeMixin:
- """Mixin that enables barcode handeling.
+ """Mixin that enables barcode handling.
Custom barcode plugins should use and extend this mixin as necessary.
"""
@@ -49,72 +24,16 @@ class BarcodeMixin:
"""Does this plugin have everything needed to process a barcode."""
return True
- def init(self, barcode_data):
- """Initialize the BarcodePlugin instance.
+ def scan(self, barcode_data):
+ """Scan a barcode against this plugin.
- Args:
- barcode_data: The raw barcode data
+ This method is explicitly called from the /scan/ API endpoint,
+ and thus it is expected that any barcode which matches this barcode will return a result.
+
+ If this plugin finds a match against the provided barcode, it should return a dict object
+ with the intended result.
+
+ Default return value is None
"""
- self.data = barcode_data
- def getStockItem(self):
- """Attempt to retrieve a StockItem associated with this barcode.
-
- Default implementation returns None
- """
- return None # pragma: no cover
-
- def getStockItemByHash(self):
- """Attempt to retrieve a StockItem associated with this barcode, based on the barcode hash."""
- try:
- item = StockItem.objects.get(uid=self.hash())
- return item
- except StockItem.DoesNotExist:
- return None
-
- def renderStockItem(self, item):
- """Render a stock item to JSON response."""
- serializer = StockItemSerializer(item, part_detail=True, location_detail=True, supplier_part_detail=True)
- return serializer.data
-
- def getStockLocation(self):
- """Attempt to retrieve a StockLocation associated with this barcode.
-
- Default implementation returns None
- """
- return None # pragma: no cover
-
- def renderStockLocation(self, loc):
- """Render a stock location to a JSON response."""
- serializer = LocationSerializer(loc)
- return serializer.data
-
- def getPart(self):
- """Attempt to retrieve a Part associated with this barcode.
-
- Default implementation returns None
- """
- return None # pragma: no cover
-
- def renderPart(self, part):
- """Render a part to JSON response."""
- serializer = PartSerializer(part)
- return serializer.data
-
- def hash(self):
- """Calculate a hash for the barcode data.
-
- This is supposed to uniquely identify the barcode contents,
- at least within the bardcode sub-type.
-
- The default implementation simply returns an MD5 hash of the barcode data,
- encoded to a string.
-
- This may be sufficient for most applications, but can obviously be overridden
- by a subclass.
- """
- return hash_barcode(self.data)
-
- def validate(self):
- """Default implementation returns False."""
- return False # pragma: no cover
+ return None
diff --git a/InvenTree/plugin/base/barcodes/test_barcode.py b/InvenTree/plugin/base/barcodes/test_barcode.py
index 932ae0d463..c847d0f586 100644
--- a/InvenTree/plugin/base/barcodes/test_barcode.py
+++ b/InvenTree/plugin/base/barcodes/test_barcode.py
@@ -52,16 +52,11 @@ class BarcodeAPITest(InvenTreeAPITestCase):
"""
response = self.postBarcode(self.scan_url, '')
- self.assertEqual(response.status_code, status.HTTP_200_OK)
+ self.assertEqual(response.status_code, 400)
data = response.data
self.assertIn('error', data)
- self.assertIn('barcode_data', data)
- self.assertIn('hash', data)
- self.assertIn('plugin', data)
- self.assertIsNone(data['plugin'])
-
def test_find_part(self):
"""Test that we can lookup a part based on ID."""
response = self.client.post(
@@ -92,8 +87,7 @@ class BarcodeAPITest(InvenTreeAPITestCase):
)
self.assertEqual(response.status_code, 400)
-
- self.assertEqual(response.data['part'], 'Part does not exist')
+ self.assertIn('error', response.data)
def test_find_stock_item(self):
"""Test that we can lookup a stock item based on ID."""
@@ -125,8 +119,7 @@ class BarcodeAPITest(InvenTreeAPITestCase):
)
self.assertEqual(response.status_code, 400)
-
- self.assertEqual(response.data['stockitem'], 'Stock item does not exist')
+ self.assertIn('error', response.data)
def test_find_location(self):
"""Test that we can lookup a stock location based on ID."""
@@ -158,37 +151,26 @@ class BarcodeAPITest(InvenTreeAPITestCase):
)
self.assertEqual(response.status_code, 400)
-
- self.assertEqual(response.data['stocklocation'], 'Stock location does not exist')
+ self.assertIn('error', response.data)
def test_integer_barcode(self):
"""Test scan of an integer barcode."""
response = self.postBarcode(self.scan_url, '123456789')
- self.assertEqual(response.status_code, status.HTTP_200_OK)
+ self.assertEqual(response.status_code, 400)
data = response.data
self.assertIn('error', data)
- self.assertIn('barcode_data', data)
- self.assertIn('hash', data)
- self.assertIn('plugin', data)
- self.assertIsNone(data['plugin'])
-
def test_array_barcode(self):
"""Test scan of barcode with string encoded array."""
response = self.postBarcode(self.scan_url, "['foo', 'bar']")
- self.assertEqual(response.status_code, status.HTTP_200_OK)
+ self.assertEqual(response.status_code, 400)
data = response.data
self.assertIn('error', data)
- self.assertIn('barcode_data', data)
- self.assertIn('hash', data)
- self.assertIn('plugin', data)
- self.assertIsNone(data['plugin'])
-
def test_barcode_generation(self):
"""Test that a barcode is generated with a scan."""
item = StockItem.objects.get(pk=522)
@@ -208,7 +190,7 @@ class BarcodeAPITest(InvenTreeAPITestCase):
"""Test that a barcode can be associated with a StockItem."""
item = StockItem.objects.get(pk=522)
- self.assertEqual(len(item.uid), 0)
+ self.assertEqual(len(item.barcode_hash), 0)
barcode_data = 'A-TEST-BARCODE-STRING'
@@ -226,14 +208,14 @@ class BarcodeAPITest(InvenTreeAPITestCase):
self.assertIn('success', data)
- result_hash = data['hash']
+ result_hash = data['barcode_hash']
# Read the item out from the database again
item = StockItem.objects.get(pk=522)
- self.assertEqual(result_hash, item.uid)
+ self.assertEqual(result_hash, item.barcode_hash)
- # Ensure that the same UID cannot be assigned to a different stock item!
+ # Ensure that the same barcode hash cannot be assigned to a different stock item!
response = self.client.post(
self.assign_url, format='json',
data={
diff --git a/InvenTree/plugin/builtin/barcodes/inventree_barcode.py b/InvenTree/plugin/builtin/barcodes/inventree_barcode.py
index 52e97ddbd6..1b7594870e 100644
--- a/InvenTree/plugin/builtin/barcodes/inventree_barcode.py
+++ b/InvenTree/plugin/builtin/barcodes/inventree_barcode.py
@@ -9,8 +9,8 @@ references model objects actually exist in the database.
import json
-from rest_framework.exceptions import ValidationError
-
+from company.models import SupplierPart
+from InvenTree.helpers import hash_barcode
from part.models import Part
from plugin import InvenTreePlugin
from plugin.mixins import BarcodeMixin
@@ -18,121 +18,89 @@ from stock.models import StockItem, StockLocation
class InvenTreeBarcodePlugin(BarcodeMixin, InvenTreePlugin):
+ """Generic base class for handling InvenTree barcodes"""
+
+ @staticmethod
+ def get_supported_barcode_models():
+ """Returns a list of database models which support barcode functionality"""
+
+ return [
+ Part,
+ StockItem,
+ StockLocation,
+ SupplierPart,
+ ]
+
+ def format_matched_response(self, label, model, instance):
+ """Format a response for the scanned data"""
+
+ response = {
+ 'pk': instance.pk
+ }
+
+ # Add in the API URL if available
+ if hasattr(model, 'get_api_url'):
+ response['api_url'] = f"{model.get_api_url()}{instance.pk}/"
+
+ # Add in the web URL if available
+ if hasattr(instance, 'get_absolute_url'):
+ response['web_url'] = instance.get_absolute_url()
+
+ return {label: response}
+
+
+class InvenTreeInternalBarcodePlugin(InvenTreeBarcodePlugin):
"""Builtin BarcodePlugin for matching and generating internal barcodes."""
- NAME = "InvenTreeBarcode"
+ NAME = "InvenTreeInternalBarcode"
- def validate(self):
- """Validate a barcode.
+ def scan(self, barcode_data):
+ """Scan a barcode against this plugin.
- An "InvenTree" barcode must be a jsonnable-dict with the following tags:
- {
- 'tool': 'InvenTree',
- 'version':
- }
+ Here we are looking for a dict object which contains a reference to a particular InvenTree database object
"""
- # The data must either be dict or be able to dictified
- if type(self.data) is dict:
+
+ if type(barcode_data) is dict:
pass
- elif type(self.data) is str:
+ elif type(barcode_data) is str:
try:
- self.data = json.loads(self.data)
- if type(self.data) is not dict:
- return False
+ barcode_data = json.loads(barcode_data)
except json.JSONDecodeError:
- return False
+ return None
else:
- return False # pragma: no cover
+ return None
- # If any of the following keys are in the JSON data,
- # let's go ahead and assume that the code is a valid InvenTree one...
+ if type(barcode_data) is not dict:
+ return None
- for key in ['tool', 'version', 'InvenTree', 'stockitem', 'stocklocation', 'part']:
- if key in self.data.keys():
- return True
-
- return True
-
- def getStockItem(self):
- """Lookup StockItem by 'stockitem' key in barcode data."""
- for k in self.data.keys():
- if k.lower() == 'stockitem':
-
- data = self.data[k]
-
- pk = None
-
- # Initially try casting to an integer
+ # Look for various matches. First good match will be returned
+ for model in self.get_supported_barcode_models():
+ label = model.barcode_model_type()
+ if label in barcode_data:
try:
- pk = int(data)
- except (TypeError, ValueError): # pragma: no cover
- pk = None
+ instance = model.objects.get(pk=barcode_data[label])
+ return self.format_matched_response(label, model, instance)
+ except (ValueError, model.DoesNotExist):
+ pass
- if pk is None: # pragma: no cover
- try:
- pk = self.data[k]['id']
- except (AttributeError, KeyError):
- raise ValidationError({k: "id parameter not supplied"})
- try:
- item = StockItem.objects.get(pk=pk)
- return item
- except (ValueError, StockItem.DoesNotExist): # pragma: no cover
- raise ValidationError({k: "Stock item does not exist"})
+class InvenTreeExternalBarcodePlugin(InvenTreeBarcodePlugin):
+ """Builtin BarcodePlugin for matching arbitrary external barcodes."""
- return None
+ NAME = "InvenTreeExternalBarcode"
- def getStockLocation(self):
- """Lookup StockLocation by 'stocklocation' key in barcode data."""
- for k in self.data.keys():
- if k.lower() == 'stocklocation':
+ def scan(self, barcode_data):
+ """Scan a barcode against this plugin.
- pk = None
+ Here we are looking for a dict object which contains a reference to a particular InvenTree databse object
+ """
- # First try simple integer lookup
- try:
- pk = int(self.data[k])
- except (TypeError, ValueError): # pragma: no cover
- pk = None
+ for model in self.get_supported_barcode_models():
+ label = model.barcode_model_type()
- if pk is None: # pragma: no cover
- # Lookup by 'id' field
- try:
- pk = self.data[k]['id']
- except (AttributeError, KeyError):
- raise ValidationError({k: "id parameter not supplied"})
+ barcode_hash = hash_barcode(barcode_data)
- try:
- loc = StockLocation.objects.get(pk=pk)
- return loc
- except (ValueError, StockLocation.DoesNotExist): # pragma: no cover
- raise ValidationError({k: "Stock location does not exist"})
+ instance = model.lookup_barcode(barcode_hash)
- return None
-
- def getPart(self):
- """Lookup Part by 'part' key in barcode data."""
- for k in self.data.keys():
- if k.lower() == 'part':
-
- pk = None
-
- # Try integer lookup first
- try:
- pk = int(self.data[k])
- except (TypeError, ValueError): # pragma: no cover
- pk = None
-
- if pk is None: # pragma: no cover
- try:
- pk = self.data[k]['id']
- except (AttributeError, KeyError):
- raise ValidationError({k: 'id parameter not supplied'})
-
- try:
- part = Part.objects.get(pk=pk)
- return part
- except (ValueError, Part.DoesNotExist): # pragma: no cover
- raise ValidationError({k: 'Part does not exist'})
-
- return None
+ if instance is not None:
+ return self.format_matched_response(label, model, instance)
diff --git a/InvenTree/plugin/builtin/barcodes/test_inventree_barcode.py b/InvenTree/plugin/builtin/barcodes/test_inventree_barcode.py
index b3fd51c781..1230794625 100644
--- a/InvenTree/plugin/builtin/barcodes/test_inventree_barcode.py
+++ b/InvenTree/plugin/builtin/barcodes/test_inventree_barcode.py
@@ -2,8 +2,8 @@
from django.urls import reverse
-from rest_framework import status
-
+import part.models
+import stock.models
from InvenTree.api_tester import InvenTreeAPITestCase
@@ -14,21 +14,24 @@ class TestInvenTreeBarcode(InvenTreeAPITestCase):
'category',
'part',
'location',
- 'stock'
+ 'stock',
+ 'company',
+ 'supplier_part',
]
- def test_errors(self):
- """Test all possible error cases for assigment action."""
+ def test_assign_errors(self):
+ """Test error cases for assigment action."""
def test_assert_error(barcode_data):
- response = self.client.post(
+ response = self.post(
reverse('api-barcode-link'), format='json',
data={
'barcode': barcode_data,
'stockitem': 521
- }
+ },
+ expected_code=400
)
- self.assertEqual(response.status_code, status.HTTP_200_OK)
+
self.assertIn('error', response.data)
# test with already existing stock
@@ -40,11 +43,358 @@ class TestInvenTreeBarcode(InvenTreeAPITestCase):
# test with already existing part location
test_assert_error('{"part": 10004}')
- # test with hash
- test_assert_error('{"blbla": 10004}')
+ def assign(self, data, expected_code=None):
+ """Peform a 'barcode assign' request"""
+
+ return self.post(
+ reverse('api-barcode-link'),
+ data=data,
+ expected_code=expected_code
+ )
+
+ def unassign(self, data, expected_code=None):
+ """Perform a 'barcode unassign' request"""
+
+ return self.post(
+ reverse('api-barcode-unlink'),
+ data=data,
+ expected_code=expected_code,
+ )
+
+ def scan(self, data, expected_code=None):
+ """Perform a 'scan' operation"""
+
+ return self.post(
+ reverse('api-barcode-scan'),
+ data=data,
+ expected_code=expected_code
+ )
+
+ def test_unassign_errors(self):
+ """Test various error conditions for the barcode unassign endpoint"""
+
+ # Fail without any fields provided
+ response = self.unassign(
+ {},
+ expected_code=400,
+ )
+
+ self.assertIn('Missing data: Provide one of', str(response.data['error']))
+
+ # Fail with too many fields provided
+ response = self.unassign(
+ {
+ 'stockitem': 'abcde',
+ 'part': 'abcde',
+ },
+ expected_code=400,
+ )
+
+ self.assertIn('Multiple conflicting fields:', str(response.data['error']))
+
+ # Fail with an invalid StockItem instance
+ response = self.unassign(
+ {
+ 'stockitem': 'invalid',
+ },
+ expected_code=400,
+ )
+
+ self.assertIn('No match found', str(response.data['stockitem']))
+
+ # Fail with an invalid Part instance
+ response = self.unassign(
+ {
+ 'part': 'invalid',
+ },
+ expected_code=400,
+ )
+
+ self.assertIn('No match found', str(response.data['part']))
+
+ def test_assign_to_stock_item(self):
+ """Test that we can assign a unique barcode to a StockItem object"""
+
+ # Test without providing any fields
+ response = self.assign(
+ {
+ 'barcode': 'abcde',
+ },
+ expected_code=400
+ )
+
+ self.assertIn('Missing data:', str(response.data))
+
+ # Provide too many fields
+ response = self.assign(
+ {
+ 'barcode': 'abcdefg',
+ 'part': 1,
+ 'stockitem': 1,
+ },
+ expected_code=200
+ )
+
+ self.assertIn('Assigned barcode to part instance', str(response.data))
+ self.assertEqual(response.data['part']['pk'], 1)
+
+ bc_data = '{"blbla": 10007}'
+
+ # Assign a barcode to a StockItem instance
+ response = self.assign(
+ data={
+ 'barcode': bc_data,
+ 'stockitem': 521,
+ },
+ expected_code=200,
+ )
+
+ data = response.data
+ self.assertEqual(data['barcode_data'], bc_data)
+ self.assertEqual(data['stockitem']['pk'], 521)
+
+ # Check that the StockItem instance has actually been updated
+ si = stock.models.StockItem.objects.get(pk=521)
+
+ self.assertEqual(si.barcode_data, bc_data)
+ self.assertEqual(si.barcode_hash, "2f5dba5c83a360599ba7665b2a4131c6")
+
+ # Now test that we cannot assign this barcode to something else
+ response = self.assign(
+ data={
+ 'barcode': bc_data,
+ 'stockitem': 1,
+ },
+ expected_code=400
+ )
+
+ self.assertIn('Barcode matches existing item', str(response.data))
+
+ # Next, test that we can 'unassign' the barcode via the API
+ response = self.unassign(
+ {
+ 'stockitem': 521,
+ },
+ expected_code=200,
+ )
+
+ si.refresh_from_db()
+
+ self.assertEqual(si.barcode_data, '')
+ self.assertEqual(si.barcode_hash, '')
+
+ def test_assign_to_part(self):
+ """Test that we can assign a unique barcode to a Part instance"""
+
+ barcode = 'xyz-123'
+
+ # Test that an initial scan yields no results
+ response = self.scan(
+ {
+ 'barcode': barcode,
+ },
+ expected_code=400
+ )
+
+ # Attempt to assign to an invalid part ID
+ response = self.assign(
+ {
+ 'barcode': barcode,
+ 'part': 99999999,
+ },
+ expected_code=400,
+ )
+
+ self.assertIn('No matching part instance found in database', str(response.data))
+
+ # Test assigning to a valid part (should pass)
+ response = self.assign(
+ {
+ 'barcode': barcode,
+ 'part': 1,
+ },
+ expected_code=200,
+ )
+
+ self.assertEqual(response.data['part']['pk'], 1)
+ self.assertEqual(response.data['success'], 'Assigned barcode to part instance')
+
+ # Check that the Part instance has been updated
+ p = part.models.Part.objects.get(pk=1)
+ self.assertEqual(p.barcode_data, 'xyz-123')
+ self.assertEqual(p.barcode_hash, 'bc39d07e9a395c7b5658c231bf910fae')
+
+ # Scanning the barcode should now reveal the 'Part' instance
+ response = self.scan(
+ {
+ 'barcode': barcode,
+ },
+ expected_code=200,
+ )
- def test_scan(self):
- """Test that a barcode can be scanned."""
- response = self.client.post(reverse('api-barcode-scan'), format='json', data={'barcode': 'blbla=10004'})
- self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertIn('success', response.data)
+ self.assertEqual(response.data['plugin'], 'InvenTreeExternalBarcode')
+ self.assertEqual(response.data['part']['pk'], 1)
+
+ # Attempting to assign the same barcode to a different part should result in an error
+ response = self.assign(
+ {
+ 'barcode': barcode,
+ 'part': 2,
+ },
+ expected_code=400,
+ )
+
+ self.assertIn('Barcode matches existing item', str(response.data['error']))
+
+ # Now test that we can unassign the barcode data also
+ response = self.unassign(
+ {
+ 'part': 1,
+ },
+ expected_code=200,
+ )
+
+ p.refresh_from_db()
+
+ self.assertEqual(p.barcode_data, '')
+ self.assertEqual(p.barcode_hash, '')
+
+ def test_assign_to_location(self):
+ """Test that we can assign a unique barcode to a StockLocation instance"""
+
+ barcode = '555555555555555555555555'
+
+ # Assign random barcode data to a StockLocation instance
+ response = self.assign(
+ data={
+ 'barcode': barcode,
+ 'stocklocation': 1,
+ },
+ expected_code=200,
+ )
+
+ self.assertIn('success', response.data)
+ self.assertEqual(response.data['stocklocation']['pk'], 1)
+
+ # Check that the StockLocation instance has been updated
+ loc = stock.models.StockLocation.objects.get(pk=1)
+
+ self.assertEqual(loc.barcode_data, barcode)
+ self.assertEqual(loc.barcode_hash, '4aa63f5e55e85c1f842796bf74896dbb')
+
+ # Check that an error is thrown if we try to assign the same value again
+ response = self.assign(
+ data={
+ 'barcode': barcode,
+ 'stocklocation': 2,
+ },
+ expected_code=400
+ )
+
+ self.assertIn('Barcode matches existing item', str(response.data['error']))
+
+ # Now, unassign the barcode
+ response = self.unassign(
+ {
+ 'stocklocation': 1,
+ },
+ expected_code=200,
+ )
+
+ loc.refresh_from_db()
+ self.assertEqual(loc.barcode_data, '')
+ self.assertEqual(loc.barcode_hash, '')
+
+ def test_scan_third_party(self):
+ """Test scanning of third-party barcodes"""
+
+ # First scanned barcode is for a 'third-party' barcode (which does not exist)
+ response = self.scan({'barcode': 'blbla=10008'}, expected_code=400)
+ self.assertEqual(response.data['error'], 'No match found for barcode data')
+
+ # Next scanned barcode is for a 'third-party' barcode (which does exist)
+ response = self.scan({'barcode': 'blbla=10004'}, expected_code=200)
+
+ self.assertEqual(response.data['barcode_data'], 'blbla=10004')
+ self.assertEqual(response.data['plugin'], 'InvenTreeExternalBarcode')
+
+ # Scan for a StockItem instance
+ si = stock.models.StockItem.objects.get(pk=1)
+
+ for barcode in ['abcde', 'ABCDE', '12345']:
+ si.assign_barcode(barcode_data=barcode)
+
+ response = self.scan(
+ {
+ 'barcode': barcode,
+ },
+ expected_code=200,
+ )
+
+ self.assertIn('success', response.data)
+ self.assertEqual(response.data['stockitem']['pk'], 1)
+
+ def test_scan_inventree(self):
+ """Test scanning of first-party barcodes"""
+
+ # Scan a StockItem object (which does not exist)
+ response = self.scan(
+ {
+ 'barcode': '{"stockitem": 5}',
+ },
+ expected_code=400,
+ )
+
+ self.assertIn('No match found for barcode data', str(response.data))
+
+ # Scan a StockItem object (which does exist)
+ response = self.scan(
+ {
+ 'barcode': '{"stockitem": 1}',
+ },
+ expected_code=200
+ )
+
+ self.assertIn('success', response.data)
+ self.assertIn('stockitem', response.data)
+ self.assertEqual(response.data['stockitem']['pk'], 1)
+
+ # Scan a StockLocation object
+ response = self.scan(
+ {
+ 'barcode': '{"stocklocation": 5}',
+ },
+ expected_code=200,
+ )
+
+ self.assertIn('success', response.data)
+ self.assertEqual(response.data['stocklocation']['pk'], 5)
+ self.assertEqual(response.data['stocklocation']['api_url'], '/api/stock/location/5/')
+ self.assertEqual(response.data['stocklocation']['web_url'], '/stock/location/5/')
+ self.assertEqual(response.data['plugin'], 'InvenTreeInternalBarcode')
+
+ # Scan a Part object
+ response = self.scan(
+ {
+ 'barcode': '{"part": 5}'
+ },
+ expected_code=200,
+ )
+
+ self.assertEqual(response.data['part']['pk'], 5)
+
+ # Scan a SupplierPart instance
+ response = self.scan(
+ {
+ 'barcode': '{"supplierpart": 1}',
+ },
+ expected_code=200
+ )
+
+ self.assertEqual(response.data['supplierpart']['pk'], 1)
+ self.assertEqual(response.data['plugin'], 'InvenTreeInternalBarcode')
+
+ self.assertIn('success', response.data)
+ self.assertIn('barcode_data', response.data)
+ self.assertIn('barcode_hash', response.data)
diff --git a/InvenTree/report/templates/report/inventree_po_report.html b/InvenTree/report/templates/report/inventree_po_report.html
index 50d6bfc7ef..3da23dfd9f 100644
--- a/InvenTree/report/templates/report/inventree_po_report.html
+++ b/InvenTree/report/templates/report/inventree_po_report.html
@@ -74,7 +74,7 @@ table td.expand {
{% endblock %}
diff --git a/InvenTree/stock/fixtures/stock.yaml b/InvenTree/stock/fixtures/stock.yaml
index fb798e74be..103d224f8d 100644
--- a/InvenTree/stock/fixtures/stock.yaml
+++ b/InvenTree/stock/fixtures/stock.yaml
@@ -222,7 +222,7 @@
lft: 0
rght: 0
expiry_date: "1990-10-10"
- uid: 9e5ae7fc20568ed4814c10967bba8b65
+ barcode_hash: 9e5ae7fc20568ed4814c10967bba8b65
- model: stock.stockitem
pk: 521
@@ -236,7 +236,7 @@
lft: 0
rght: 0
status: 60
- uid: 1be0dfa925825c5c6c79301449e50c2d
+ barcode_hash: 1be0dfa925825c5c6c79301449e50c2d
- model: stock.stockitem
pk: 522
diff --git a/InvenTree/stock/migrations/0084_auto_20220903_0154.py b/InvenTree/stock/migrations/0084_auto_20220903_0154.py
new file mode 100644
index 0000000000..88a3500b4c
--- /dev/null
+++ b/InvenTree/stock/migrations/0084_auto_20220903_0154.py
@@ -0,0 +1,23 @@
+# Generated by Django 3.2.15 on 2022-09-03 01:54
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('stock', '0083_stocklocation_icon'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='stockitem',
+ name='barcode_data',
+ field=models.CharField(blank=True, help_text='Third party barcode data', max_length=500, verbose_name='Barcode Data'),
+ ),
+ migrations.AddField(
+ model_name='stockitem',
+ name='barcode_hash',
+ field=models.CharField(blank=True, help_text='Unique hash of barcode data', max_length=128, verbose_name='Barcode Hash'),
+ ),
+ ]
diff --git a/InvenTree/stock/migrations/0085_auto_20220903_0225.py b/InvenTree/stock/migrations/0085_auto_20220903_0225.py
new file mode 100644
index 0000000000..75dc0fb0b9
--- /dev/null
+++ b/InvenTree/stock/migrations/0085_auto_20220903_0225.py
@@ -0,0 +1,48 @@
+# Generated by Django 3.2.15 on 2022-09-03 02:25
+
+from django.db import migrations
+
+
+def uid_to_barcode(apps, schama_editor):
+ """Migrate old 'uid' field to new 'barcode_hash' field"""
+
+ StockItem = apps.get_model('stock', 'stockitem')
+
+ # Find all StockItem objects with non-empty UID field
+ items = StockItem.objects.exclude(uid=None).exclude(uid='')
+
+ for item in items:
+ item.barcode_hash = item.uid
+ item.save()
+
+ if items.count() > 0:
+ print(f"Updated barcode data for {items.count()} StockItem objects")
+
+def barcode_to_uid(apps, schema_editor):
+ """Migrate new 'barcode_hash' field to old 'uid' field"""
+
+ StockItem = apps.get_model('stock', 'stockitem')
+
+ # Find all StockItem objects with non-empty UID field
+ items = StockItem.objects.exclude(barcode_hash=None).exclude(barcode_hash='')
+
+ for item in items:
+ item.uid = item.barcode_hash
+ item.save()
+
+ if items.count() > 0:
+ print(f"Updated barcode data for {items.count()} StockItem objects")
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('stock', '0084_auto_20220903_0154'),
+ ]
+
+ operations = [
+ migrations.RunPython(
+ uid_to_barcode,
+ reverse_code=barcode_to_uid
+ )
+ ]
diff --git a/InvenTree/stock/migrations/0086_remove_stockitem_uid.py b/InvenTree/stock/migrations/0086_remove_stockitem_uid.py
new file mode 100644
index 0000000000..916558fabe
--- /dev/null
+++ b/InvenTree/stock/migrations/0086_remove_stockitem_uid.py
@@ -0,0 +1,17 @@
+# Generated by Django 3.2.15 on 2022-09-03 02:54
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('stock', '0085_auto_20220903_0225'),
+ ]
+
+ operations = [
+ migrations.RemoveField(
+ model_name='stockitem',
+ name='uid',
+ ),
+ ]
diff --git a/InvenTree/stock/migrations/0087_auto_20220912_2341.py b/InvenTree/stock/migrations/0087_auto_20220912_2341.py
new file mode 100644
index 0000000000..af811e071b
--- /dev/null
+++ b/InvenTree/stock/migrations/0087_auto_20220912_2341.py
@@ -0,0 +1,23 @@
+# Generated by Django 3.2.15 on 2022-09-12 23:41
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('stock', '0086_remove_stockitem_uid'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='stocklocation',
+ name='barcode_data',
+ field=models.CharField(blank=True, help_text='Third party barcode data', max_length=500, verbose_name='Barcode Data'),
+ ),
+ migrations.AddField(
+ model_name='stocklocation',
+ name='barcode_hash',
+ field=models.CharField(blank=True, help_text='Unique hash of barcode data', max_length=128, verbose_name='Barcode Hash'),
+ ),
+ ]
diff --git a/InvenTree/stock/models.py b/InvenTree/stock/models.py
index d015b09aae..3724653eab 100644
--- a/InvenTree/stock/models.py
+++ b/InvenTree/stock/models.py
@@ -30,7 +30,8 @@ import report.models
from company import models as CompanyModels
from InvenTree.fields import (InvenTreeModelMoneyField, InvenTreeNotesField,
InvenTreeURLField)
-from InvenTree.models import InvenTreeAttachment, InvenTreeTree, extract_int
+from InvenTree.models import (InvenTreeAttachment, InvenTreeBarcodeMixin,
+ InvenTreeTree, extract_int)
from InvenTree.status_codes import StockHistoryCode, StockStatus
from part import models as PartModels
from plugin.events import trigger_event
@@ -38,7 +39,7 @@ from plugin.models import MetadataMixin
from users.models import Owner
-class StockLocation(MetadataMixin, InvenTreeTree):
+class StockLocation(InvenTreeBarcodeMixin, MetadataMixin, InvenTreeTree):
"""Organization tree for StockItem objects.
A "StockLocation" can be considered a warehouse, or storage location
@@ -126,27 +127,6 @@ class StockLocation(MetadataMixin, InvenTreeTree):
"""Return url for instance."""
return reverse('stock-location-detail', kwargs={'pk': self.id})
- def format_barcode(self, **kwargs):
- """Return a JSON string for formatting a barcode for this StockLocation object."""
- return InvenTree.helpers.MakeBarcode(
- 'stocklocation',
- self.pk,
- {
- "name": self.name,
- "url": reverse('api-location-detail', kwargs={'pk': self.id}),
- },
- **kwargs
- )
-
- @property
- def barcode(self) -> str:
- """Get Brief payload data (e.g. for labels).
-
- Returns:
- str: Brief pyload data
- """
- return self.format_barcode(brief=True)
-
def get_stock_items(self, cascade=True):
"""Return a queryset for all stock items under this category.
@@ -221,12 +201,11 @@ def generate_batch_code():
return Template(batch_template).render(context)
-class StockItem(MetadataMixin, MPTTModel):
+class StockItem(InvenTreeBarcodeMixin, MetadataMixin, MPTTModel):
"""A StockItem object represents a quantity of physical instances of a part.
Attributes:
parent: Link to another StockItem from which this StockItem was created
- uid: Field containing a unique-id which is mapped to a third-party identifier (e.g. a barcode)
part: Link to the master abstract part that this StockItem is an instance of
supplier_part: Link to a specific SupplierPart (optional)
location: Where this StockItem is located
@@ -552,38 +531,6 @@ class StockItem(MetadataMixin, MPTTModel):
"""Returns part name."""
return self.part.full_name
- def format_barcode(self, **kwargs):
- """Return a JSON string for formatting a barcode for this StockItem.
-
- Can be used to perform lookup of a stockitem using barcode.
-
- Contains the following data:
- `{ type: 'StockItem', stock_id: , part_id: }`
-
- Voltagile data (e.g. stock quantity) should be looked up using the InvenTree API (as it may change)
- """
- return InvenTree.helpers.MakeBarcode(
- "stockitem",
- self.id,
- {
- "request": kwargs.get('request', None),
- "item_url": reverse('stock-item-detail', kwargs={'pk': self.id}),
- "url": reverse('api-stock-detail', kwargs={'pk': self.id}),
- },
- **kwargs
- )
-
- @property
- def barcode(self):
- """Get Brief payload data (e.g. for labels).
-
- Returns:
- str: Brief pyload data
- """
- return self.format_barcode(brief=True)
-
- uid = models.CharField(blank=True, max_length=128, help_text=("Unique identifier field"))
-
# Note: When a StockItem is deleted, a pre_delete signal handles the parent/child relationship
parent = TreeForeignKey(
'self',
diff --git a/InvenTree/stock/serializers.py b/InvenTree/stock/serializers.py
index 871df5a612..2ab079a5ac 100644
--- a/InvenTree/stock/serializers.py
+++ b/InvenTree/stock/serializers.py
@@ -62,7 +62,7 @@ class StockItemSerializerBrief(InvenTree.serializers.InvenTreeModelSerializer):
'quantity',
'serial',
'supplier_part',
- 'uid',
+ 'barcode_hash',
]
def validate_serial(self, value):
@@ -245,7 +245,7 @@ class StockItemSerializer(InvenTree.serializers.InvenTreeModelSerializer):
'supplier_part',
'supplier_part_detail',
'tracking_items',
- 'uid',
+ 'barcode_hash',
'updated',
'purchase_price',
'purchase_price_currency',
diff --git a/InvenTree/stock/templates/stock/item_base.html b/InvenTree/stock/templates/stock/item_base.html
index 8a1388e636..c46f39ed39 100644
--- a/InvenTree/stock/templates/stock/item_base.html
+++ b/InvenTree/stock/templates/stock/item_base.html
@@ -44,7 +44,7 @@