diff --git a/InvenTree/InvenTree/helpers.py b/InvenTree/InvenTree/helpers.py
index da96c7ee79..921a45c112 100644
--- a/InvenTree/InvenTree/helpers.py
+++ b/InvenTree/InvenTree/helpers.py
@@ -120,6 +120,19 @@ def str2bool(text, test=True):
         return str(text).lower() in ['0', 'n', 'no', 'none', 'f', 'false', 'off', ]
 
 
+def is_bool(text):
+    """
+    Determine if a string value 'looks' like a boolean.
+    """
+
+    if str2bool(text, True):
+        return True
+    elif str2bool(text, False):
+        return True
+    else:
+        return False
+
+
 def isNull(text):
     """
     Test if a string 'looks' like a null value.
diff --git a/InvenTree/InvenTree/urls.py b/InvenTree/InvenTree/urls.py
index 0b4292cbd9..334f285e2c 100644
--- a/InvenTree/InvenTree/urls.py
+++ b/InvenTree/InvenTree/urls.py
@@ -39,6 +39,8 @@ from .views import IndexView, SearchView, DatabaseStatsView
 from .views import SettingsView, EditUserView, SetPasswordView, ColorThemeSelectView
 from .views import DynamicJsView
 
+from common.views import SettingEdit
+
 from .api import InfoView
 from .api import ActionPluginView
 
@@ -71,6 +73,7 @@ settings_urls = [
     url(r'^user/?', SettingsView.as_view(template_name='InvenTree/settings/user.html'), name='settings-user'),
     url(r'^theme/?', ColorThemeSelectView.as_view(), name='settings-theme'),
    
+    url(r'^global/?', SettingsView.as_view(template_name='InvenTree/settings/global.html'), name='settings-global'),
     url(r'^currency/?', SettingsView.as_view(template_name='InvenTree/settings/currency.html'), name='settings-currency'),
     url(r'^part/?', SettingsView.as_view(template_name='InvenTree/settings/part.html'), name='settings-part'),
     url(r'^stock/?', SettingsView.as_view(template_name='InvenTree/settings/stock.html'), name='settings-stock'),
@@ -78,6 +81,8 @@ settings_urls = [
     url(r'^purchase-order/?', SettingsView.as_view(template_name='InvenTree/settings/po.html'), name='settings-po'),
     url(r'^sales-order/?', SettingsView.as_view(template_name='InvenTree/settings/so.html'), name='settings-so'),
 
+    url(r'^(?P<pk>\d+)/edit/?', SettingEdit.as_view(), name='setting-edit'),
+
     # Catch any other urls
     url(r'^.*$', SettingsView.as_view(template_name='InvenTree/settings/user.html'), name='settings'),
 ]
diff --git a/InvenTree/InvenTree/views.py b/InvenTree/InvenTree/views.py
index bb7c1e6f5d..b4bc6ebe06 100644
--- a/InvenTree/InvenTree/views.py
+++ b/InvenTree/InvenTree/views.py
@@ -128,9 +128,13 @@ class InvenTreeRoleMixin(PermissionRequiredMixin):
 
     def has_permission(self):
         """
-        Determine if the current user
+        Determine if the current user has specified permissions
         """
 
+        if self.permission_required:
+            # Ignore role-based permissions
+            return super().has_permission()
+
         roles_required = []
 
         if type(self.role_required) is str:
diff --git a/InvenTree/common/apps.py b/InvenTree/common/apps.py
index 0535709686..06b825c574 100644
--- a/InvenTree/common/apps.py
+++ b/InvenTree/common/apps.py
@@ -32,7 +32,7 @@ class CommonConfig(AppConfig):
                 return
 
             # Default instance name
-            instance_name = 'InvenTree Server'
+            instance_name = InvenTreeSetting.get_default_value('INVENTREE_INSTANCE')
 
             # Use the old name if it exists
             if InvenTreeSetting.objects.filter(key='InstanceName').exists():
@@ -59,12 +59,12 @@ class CommonConfig(AppConfig):
 
         from .models import InvenTreeSetting
 
-        for key in InvenTreeSetting.DEFAULT_VALUES.keys():
+        for key in InvenTreeSetting.GLOBAL_SETTINGS.keys():
             try:
                 settings = InvenTreeSetting.objects.filter(key__iexact=key)
 
                 if settings.count() == 0:
-                    value = InvenTreeSetting.DEFAULT_VALUES[key]
+                    value = InvenTreeSetting.get_default_value(key)
 
                     print(f"Creating default setting for {key} -> '{value}'")
 
diff --git a/InvenTree/common/forms.py b/InvenTree/common/forms.py
index 53493faff0..ba6289221e 100644
--- a/InvenTree/common/forms.py
+++ b/InvenTree/common/forms.py
@@ -33,6 +33,5 @@ class SettingEditForm(HelperForm):
         model = InvenTreeSetting
 
         fields = [
-            'key',
             'value'
         ]
diff --git a/InvenTree/common/models.py b/InvenTree/common/models.py
index 31f8e12260..0d3afbe226 100644
--- a/InvenTree/common/models.py
+++ b/InvenTree/common/models.py
@@ -11,10 +11,12 @@ import decimal
 
 from django.db import models
 from django.conf import settings
+
 from django.utils.translation import ugettext as _
 from django.core.validators import MinValueValidator, MaxValueValidator
 from django.core.exceptions import ValidationError
 
+import InvenTree.helpers
 import InvenTree.fields
 
 
@@ -27,34 +29,205 @@ class InvenTreeSetting(models.Model):
     even if that key does not exist.
     """
 
-    # Dict of default values for various internal settings
-    DEFAULT_VALUES = {
-        # Global inventree settings
-        'INVENTREE_INSTANCE': 'InvenTree Server',
+    """
+    Dict of all global settings values:
 
-        # Part settings
-        'PART_IPN_REGEX': '',
-        'PART_COPY_BOM': True,
-        'PART_COPY_PARAMETERS': True,
-        'PART_COPY_TESTS': True,
+    The key of each item is the name of the value as it appears in the database.
 
-        # Stock settings
+    Each global setting has the following parameters:
+    
+    - name: Translatable string name of the setting (required)
+    - description: Translatable string description of the setting (required)
+    - default: Default value (optional)
+    - units: Units of the particular setting (optional)
+    - validator: Validation function for the setting (optional)
 
-        # Build Order settings
-        'BUILDORDER_REFERENCE_PREFIX': 'BO',
-        'BUILDORDER_REFERENCE_REGEX': '',
+    The keys must be upper-case
+    """
 
-        # Purchase Order Settings
-        'PURCHASEORDER_REFERENCE_PREFIX': 'PO',
+    GLOBAL_SETTINGS = {
 
-        # Sales Order Settings
-        'SALESORDER_REFERENCE_PREFIX': 'SO',
+        'INVENTREE_INSTANCE': {
+            'name': _('InvenTree Instance Name'),
+            'default': 'InvenTree server',
+            'description': _('String descriptor for the server instance'),
+        },
+
+        'INVENTREE_COMPANY_NAME': {
+            'name': _('Company name'),
+            'description': _('Internal company name'),
+            'default': 'My company name',
+        },
+
+        'PART_IPN_REGEX': {
+            'name': _('IPN Regex'),
+            'description': _('Regular expression pattern for matching Part IPN')
+        },
+
+        'PART_COPY_BOM': {
+            'name': _('Copy Part BOM Data'),
+            'description': _('Copy BOM data by default when duplicating a part'),
+            'default': True,
+            'validator': bool,
+        },
+
+        'PART_COPY_PARAMETERS': {
+            'name': _('Copy Part Parameter Data'),
+            'description': _('Copy parameter data by default when duplicating a part'),
+            'default': True,
+            'validator': bool,
+        },
+
+        'PART_COPY_TESTS': {
+            'name': _('Copy Part Test Data'),
+            'description': _('Copy test data by default when duplicating a part'),
+            'default': True,
+            'validator': bool
+        },
+
+        'BUILDORDER_REFERENCE_PREFIX': {
+            'name': _('Build Order Reference Prefix'),
+            'description': _('Prefix value for build order reference'),
+            'default': 'BO',
+        },
+
+        'BUILDORDER_REFERENCE_REGEX': {
+            'name': _('Build Order Reference Regex'),
+            'description': _('Regular expression pattern for matching build order reference')
+        },
+
+        'SALESORDER_REFERENCE_PREFIX': {
+            'name': _('Sales Order Reference Prefix'),
+            'description': _('Prefix value for sales order reference'),
+        },
+
+        'PURCHASEORDER_REFERENCE_PREFIX': {
+            'name': _('Purchase Order Reference Prefix'),
+            'description': _('Prefix value for purchase order reference'),
+        },
     }
 
     class Meta:
         verbose_name = "InvenTree Setting"
         verbose_name_plural = "InvenTree Settings"
 
+    @classmethod
+    def get_setting_name(cls, key):
+        """
+        Return the name of a particular setting.
+
+        If it does not exist, return an empty string.
+        """
+
+        key = str(key).strip().upper()
+
+        if key in cls.GLOBAL_SETTINGS:
+            setting = cls.GLOBAL_SETTINGS[key]
+            return setting.get('name', '')
+        else:
+            return ''
+
+    @classmethod
+    def get_setting_description(cls, key):
+        """
+        Return the description for a particular setting.
+
+        If it does not exist, return an empty string.
+        """
+
+        key = str(key).strip().upper()
+
+        if key in cls.GLOBAL_SETTINGS:
+            setting = cls.GLOBAL_SETTINGS[key]
+            return setting.get('description', '')
+        else:
+            return ''
+
+    @classmethod
+    def get_setting_units(cls, key):
+        """
+        Return the units for a particular setting.
+
+        If it does not exist, return an empty string.
+        """
+
+        key = str(key).strip().upper()
+
+        if key in cls.GLOBAL_SETTINGS:
+            setting = cls.GLOBAL_SETTINGS[key]
+            return setting.get('units', '')
+        else:
+            return ''
+
+    @classmethod
+    def get_setting_validator(cls, key):
+        """
+        Return the validator for a particular setting.
+
+        If it does not exist, return None
+        """
+
+        key = str(key).strip().upper()
+
+        if key in cls.GLOBAL_SETTINGS:
+            setting = cls.GLOBAL_SETTINGS[key]
+            return setting.get('validator', None)
+        else:
+            return None
+
+    @classmethod
+    def get_default_value(cls, key):
+        """
+        Return the default value for a particular setting.
+
+        If it does not exist, return an empty string
+        """
+
+        key = str(key).strip().upper()
+
+        if key in cls.GLOBAL_SETTINGS:
+            setting = cls.GLOBAL_SETTINGS[key]
+            return setting.get('default', '')
+        else:
+            return ''
+
+    @classmethod
+    def get_setting_object(cls, key):
+        """
+        Return an InvenTreeSetting object matching the given key.
+
+        - Key is case-insensitive
+        - Returns None if no match is made
+        """
+
+        key = str(key).strip().upper()
+
+        try:
+            setting = InvenTreeSetting.objects.filter(key__iexact=key).first()
+        except (InvenTreeSetting.DoesNotExist):
+            # Create the setting if it does not exist
+            setting = InvenTreeSetting.create(
+                key=key,
+                value=InvenTreeSetting.get_default_value(key)
+            )
+
+        return setting
+
+    @classmethod
+    def get_setting_pk(cls, key):
+        """
+        Return the primary-key value for a given setting.
+
+        If the setting does not exist, return None
+        """
+
+        setting = InvenTreeSetting.get_setting_object(cls)
+
+        if setting:
+            return setting.pk
+        else:
+            return None
+
     @classmethod
     def get_setting(cls, key, backup_value=None):
         """
@@ -64,16 +237,13 @@ class InvenTreeSetting(models.Model):
 
         # If no backup value is specified, atttempt to retrieve a "default" value
         if backup_value is None:
-            backup_value = InvenTreeSetting.DEFAULT_VALUES.get(key, None)
+            backup_value = cls.get_default_value(key)
 
-        try:
-            settings = InvenTreeSetting.objects.filter(key__iexact=key)
+        setting = InvenTreeSetting.get_setting_object(key)
 
-            if len(settings) > 0:
-                return settings[0].value
-            else:
-                return backup_value
-        except InvenTreeSetting.DoesNotExist:
+        if setting:
+            return setting.value
+        else:
             return backup_value
 
     @classmethod
@@ -108,6 +278,59 @@ class InvenTreeSetting(models.Model):
 
     value = models.CharField(max_length=200, blank=True, unique=False, help_text=_('Settings value'))
 
+    @property
+    def name(self):
+        return InvenTreeSetting.get_setting_name(self.key)
+
+    @property
+    def description(self):
+        return InvenTreeSetting.get_setting_description(self.key)
+
+    @property
+    def units(self):
+        return InvenTreeSetting.get_setting_units(self.key)
+
+    def clean(self):
+        """
+        If a validator (or multiple validators) are defined for a particular setting key,
+        run them against the 'value' field.
+        """
+
+        super().clean()
+
+        validator = InvenTreeSetting.get_setting_validator(self.key)
+
+        if validator is not None:
+            self.run_validator(validator)
+
+    def run_validator(self, validator):
+        """
+        Run a validator against the 'value' field for this InvenTreeSetting object.
+        """
+
+        if validator is None:
+            return
+
+        # If a list of validators is supplied, iterate through each one
+        if type(validator) in [list, tuple]:
+            for v in validator:
+                self.run_validator(v)
+            
+            return
+
+        # Check if a 'type' has been specified for this value
+        if type(validator) == type:
+
+            if validator == bool:
+                # Value must "look like" a boolean value
+                if InvenTree.helpers.is_bool(self.value):
+                    # Coerce into either "True" or "False"
+                    self.value = str(InvenTree.helpers.str2bool(self.value))
+                else:
+                    raise ValidationError({
+                        'value': _('Value must be a boolean value')
+                    })
+
     def validate_unique(self, exclude=None):
         """ Ensure that the key:value pair is unique.
         In addition to the base validators, this ensures that the 'key'
@@ -123,6 +346,24 @@ class InvenTreeSetting(models.Model):
         except InvenTreeSetting.DoesNotExist:
             pass
 
+    def is_bool(self):
+        """
+        Check if this setting is required to be a boolean value
+        """
+
+        validator = InvenTreeSetting.get_setting_validator(self.key)
+
+        return validator == bool
+
+    def as_bool(self):
+        """
+        Return the value of this setting converted to a boolean value.
+
+        Warning: Only use on values where is_bool evaluates to true!
+        """
+
+        return InvenTree.helpers.str2bool(self.value)
+
 
 class Currency(models.Model):
     """
diff --git a/InvenTree/common/templates/common/edit_setting.html b/InvenTree/common/templates/common/edit_setting.html
new file mode 100644
index 0000000000..c74ed7d591
--- /dev/null
+++ b/InvenTree/common/templates/common/edit_setting.html
@@ -0,0 +1,14 @@
+{% extends "modal_form.html" %}
+{% load i18n %}
+
+{% block pre_form_content %}
+
+{{ block.super }}
+<!--
+    <p>
+        <b>{{ name }}</b><br>
+        {{ description }}<br>
+        <i>{% trans "Current value" %}: {{ value }}</i>
+    </p>
+-->
+{% endblock %}
\ No newline at end of file
diff --git a/InvenTree/common/tests.py b/InvenTree/common/tests.py
index a5d32dc3d6..e0b6812f40 100644
--- a/InvenTree/common/tests.py
+++ b/InvenTree/common/tests.py
@@ -35,14 +35,37 @@ class SettingsTest(TestCase):
 
         self.client.login(username='username', password='password')
 
+    def test_required_values(self):
+        """
+        - Ensure that every global setting has a name.
+        - Ensure that every global setting has a description.
+        """
+
+        for key in InvenTreeSetting.GLOBAL_SETTINGS.keys():
+
+            setting = InvenTreeSetting.GLOBAL_SETTINGS[key]
+
+            name = setting.get('name', None)
+
+            if name is None:
+                raise ValueError(f'Missing GLOBAL_SETTING name for {key}')
+
+            description = setting.get('description', None)
+
+            if description is None:
+                raise ValueError(f'Missing GLOBAL_SETTING description for {key}')
+
+            if not key == key.upper():
+                raise ValueError(f"GLOBAL_SETTINGS key '{key}' is not uppercase")
+
     def test_defaults(self):
         """
         Populate the settings with default values
         """
 
-        for key in InvenTreeSetting.DEFAULT_VALUES.keys():
+        for key in InvenTreeSetting.GLOBAL_SETTINGS.keys():
 
-            value = InvenTreeSetting.DEFAULT_VALUES[key]
+            value = InvenTreeSetting.get_default_value(key)
 
             InvenTreeSetting.set_setting(key, value, self.user)
 
diff --git a/InvenTree/common/views.py b/InvenTree/common/views.py
index a205b8b915..cfcee8bfa9 100644
--- a/InvenTree/common/views.py
+++ b/InvenTree/common/views.py
@@ -6,8 +6,10 @@ Django views for interacting with common models
 from __future__ import unicode_literals
 
 from django.utils.translation import ugettext as _
+from django.forms import CheckboxInput
 
 from InvenTree.views import AjaxCreateView, AjaxUpdateView, AjaxDeleteView
+from InvenTree.helpers import str2bool
 
 from . import models
 from . import forms
@@ -46,3 +48,47 @@ class SettingEdit(AjaxUpdateView):
     model = models.InvenTreeSetting
     ajax_form_title = _('Change Setting')
     form_class = forms.SettingEditForm
+    ajax_template_name = "common/edit_setting.html"
+
+    def get_context_data(self, **kwargs):
+        """
+        Add extra context information about the particular setting object.
+        """
+
+        ctx = super().get_context_data(**kwargs)
+
+        setting = self.get_object()
+
+        ctx['key'] = setting.key
+        ctx['value'] = setting.value
+        ctx['name'] = models.InvenTreeSetting.get_setting_name(setting.key)
+        ctx['description'] = models.InvenTreeSetting.get_setting_description(setting.key)
+
+        return ctx
+
+    def get_form(self):
+        """
+        Override default get_form behaviour
+        """
+
+        form = super().get_form()
+        
+        setting = self.get_object()
+
+        if setting.is_bool():
+            form.fields['value'].widget = CheckboxInput()
+
+            self.object.value = str2bool(setting.value)
+            form.fields['value'].value = str2bool(setting.value)
+
+        name = models.InvenTreeSetting.get_setting_name(setting.key)
+
+        if name:
+            form.fields['value'].label = name
+
+        description = models.InvenTreeSetting.get_setting_description(setting.key)
+
+        if description:
+            form.fields['value'].help_text = description
+
+        return form
diff --git a/InvenTree/company/migrations/0024_unique_name_email_constraint.py b/InvenTree/company/migrations/0024_unique_name_email_constraint.py
new file mode 100644
index 0000000000..3a8781f98d
--- /dev/null
+++ b/InvenTree/company/migrations/0024_unique_name_email_constraint.py
@@ -0,0 +1,38 @@
+from django.db import migrations, models
+
+
+def make_empty_email_field_null(apps, schema_editor):
+    Company = apps.get_model('company', 'Company')
+    for company in Company.objects.all():
+        if company.email == '':
+            company.email = None
+            company.save()
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('company', '0023_auto_20200808_0715'),
+    ]
+
+    operations = [
+        # Allow email field to be NULL
+        migrations.AlterField(
+            model_name='company',
+            name='email',
+            field=models.EmailField(blank=True, help_text='Contact email address', max_length=254, null=True, unique=False, verbose_name='Email'),
+        ),
+        # Convert empty email string to NULL
+        migrations.RunPython(make_empty_email_field_null),
+        # Remove unique constraint on name field
+        migrations.AlterField(
+            model_name='company',
+            name='name',
+            field=models.CharField(help_text='Company name', max_length=100, verbose_name='Company name'),
+        ),
+        # Add unique constraint on name/email pair
+        migrations.AddConstraint(
+            model_name='company',
+            constraint=models.UniqueConstraint(fields=('name', 'email'), name='unique_name_email_pair'),
+        ),
+    ]
diff --git a/InvenTree/company/models.py b/InvenTree/company/models.py
index f1e249fd58..b9fed2ee7b 100644
--- a/InvenTree/company/models.py
+++ b/InvenTree/company/models.py
@@ -12,7 +12,7 @@ import math
 from django.utils.translation import gettext_lazy as _
 from django.core.validators import MinValueValidator
 from django.db import models
-from django.db.models import Sum, Q
+from django.db.models import Sum, Q, UniqueConstraint
 
 from django.apps import apps
 from django.urls import reverse
@@ -81,8 +81,11 @@ class Company(models.Model):
 
     class Meta:
         ordering = ['name', ]
+        constraints = [
+            UniqueConstraint(fields=['name', 'email'], name='unique_name_email_pair')
+        ]
 
-    name = models.CharField(max_length=100, blank=False, unique=True,
+    name = models.CharField(max_length=100, blank=False,
                             help_text=_('Company name'),
                             verbose_name=_('Company name'))
 
@@ -98,7 +101,8 @@ class Company(models.Model):
                              verbose_name=_('Phone number'),
                              blank=True, help_text=_('Contact phone number'))
 
-    email = models.EmailField(blank=True, verbose_name=_('Email'), help_text=_('Contact email address'))
+    email = models.EmailField(blank=True, null=True,
+                              verbose_name=_('Email'), help_text=_('Contact email address'))
 
     contact = models.CharField(max_length=100,
                                verbose_name=_('Contact'),
diff --git a/InvenTree/company/templates/company/company_base.html b/InvenTree/company/templates/company/company_base.html
index f20107277d..cdca22fa36 100644
--- a/InvenTree/company/templates/company/company_base.html
+++ b/InvenTree/company/templates/company/company_base.html
@@ -23,23 +23,27 @@ InvenTree | {% trans "Company" %} - {{ company.name }}
 <hr>
 <h4>
     {{ company.name }}
-    {% if user.is_staff and roles.company.change %}
+    {% if user.is_staff and perms.company.change_company %}
     <a  href="{% url 'admin:company_company_change' company.pk %}"><span title="{% trans 'Admin view' %}" class='fas fa-user-shield'></span></a>
     {% endif %}
 </h4>
 <p>{{ company.description }}</p>
 <div class='btn-group action-buttons'>
-    {% if company.is_supplier %}
+    {% if company.is_supplier and roles.purchase_order.add %}
     <button type='button' class='btn btn-default' id='company-order-2' title='Create purchase order'>
         <span class='fas fa-shopping-cart'/>
     </button>
     {% endif %}
+    {% if perms.company.change_company %}
     <button type='button' class='btn btn-default' id='company-edit' title='Edit company information'>
         <span class='fas fa-edit icon-green'/>
     </button>
+    {% endif %}
+    {% if perms.company.delete_company %}
     <button type='button' class='btn btn-default' id='company-delete' title='Delete company'>
         <span class='fas fa-trash-alt icon-red'/>
     </button>
+    {% endif %}
 </div>
 {% endblock %}
 
diff --git a/InvenTree/company/templates/company/detail_part.html b/InvenTree/company/templates/company/detail_part.html
index e07304dd13..463bf5814d 100644
--- a/InvenTree/company/templates/company/detail_part.html
+++ b/InvenTree/company/templates/company/detail_part.html
@@ -9,17 +9,25 @@
 
 <hr>
 
+{% if roles.purchase_order.change %}
 <div id='button-toolbar' class='btn-group'>
+    {% if roles.purchase_order.add %}
     <button class="btn btn-success" id='part-create' title='{% trans "Create new supplier part" %}'>{% trans "New Supplier Part" %}</button>
+    {% endif %}
     <div class="dropdown" style="float: right;">
         <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">{% trans "Options" %}
         <span class="caret"></span></button>
         <ul class="dropdown-menu">
+            {% if roles.purchase_order.add %}
             <li><a href='#' id='multi-part-order' title='{% trans "Order parts" %}'>{% trans "Order Parts" %}</a></li>
+            {% endif %}
+            {% if roles.purchase_order.delete %}
             <li><a href='#' id='multi-part-delete' title='{% trans "Delete parts" %}'>{% trans "Delete Parts" %}</a></li>
+            {% endif %}
         </ul>
     </div>
 </div>
+{% endif %}
 
 <table class='table table-striped table-condensed' id='part-table' data-toolbar='#button-toolbar'>
 </table>
diff --git a/InvenTree/company/templates/company/index.html b/InvenTree/company/templates/company/index.html
index 253085568e..f110950c0b 100644
--- a/InvenTree/company/templates/company/index.html
+++ b/InvenTree/company/templates/company/index.html
@@ -12,12 +12,13 @@ InvenTree | {% trans "Supplier List" %}
 <h3>{{ title }}</h3>
 <hr>
 
+{% if pagetype == 'manufacturers' and roles.purchase_order.add or pagetype == 'suppliers' and roles.purchase_order.add or pagetype == 'customers' and roles.sales_order.add %}
 <div id='button-toolbar'>
     <div class='btn-group'>
         <button type='button' class="btn btn-success" id='new-company'>{{ button_text }}</button>
     </div>
 </div>
-
+{% endif %}
 
 <table class='table table-striped' id='company-table' data-toolbar='#button-toolbar'>
 </table>
diff --git a/InvenTree/company/templates/company/purchase_orders.html b/InvenTree/company/templates/company/purchase_orders.html
index bab5cd4bce..a0ef1612fa 100644
--- a/InvenTree/company/templates/company/purchase_orders.html
+++ b/InvenTree/company/templates/company/purchase_orders.html
@@ -9,6 +9,7 @@
 <h4>{% trans "Purchase Orders" %}</h4>
 <hr>
 
+{% if roles.purchase_order.add %}
 <div id='button-bar'>
     <div class='button-toolbar container-fluid' style='float: right;'>
         <button class='btn btn-primary' type='button' id='company-order2' title='{% trans "Create new purchase order" %}'>{% trans "New Purchase Order" %}</button>
@@ -17,6 +18,7 @@
         </div>
     </div>
 </div>
+{% endif %}
 
 <table class='table table-striped table-condensed po-table' id='purchase-order-table' data-toolbar='#button-bar'>
 </table>
diff --git a/InvenTree/company/templates/company/sales_orders.html b/InvenTree/company/templates/company/sales_orders.html
index 0b64bed2f5..03c64d5b88 100644
--- a/InvenTree/company/templates/company/sales_orders.html
+++ b/InvenTree/company/templates/company/sales_orders.html
@@ -9,6 +9,7 @@
 <h4>{% trans "Sales Orders" %}</h4>
 <hr>
 
+{% if roles.sales_order.add %}
 <div id='button-bar'>
     <div class='button-toolbar container-fluid' style='float: right;'>
         <button class='btn btn-primary' type='button' id='new-sales-order' title='{% trans "Create new sales order" %}'>{% trans "New Sales Order" %}</button>
@@ -17,6 +18,7 @@
         </div>
     </div>
 </div>
+{% endif %}
 
 <table class='table table-striped table-condensed po-table' id='sales-order-table' data-toolbar='#button-bar'>
 </table>
diff --git a/InvenTree/company/templates/company/supplier_part_base.html b/InvenTree/company/templates/company/supplier_part_base.html
index ca09caee93..7476a7c606 100644
--- a/InvenTree/company/templates/company/supplier_part_base.html
+++ b/InvenTree/company/templates/company/supplier_part_base.html
@@ -18,19 +18,27 @@ src="{% static 'img/blank_image.png' %}"
 {% block page_data %}
 <h3>{% trans "Supplier Part" %}</h3>
 <p>{{ part.supplier.name }} - {{ part.SKU }}</p>
+
+{% if roles.purchase_order.change %}
 <div class='btn-row'>
     <div class='btn-group action-buttons' role='group'>
+        {% if roles.purchase_order.add %}
         <button type='button' class='btn btn-default btn-glyph' id='order-part' title='{% trans "Order part" %}'>
             <span class='fas fa-shopping-cart'></span>
         </button>
+        {% endif %}
         <button type='button' class='btn btn-default btn-glyph' id='edit-part' title='{% trans "Edit supplier part" %}'>
             <span class='fas fa-edit icon-green'/>
         </button>
+        {% if roles.purchase_order.delete %}
         <button type='button' class='btn btn-default btn-glyph' id='delete-part' title='{% trans "Delete supplier part" %}'>
             <span class='fas fa-trash-alt icon-red'/>
         </button>
+        {% endif %}
     </div>
 </div>
+{% endif %}
+
 {% endblock %}
 
 {% block page_details %}
diff --git a/InvenTree/company/templates/company/supplier_part_orders.html b/InvenTree/company/templates/company/supplier_part_orders.html
index 5c2ea6d1d4..29eb8ee874 100644
--- a/InvenTree/company/templates/company/supplier_part_orders.html
+++ b/InvenTree/company/templates/company/supplier_part_orders.html
@@ -10,11 +10,13 @@
 
 <hr>
 
+{% if roles.purchase_order.add %}
 <div id='button-bar'>
     <div class='btn-group'>
         <button class='btn btn-primary' type='button' id='order-part2' title='Order part'>Order Part</button>
     </div>
 </div>
+{% endif %}
     
 <table class='table table-striped table-condensed po-table' id='purchase-order-table' data-toolbar='#button-bar'>
 </table>
diff --git a/InvenTree/company/templates/company/supplier_part_pricing.html b/InvenTree/company/templates/company/supplier_part_pricing.html
index f9f5063190..97022024f5 100644
--- a/InvenTree/company/templates/company/supplier_part_pricing.html
+++ b/InvenTree/company/templates/company/supplier_part_pricing.html
@@ -11,9 +11,11 @@
 
 <hr>
 
+{% if roles.purchase_order.add %}
 <div id='price-break-toolbar' class='btn-group'>
     <button class='btn btn-primary' id='new-price-break' type='button'>{% trans "Add Price Break" %}</button>
 </div>
+{% endif %}
 
 <table class='table table-striped table-condensed' id='price-break-table' data-toolbar='#price-break-toolbar'>    
 </table>
diff --git a/InvenTree/company/test_views.py b/InvenTree/company/test_views.py
index b9bb69e503..d895c18957 100644
--- a/InvenTree/company/test_views.py
+++ b/InvenTree/company/test_views.py
@@ -6,6 +6,7 @@ from __future__ import unicode_literals
 from django.test import TestCase
 from django.urls import reverse
 from django.contrib.auth import get_user_model
+from django.contrib.auth.models import Group
 
 from .models import SupplierPart
 
@@ -25,7 +26,24 @@ class CompanyViewTest(TestCase):
 
         # Create a user
         User = get_user_model()
-        User.objects.create_user('username', 'user@email.com', 'password')
+        self.user = User.objects.create_user(
+            username='username',
+            email='user@email.com',
+            password='password'
+        )
+
+        # Put the user into a group with the correct permissions
+        group = Group.objects.create(name='mygroup')
+        self.user.groups.add(group)
+
+        # Give the group *all* the permissions!
+        for rule in group.rule_sets.all():
+            rule.can_view = True
+            rule.can_change = True
+            rule.can_add = True
+            rule.can_delete = True
+
+            rule.save()
 
         self.client.login(username='username', password='password')
 
diff --git a/InvenTree/company/views.py b/InvenTree/company/views.py
index 9ef6adea0e..dce341d184 100644
--- a/InvenTree/company/views.py
+++ b/InvenTree/company/views.py
@@ -14,6 +14,7 @@ from django.forms import HiddenInput
 
 from InvenTree.views import AjaxCreateView, AjaxUpdateView, AjaxDeleteView
 from InvenTree.helpers import str2bool
+from InvenTree.views import InvenTreeRoleMixin
 
 from common.models import Currency
 
@@ -29,7 +30,7 @@ from .forms import EditSupplierPartForm
 from .forms import EditPriceBreakForm
 
 
-class CompanyIndex(ListView):
+class CompanyIndex(InvenTreeRoleMixin, ListView):
     """ View for displaying list of companies
     """
 
@@ -37,6 +38,7 @@ class CompanyIndex(ListView):
     template_name = 'company/index.html'
     context_object_name = 'companies'
     paginate_by = 50
+    permission_required = 'company.view_company'
 
     def get_context_data(self, **kwargs):
 
@@ -116,8 +118,8 @@ class CompanyNotes(UpdateView):
     context_object_name = 'company'
     template_name = 'company/notes.html'
     model = Company
-
     fields = ['notes']
+    permission_required = 'company.view_company'
 
     def get_success_url(self):
         return reverse('company-notes', kwargs={'pk': self.get_object().id})
@@ -137,6 +139,7 @@ class CompanyDetail(DetailView):
     template_name = 'company/detail.html'
     queryset = Company.objects.all()
     model = Company
+    permission_required = 'company.view_company'
 
     def get_context_data(self, **kwargs):
         ctx = super().get_context_data(**kwargs)
@@ -150,6 +153,7 @@ class CompanyImage(AjaxUpdateView):
     ajax_template_name = 'modal_form.html'
     ajax_form_title = _('Update Company Image')
     form_class = CompanyImageForm
+    permission_required = 'company.change_company'
 
     def get_data(self):
         return {
@@ -164,6 +168,7 @@ class CompanyEdit(AjaxUpdateView):
     context_object_name = 'company'
     ajax_template_name = 'modal_form.html'
     ajax_form_title = _('Edit Company')
+    permission_required = 'company.change_company'
 
     def get_data(self):
         return {
@@ -177,6 +182,7 @@ class CompanyCreate(AjaxCreateView):
     context_object_name = 'company'
     form_class = EditCompanyForm
     ajax_template_name = 'modal_form.html'
+    permission_required = 'company.add_company'
 
     def get_form_title(self):
 
@@ -230,6 +236,7 @@ class CompanyDelete(AjaxDeleteView):
     ajax_template_name = 'company/delete.html'
     ajax_form_title = _('Delete Company')
     context_object_name = 'company'
+    permission_required = 'company.delete_company'
 
     def get_data(self):
         return {
@@ -243,6 +250,7 @@ class SupplierPartDetail(DetailView):
     template_name = 'company/supplier_part_detail.html'
     context_object_name = 'part'
     queryset = SupplierPart.objects.all()
+    permission_required = 'purchase_order.view'
 
     def get_context_data(self, **kwargs):
         ctx = super().get_context_data(**kwargs)
@@ -258,6 +266,7 @@ class SupplierPartEdit(AjaxUpdateView):
     form_class = EditSupplierPartForm
     ajax_template_name = 'modal_form.html'
     ajax_form_title = _('Edit Supplier Part')
+    role_required = 'purchase_order.change'
 
 
 class SupplierPartCreate(AjaxCreateView):
@@ -268,6 +277,7 @@ class SupplierPartCreate(AjaxCreateView):
     ajax_template_name = 'modal_form.html'
     ajax_form_title = _('Create new Supplier Part')
     context_object_name = 'part'
+    role_required = 'purchase_order.add'
 
     def get_form(self):
         """ Create Form instance to create a new SupplierPart object.
@@ -327,6 +337,7 @@ class SupplierPartDelete(AjaxDeleteView):
     success_url = '/supplier/'
     ajax_template_name = 'company/partdelete.html'
     ajax_form_title = _('Delete Supplier Part')
+    role_required = 'purchase_order.delete'
 
     parts = []
 
@@ -398,6 +409,7 @@ class PriceBreakCreate(AjaxCreateView):
     form_class = EditPriceBreakForm
     ajax_form_title = _('Add Price Break')
     ajax_template_name = 'modal_form.html'
+    role_required = 'purchase_order.add'
 
     def get_data(self):
         return {
@@ -440,6 +452,7 @@ class PriceBreakEdit(AjaxUpdateView):
     form_class = EditPriceBreakForm
     ajax_form_title = _('Edit Price Break')
     ajax_template_name = 'modal_form.html'
+    role_required = 'purchase_order.change'
 
     def get_form(self):
 
@@ -455,3 +468,4 @@ class PriceBreakDelete(AjaxDeleteView):
     model = SupplierPriceBreak
     ajax_form_title = _("Delete Price Break")
     ajax_template_name = 'modal_delete_form.html'
+    role_required = 'purchase_order.delete'
diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po
index 10f223fcd4..12f23f2b25 100644
--- a/InvenTree/locale/de/LC_MESSAGES/django.po
+++ b/InvenTree/locale/de/LC_MESSAGES/django.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-10-19 21:40+0000\n"
+"POT-Creation-Date: 2020-10-25 10:54+0000\n"
 "PO-Revision-Date: 2020-05-03 11:32+0200\n"
 "Last-Translator: Christian Schlüter <chschlue@gmail.com>\n"
 "Language-Team: C <kde-i18n-doc@kde.org>\n"
@@ -49,35 +49,35 @@ msgstr ""
 msgid "Apply Theme"
 msgstr ""
 
-#: InvenTree/helpers.py:348 order/models.py:187 order/models.py:261
+#: InvenTree/helpers.py:361 order/models.py:187 order/models.py:261
 msgid "Invalid quantity provided"
 msgstr "Keine gültige Menge"
 
-#: InvenTree/helpers.py:351
+#: InvenTree/helpers.py:364
 msgid "Empty serial number string"
 msgstr "Keine Seriennummer angegeben"
 
-#: InvenTree/helpers.py:372
+#: InvenTree/helpers.py:385
 #, python-brace-format
 msgid "Duplicate serial: {n}"
 msgstr "Doppelte Seriennummer: {n}"
 
-#: InvenTree/helpers.py:376 InvenTree/helpers.py:379 InvenTree/helpers.py:382
+#: InvenTree/helpers.py:389 InvenTree/helpers.py:392 InvenTree/helpers.py:395
 #, python-brace-format
 msgid "Invalid group: {g}"
 msgstr "Ungültige Gruppe: {g}"
 
-#: InvenTree/helpers.py:387
+#: InvenTree/helpers.py:400
 #, fuzzy, python-brace-format
 #| msgid "Duplicate serial: {n}"
 msgid "Duplicate serial: {g}"
 msgstr "Doppelte Seriennummer: {n}"
 
-#: InvenTree/helpers.py:395
+#: InvenTree/helpers.py:408
 msgid "No serial numbers found"
 msgstr "Keine Seriennummern gefunden"
 
-#: InvenTree/helpers.py:399
+#: InvenTree/helpers.py:412
 #, python-brace-format
 msgid "Number of unique serial number ({s}) must match quantity ({q})"
 msgstr ""
@@ -92,7 +92,7 @@ msgstr "Datei zum Anhängen auswählen"
 msgid "File comment"
 msgstr "Datei-Kommentar"
 
-#: InvenTree/models.py:68 templates/js/stock.html:699
+#: InvenTree/models.py:68 templates/js/stock.html:700
 msgid "User"
 msgstr "Benutzer"
 
@@ -177,7 +177,7 @@ msgid "Rejected"
 msgstr ""
 
 #: InvenTree/status_codes.py:223 build/templates/build/allocate.html:358
-#: order/templates/order/sales_order_detail.html:221
+#: order/templates/order/sales_order_detail.html:223
 #: part/templates/part/tabs.html:23 templates/js/build.html:140
 msgid "Allocated"
 msgstr "Zugeordnet"
@@ -214,7 +214,7 @@ msgstr "Überschuss darf 100% nicht überschreiten"
 msgid "Overage must be an integer value or a percentage"
 msgstr "Überschuss muss eine Ganzzahl oder ein Prozentwert sein"
 
-#: InvenTree/views.py:703
+#: InvenTree/views.py:707
 msgid "Database Statistics"
 msgstr "Datenbankstatistiken"
 
@@ -298,7 +298,7 @@ msgstr "Bauauftrag"
 #: build/models.py:55 build/templates/build/index.html:6
 #: build/templates/build/index.html:14 order/templates/order/so_builds.html:11
 #: order/templates/order/so_tabs.html:9 part/templates/part/tabs.html:31
-#: templates/InvenTree/settings/tabs.html:24 users/models.py:30
+#: templates/InvenTree/settings/tabs.html:28 users/models.py:30
 msgid "Build Orders"
 msgstr "Bauaufträge"
 
@@ -321,16 +321,16 @@ msgid "Reference"
 msgstr "Referenz"
 
 #: build/models.py:94 build/templates/build/allocate.html:337
-#: company/templates/company/supplier_part_base.html:53
+#: company/templates/company/supplier_part_base.html:61
 #: company/templates/company/supplier_part_detail.html:27
 #: order/templates/order/purchase_order_detail.html:159
 #: part/templates/part/detail.html:51 part/templates/part/set_category.html:14
 #: templates/InvenTree/search.html:147 templates/js/bom.html:147
 #: templates/js/build.html:56 templates/js/company.html:56
-#: templates/js/order.html:159 templates/js/order.html:234
+#: templates/js/order.html:167 templates/js/order.html:249
 #: templates/js/part.html:120 templates/js/part.html:203
 #: templates/js/part.html:345 templates/js/part.html:526
-#: templates/js/stock.html:444 templates/js/stock.html:671
+#: templates/js/stock.html:445 templates/js/stock.html:672
 msgid "Description"
 msgstr "Beschreibung"
 
@@ -358,7 +358,7 @@ msgstr "Eltern-Bau, dem dieser Bau zugewiesen ist"
 #: templates/js/barcode.html:336 templates/js/bom.html:124
 #: templates/js/build.html:61 templates/js/company.html:137
 #: templates/js/part.html:184 templates/js/part.html:289
-#: templates/js/stock.html:421 templates/js/stock.html:977
+#: templates/js/stock.html:421 templates/js/stock.html:978
 msgid "Part"
 msgstr "Teil"
 
@@ -411,7 +411,7 @@ msgid "Batch code for this build output"
 msgstr "Chargennummer für diese Bau-Ausgabe"
 
 #: build/models.py:176 build/templates/build/detail.html:55
-#: company/templates/company/supplier_part_base.html:60
+#: company/templates/company/supplier_part_base.html:68
 #: company/templates/company/supplier_part_detail.html:24
 #: part/templates/part/detail.html:80 part/templates/part/part_base.html:102
 #: stock/models.py:381 stock/templates/stock/item_base.html:266
@@ -422,14 +422,14 @@ msgstr "Externer Link"
 msgid "Link to external URL"
 msgstr "Link zu einer externen URL"
 
-#: build/models.py:181 build/templates/build/tabs.html:14 company/models.py:310
+#: build/models.py:181 build/templates/build/tabs.html:14 company/models.py:314
 #: company/templates/company/tabs.html:33 order/templates/order/po_tabs.html:18
 #: order/templates/order/purchase_order_detail.html:202
 #: order/templates/order/so_tabs.html:23 part/templates/part/tabs.html:70
 #: stock/forms.py:306 stock/forms.py:338 stock/forms.py:366 stock/models.py:453
 #: stock/models.py:1404 stock/templates/stock/tabs.html:26
 #: templates/js/barcode.html:391 templates/js/bom.html:223
-#: templates/js/stock.html:116 templates/js/stock.html:543
+#: templates/js/stock.html:116 templates/js/stock.html:544
 msgid "Notes"
 msgstr "Notizen"
 
@@ -473,7 +473,7 @@ msgid "Stock quantity to allocate to build"
 msgstr "Lagerobjekt-Anzahl dem Bau zuweisen"
 
 #: build/templates/build/allocate.html:17
-#: company/templates/company/detail_part.html:18 order/views.py:804
+#: company/templates/company/detail_part.html:22 order/views.py:804
 #: part/templates/part/category.html:122
 msgid "Order Parts"
 msgstr "Teile bestellen"
@@ -499,8 +499,8 @@ msgid "Create new Stock Item"
 msgstr "Neues Lagerobjekt hinzufügen"
 
 #: build/templates/build/allocate.html:170
-#: order/templates/order/sales_order_detail.html:68
-#: order/templates/order/sales_order_detail.html:150 stock/models.py:375
+#: order/templates/order/sales_order_detail.html:70
+#: order/templates/order/sales_order_detail.html:152 stock/models.py:375
 #: stock/templates/stock/item_base.html:178
 msgid "Serial Number"
 msgstr "Seriennummer"
@@ -509,11 +509,11 @@ msgstr "Seriennummer"
 #: build/templates/build/auto_allocate.html:20
 #: build/templates/build/build_base.html:83
 #: build/templates/build/detail.html:27
-#: company/templates/company/supplier_part_pricing.html:71
+#: company/templates/company/supplier_part_pricing.html:73
 #: order/templates/order/order_wizard/select_parts.html:32
 #: order/templates/order/purchase_order_detail.html:177
-#: order/templates/order/sales_order_detail.html:70
-#: order/templates/order/sales_order_detail.html:152
+#: order/templates/order/sales_order_detail.html:72
+#: order/templates/order/sales_order_detail.html:154
 #: part/templates/part/allocation.html:16
 #: part/templates/part/allocation.html:49
 #: part/templates/part/sale_prices.html:80 stock/forms.py:297
@@ -522,7 +522,7 @@ msgstr "Seriennummer"
 #: stock/templates/stock/item_base.html:184
 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.html:338
 #: templates/js/bom.html:162 templates/js/build.html:72
-#: templates/js/stock.html:690 templates/js/stock.html:905
+#: templates/js/stock.html:691 templates/js/stock.html:906
 msgid "Quantity"
 msgstr "Anzahl"
 
@@ -531,17 +531,17 @@ msgstr "Anzahl"
 #: stock/templates/stock/item_base.html:220
 #: stock/templates/stock/stock_adjust.html:17
 #: templates/InvenTree/search.html:183 templates/js/barcode.html:337
-#: templates/js/stock.html:518
+#: templates/js/stock.html:519
 msgid "Location"
 msgstr "Standort"
 
 #: build/templates/build/allocate.html:210
-#: order/templates/order/sales_order_detail.html:92 templates/js/build.html:144
+#: order/templates/order/sales_order_detail.html:94 templates/js/build.html:144
 msgid "Edit stock allocation"
 msgstr "Lagerobjekt-Standort bearbeiten"
 
 #: build/templates/build/allocate.html:211
-#: order/templates/order/sales_order_detail.html:93 templates/js/build.html:145
+#: order/templates/order/sales_order_detail.html:95 templates/js/build.html:145
 msgid "Delete stock allocation"
 msgstr "Zuweisung löschen"
 
@@ -559,12 +559,12 @@ msgid "Assigned"
 msgstr "Zugewiesen"
 
 #: build/templates/build/allocate.html:394
-#: order/templates/order/sales_order_detail.html:271
+#: order/templates/order/sales_order_detail.html:273
 msgid "Buy parts"
 msgstr "Teile kaufen"
 
 #: build/templates/build/allocate.html:398
-#: order/templates/order/sales_order_detail.html:275
+#: order/templates/order/sales_order_detail.html:277
 msgid "Build parts"
 msgstr "Bauteile"
 
@@ -650,8 +650,8 @@ msgstr "Bau-Status"
 #: order/templates/order/receive_parts.html:24
 #: stock/templates/stock/item_base.html:298 templates/InvenTree/search.html:175
 #: templates/js/barcode.html:42 templates/js/build.html:77
-#: templates/js/order.html:164 templates/js/order.html:239
-#: templates/js/stock.html:505 templates/js/stock.html:913
+#: templates/js/order.html:172 templates/js/order.html:254
+#: templates/js/stock.html:506 templates/js/stock.html:914
 msgid "Status"
 msgstr "Status"
 
@@ -661,7 +661,7 @@ msgstr "Status"
 #: order/templates/order/sales_order_notes.html:10
 #: order/templates/order/sales_order_ship.html:25
 #: part/templates/part/allocation.html:27
-#: stock/templates/stock/item_base.html:208 templates/js/order.html:213
+#: stock/templates/stock/item_base.html:208 templates/js/order.html:221
 msgid "Sales Order"
 msgstr "Bestellung"
 
@@ -736,8 +736,8 @@ msgid "Stock can be taken from any available location."
 msgstr "Bestand kann jedem verfügbaren Lagerort entnommen werden."
 
 #: build/templates/build/detail.html:48
-#: stock/templates/stock/item_base.html:238 templates/js/stock.html:513
-#: templates/js/stock.html:920 templates/js/table_filters.html:34
+#: stock/templates/stock/item_base.html:238 templates/js/stock.html:514
+#: templates/js/stock.html:921 templates/js/table_filters.html:34
 #: templates/js/table_filters.html:100
 msgid "Batch"
 msgstr "Los"
@@ -881,175 +881,287 @@ msgstr "Teilzuordnung bearbeiten"
 msgid "Updated Build Item"
 msgstr "Bauobjekt aktualisiert"
 
-#: common/models.py:107
+#: common/models.py:51
+#, fuzzy
+#| msgid "Instance Name"
+msgid "InvenTree Instance Name"
+msgstr "Instanzname"
+
+#: common/models.py:53
+#, fuzzy
+#| msgid "Brief description of the build"
+msgid "String descriptor for the server instance"
+msgstr "Kurze Beschreibung des Baus"
+
+#: common/models.py:57 company/models.py:89 company/models.py:90
+msgid "Company name"
+msgstr "Firmenname"
+
+#: common/models.py:58
+#, fuzzy
+#| msgid "Company name"
+msgid "Internal company name"
+msgstr "Firmenname"
+
+#: common/models.py:63
+msgid "IPN Regex"
+msgstr ""
+
+#: common/models.py:64
+msgid "Regular expression pattern for matching Part IPN"
+msgstr ""
+
+#: common/models.py:68
+#, fuzzy
+#| msgid "Import BOM data"
+msgid "Copy Part BOM Data"
+msgstr "Stückliste importieren"
+
+#: common/models.py:69
+msgid "Copy BOM data by default when duplicating a part"
+msgstr ""
+
+#: common/models.py:75
+#, fuzzy
+#| msgid "Parameters"
+msgid "Copy Part Parameter Data"
+msgstr "Parameter"
+
+#: common/models.py:76
+msgid "Copy parameter data by default when duplicating a part"
+msgstr ""
+
+#: common/models.py:82
+#, fuzzy
+#| msgid "Parameters"
+msgid "Copy Part Test Data"
+msgstr "Parameter"
+
+#: common/models.py:83
+msgid "Copy test data by default when duplicating a part"
+msgstr ""
+
+#: common/models.py:89
+#, fuzzy
+#| msgid "Order Reference"
+msgid "Build Order Reference Prefix"
+msgstr "Bestellreferenz"
+
+#: common/models.py:90
+#, fuzzy
+#| msgid "Order reference"
+msgid "Prefix value for build order reference"
+msgstr "Bestell-Referenz"
+
+#: common/models.py:95
+#, fuzzy
+#| msgid "Order Reference"
+msgid "Build Order Reference Regex"
+msgstr "Bestellreferenz"
+
+#: common/models.py:96
+msgid "Regular expression pattern for matching build order reference"
+msgstr ""
+
+#: common/models.py:100
+#, fuzzy
+#| msgid "Sales Order Reference"
+msgid "Sales Order Reference Prefix"
+msgstr "Bestellungsreferenz"
+
+#: common/models.py:101
+#, fuzzy
+#| msgid "Order reference"
+msgid "Prefix value for sales order reference"
+msgstr "Bestell-Referenz"
+
+#: common/models.py:105
+#, fuzzy
+#| msgid "Order reference"
+msgid "Purchase Order Reference Prefix"
+msgstr "Bestell-Referenz"
+
+#: common/models.py:106
+#, fuzzy
+#| msgid "Order reference"
+msgid "Prefix value for purchase order reference"
+msgstr "Bestell-Referenz"
+
+#: common/models.py:272
 msgid "Settings key (must be unique - case insensitive"
 msgstr ""
 "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird "
 "nicht beachtet)"
 
-#: common/models.py:109
+#: common/models.py:274
 msgid "Settings value"
 msgstr "Einstellungs-Wert"
 
-#: common/models.py:122
+#: common/models.py:326
+msgid "Value must be a boolean value"
+msgstr ""
+
+#: common/models.py:340
 msgid "Key string must be unique"
 msgstr "Schlüsseltext muss eindeutig sein"
 
-#: common/models.py:143
+#: common/models.py:379
 msgid "Currency Symbol e.g. $"
 msgstr "Währungs-Symbol (z.B. €)"
 
-#: common/models.py:145
+#: common/models.py:381
 msgid "Currency Suffix e.g. AUD"
 msgstr "Währungs-Suffix (z.B. EUR)"
 
-#: common/models.py:147
+#: common/models.py:383
 msgid "Currency Description"
 msgstr "Währungs-Beschreibung"
 
-#: common/models.py:149
+#: common/models.py:385
 msgid "Currency Value"
 msgstr "Währungs-Wert"
 
-#: common/models.py:151
+#: common/models.py:387
 msgid "Use this currency as the base currency"
 msgstr "Benutze diese Währung als Basis-Währung"
 
-#: common/models.py:234
+#: common/models.py:470
 #, fuzzy
 #| msgid "Default Location"
 msgid "Default"
 msgstr "Standard-Lagerort"
 
-#: common/views.py:21
+#: common/templates/common/edit_setting.html:11
+#, fuzzy
+#| msgid "Currency Value"
+msgid "Current value"
+msgstr "Währungs-Wert"
+
+#: common/views.py:23
 msgid "Create new Currency"
 msgstr "Neues Währung hinzufügen"
 
-#: common/views.py:29
+#: common/views.py:31
 msgid "Edit Currency"
 msgstr "Währung bearbeiten"
 
-#: common/views.py:36
+#: common/views.py:38
 msgid "Delete Currency"
 msgstr "Währung entfernen"
 
-#: common/views.py:47
+#: common/views.py:49
 #, fuzzy
 #| msgid "Settings"
 msgid "Change Setting"
 msgstr "Einstellungen"
 
-#: company/models.py:86 company/models.py:87
-msgid "Company name"
-msgstr "Firmenname"
-
-#: company/models.py:89
+#: company/models.py:92
 #, fuzzy
 #| msgid "Part description"
 msgid "Company description"
 msgstr "Beschreibung des Teils"
 
-#: company/models.py:89
+#: company/models.py:92
 msgid "Description of the company"
 msgstr "Firmenbeschreibung"
 
-#: company/models.py:91 company/templates/company/company_base.html:53
+#: company/models.py:94 company/templates/company/company_base.html:57
 #: templates/js/company.html:61
 msgid "Website"
 msgstr "Website"
 
-#: company/models.py:91
+#: company/models.py:94
 msgid "Company website URL"
 msgstr "Firmenwebsite"
 
-#: company/models.py:94 company/templates/company/company_base.html:60
+#: company/models.py:97 company/templates/company/company_base.html:64
 msgid "Address"
 msgstr "Adresse"
 
-#: company/models.py:95
+#: company/models.py:98
 msgid "Company address"
 msgstr "Firmenadresse"
 
-#: company/models.py:98
+#: company/models.py:101
 #, fuzzy
 #| msgid "Contact phone number"
 msgid "Phone number"
 msgstr "Kontakt-Tel."
 
-#: company/models.py:99
+#: company/models.py:102
 msgid "Contact phone number"
 msgstr "Kontakt-Tel."
 
-#: company/models.py:101 company/templates/company/company_base.html:74
+#: company/models.py:105 company/templates/company/company_base.html:78
 msgid "Email"
 msgstr "Email"
 
-#: company/models.py:101
+#: company/models.py:105
 msgid "Contact email address"
 msgstr "Kontakt-Email"
 
-#: company/models.py:104 company/templates/company/company_base.html:81
+#: company/models.py:108 company/templates/company/company_base.html:85
 msgid "Contact"
 msgstr "Kontakt"
 
-#: company/models.py:105
+#: company/models.py:109
 msgid "Point of contact"
 msgstr "Anlaufstelle"
 
-#: company/models.py:107
+#: company/models.py:111
 msgid "Link to external company information"
 msgstr "Link auf externe Firmeninformation"
 
-#: company/models.py:119
+#: company/models.py:123
 msgid "Do you sell items to this company?"
 msgstr "Verkaufen Sie Teile an diese Firma?"
 
-#: company/models.py:121
+#: company/models.py:125
 msgid "Do you purchase items from this company?"
 msgstr "Kaufen Sie Teile von dieser Firma?"
 
-#: company/models.py:123
+#: company/models.py:127
 msgid "Does this company manufacture parts?"
 msgstr "Produziert diese Firma Teile?"
 
-#: company/models.py:279 stock/models.py:335
+#: company/models.py:283 stock/models.py:335
 #: stock/templates/stock/item_base.html:164
 msgid "Base Part"
 msgstr "Basisteil"
 
-#: company/models.py:284
+#: company/models.py:288
 msgid "Select part"
 msgstr "Teil auswählen"
 
-#: company/models.py:290
+#: company/models.py:294
 msgid "Select supplier"
 msgstr "Zulieferer auswählen"
 
-#: company/models.py:293
+#: company/models.py:297
 msgid "Supplier stock keeping unit"
 msgstr "Stock Keeping Units (SKU) des Zulieferers"
 
-#: company/models.py:300
+#: company/models.py:304
 msgid "Select manufacturer"
 msgstr "Hersteller auswählen"
 
-#: company/models.py:304
+#: company/models.py:308
 msgid "Manufacturer part number"
 msgstr "Hersteller-Teilenummer"
 
-#: company/models.py:306
+#: company/models.py:310
 msgid "URL for external supplier part link"
 msgstr "Teil-URL des Zulieferers"
 
-#: company/models.py:308
+#: company/models.py:312
 msgid "Supplier part description"
 msgstr "Zuliefererbeschreibung des Teils"
 
-#: company/models.py:312
+#: company/models.py:316
 msgid "Minimum charge (e.g. stocking fee)"
 msgstr "Mindestpreis"
 
-#: company/models.py:314
+#: company/models.py:318
 msgid "Part packaging"
 msgstr "Teile-Packaging"
 
@@ -1065,36 +1177,36 @@ msgstr "Zugewiesen"
 msgid "Company"
 msgstr "Firma"
 
-#: company/templates/company/company_base.html:47
+#: company/templates/company/company_base.html:51
 #: company/templates/company/detail.html:8
 msgid "Company Details"
 msgstr "Firmendetails"
 
-#: company/templates/company/company_base.html:67
+#: company/templates/company/company_base.html:71
 msgid "Phone"
 msgstr "Telefon"
 
 #: company/templates/company/detail.html:16
-#: company/templates/company/supplier_part_base.html:76
+#: company/templates/company/supplier_part_base.html:84
 #: company/templates/company/supplier_part_detail.html:30 part/bom.py:172
 #: templates/js/company.html:44 templates/js/company.html:186
 msgid "Manufacturer"
 msgstr "Hersteller"
 
 #: company/templates/company/detail.html:21
-#: company/templates/company/supplier_part_base.html:66
+#: company/templates/company/supplier_part_base.html:74
 #: company/templates/company/supplier_part_detail.html:21
 #: order/templates/order/order_base.html:79
 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:170
 #: stock/templates/stock/item_base.html:273 templates/js/company.html:48
-#: templates/js/company.html:162 templates/js/order.html:146
+#: templates/js/company.html:162 templates/js/order.html:154
 msgid "Supplier"
 msgstr "Zulieferer"
 
 #: company/templates/company/detail.html:26
 #: order/templates/order/sales_order_base.html:81 stock/models.py:370
 #: stock/models.py:371 stock/templates/stock/item_base.html:191
-#: templates/js/company.html:40 templates/js/order.html:221
+#: templates/js/company.html:40 templates/js/order.html:236
 msgid "Customer"
 msgstr "Kunde"
 
@@ -1102,64 +1214,64 @@ msgstr "Kunde"
 msgid "Supplier Parts"
 msgstr "Zulieferer-Teile"
 
-#: company/templates/company/detail_part.html:13
+#: company/templates/company/detail_part.html:15
 #: order/templates/order/purchase_order_detail.html:68
 msgid "Create new supplier part"
 msgstr "Neues Zuliefererteil anlegen"
 
-#: company/templates/company/detail_part.html:13
+#: company/templates/company/detail_part.html:15
 #: order/templates/order/purchase_order_detail.html:67
-#: part/templates/part/supplier.html:13 templates/js/stock.html:797
+#: part/templates/part/supplier.html:13 templates/js/stock.html:798
 msgid "New Supplier Part"
 msgstr "Neues Zulieferer-Teil"
 
-#: company/templates/company/detail_part.html:15
+#: company/templates/company/detail_part.html:18
 #: part/templates/part/category.html:117 part/templates/part/supplier.html:15
 #: templates/stock_table.html:14
 msgid "Options"
 msgstr "Optionen"
 
-#: company/templates/company/detail_part.html:18
+#: company/templates/company/detail_part.html:22
 #: part/templates/part/category.html:122
 #, fuzzy
 #| msgid "Order part"
 msgid "Order parts"
 msgstr "Teil bestellen"
 
-#: company/templates/company/detail_part.html:19
+#: company/templates/company/detail_part.html:25
 #, fuzzy
 #| msgid "Delete Parts"
 msgid "Delete parts"
 msgstr "Teile löschen"
 
-#: company/templates/company/detail_part.html:19
+#: company/templates/company/detail_part.html:25
 msgid "Delete Parts"
 msgstr "Teile löschen"
 
-#: company/templates/company/detail_part.html:43
-#: part/templates/part/category.html:114 templates/js/stock.html:791
+#: company/templates/company/detail_part.html:51
+#: part/templates/part/category.html:114 templates/js/stock.html:792
 msgid "New Part"
 msgstr "Neues Teil"
 
-#: company/templates/company/detail_part.html:44
+#: company/templates/company/detail_part.html:52
 msgid "Create new Part"
 msgstr "Neues Teil hinzufügen"
 
-#: company/templates/company/detail_part.html:49 company/views.py:51
+#: company/templates/company/detail_part.html:57 company/views.py:53
 #: part/templates/part/supplier.html:45
 msgid "New Supplier"
 msgstr "Neuer Zulieferer"
 
-#: company/templates/company/detail_part.html:50 company/views.py:186
+#: company/templates/company/detail_part.html:58 company/views.py:192
 msgid "Create new Supplier"
 msgstr "Neuen Zulieferer anlegen"
 
-#: company/templates/company/detail_part.html:55 company/views.py:58
+#: company/templates/company/detail_part.html:63 company/views.py:60
 #: part/templates/part/supplier.html:51
 msgid "New Manufacturer"
 msgstr "Neuer Hersteller"
 
-#: company/templates/company/detail_part.html:56 company/views.py:189
+#: company/templates/company/detail_part.html:64 company/views.py:195
 msgid "Create new Manufacturer"
 msgstr "Neuen Hersteller anlegen"
 
@@ -1193,17 +1305,17 @@ msgstr ""
 #: order/templates/order/purchase_orders.html:7
 #: order/templates/order/purchase_orders.html:12
 #: part/templates/part/orders.html:9 part/templates/part/tabs.html:48
-#: templates/InvenTree/settings/tabs.html:27 templates/navbar.html:33
+#: templates/InvenTree/settings/tabs.html:31 templates/navbar.html:33
 #: users/models.py:31
 msgid "Purchase Orders"
 msgstr "Bestellungen"
 
-#: company/templates/company/purchase_orders.html:14
+#: company/templates/company/purchase_orders.html:15
 #: order/templates/order/purchase_orders.html:18
 msgid "Create new purchase order"
 msgstr "Neue Bestellung anlegen"
 
-#: company/templates/company/purchase_orders.html:14
+#: company/templates/company/purchase_orders.html:15
 #: order/templates/order/purchase_orders.html:18
 msgid "New Purchase Order"
 msgstr "Neue Bestellung"
@@ -1213,17 +1325,17 @@ msgstr "Neue Bestellung"
 #: order/templates/order/sales_orders.html:7
 #: order/templates/order/sales_orders.html:12
 #: part/templates/part/sales_orders.html:9 part/templates/part/tabs.html:56
-#: templates/InvenTree/settings/tabs.html:30 templates/navbar.html:42
+#: templates/InvenTree/settings/tabs.html:34 templates/navbar.html:42
 #: users/models.py:32
 msgid "Sales Orders"
 msgstr "Bestellungen"
 
-#: company/templates/company/sales_orders.html:14
+#: company/templates/company/sales_orders.html:15
 #: order/templates/order/sales_orders.html:18
 msgid "Create new sales order"
 msgstr "Neuen Auftrag anlegen"
 
-#: company/templates/company/sales_orders.html:14
+#: company/templates/company/sales_orders.html:15
 #: order/templates/order/sales_orders.html:18
 msgid "New Sales Order"
 msgstr "Neuer Auftrag"
@@ -1234,41 +1346,41 @@ msgstr "Neuer Auftrag"
 msgid "Supplier Part"
 msgstr "Zulieferer-Teil"
 
-#: company/templates/company/supplier_part_base.html:23
+#: company/templates/company/supplier_part_base.html:26
 #: part/templates/part/orders.html:14 part/templates/part/part_base.html:66
 msgid "Order part"
 msgstr "Teil bestellen"
 
-#: company/templates/company/supplier_part_base.html:26
+#: company/templates/company/supplier_part_base.html:30
 msgid "Edit supplier part"
 msgstr "Zuliefererteil bearbeiten"
 
-#: company/templates/company/supplier_part_base.html:29
+#: company/templates/company/supplier_part_base.html:34
 msgid "Delete supplier part"
 msgstr "Zuliefererteil entfernen"
 
-#: company/templates/company/supplier_part_base.html:38
+#: company/templates/company/supplier_part_base.html:46
 #: company/templates/company/supplier_part_detail.html:11
 msgid "Supplier Part Details"
 msgstr "Zuliefererteildetails"
 
-#: company/templates/company/supplier_part_base.html:43
+#: company/templates/company/supplier_part_base.html:51
 #: company/templates/company/supplier_part_detail.html:14
 msgid "Internal Part"
 msgstr "Internes Teil"
 
-#: company/templates/company/supplier_part_base.html:70
+#: company/templates/company/supplier_part_base.html:78
 #: company/templates/company/supplier_part_detail.html:22 part/bom.py:171
 msgid "SKU"
 msgstr "SKU"
 
-#: company/templates/company/supplier_part_base.html:80
+#: company/templates/company/supplier_part_base.html:88
 #: company/templates/company/supplier_part_detail.html:31 part/bom.py:173
 #: templates/js/company.html:202
 msgid "MPN"
 msgstr "MPN"
 
-#: company/templates/company/supplier_part_base.html:87
+#: company/templates/company/supplier_part_base.html:95
 #: company/templates/company/supplier_part_detail.html:34
 msgid "Note"
 msgstr "Notiz"
@@ -1281,31 +1393,31 @@ msgstr "Zuliefererbestellungen"
 msgid "Pricing Information"
 msgstr "Preisinformationen ansehen"
 
-#: company/templates/company/supplier_part_pricing.html:15 company/views.py:399
+#: company/templates/company/supplier_part_pricing.html:16 company/views.py:410
 #: part/templates/part/sale_prices.html:13 part/views.py:2228
 msgid "Add Price Break"
 msgstr "Preisstaffel hinzufügen"
 
-#: company/templates/company/supplier_part_pricing.html:32
+#: company/templates/company/supplier_part_pricing.html:34
 #: part/templates/part/sale_prices.html:41
 #, fuzzy
 #| msgid "No company information found"
 msgid "No price break information found"
 msgstr "Keine Firmeninformation gefunden"
 
-#: company/templates/company/supplier_part_pricing.html:76
+#: company/templates/company/supplier_part_pricing.html:78
 #: part/templates/part/sale_prices.html:85 templates/js/bom.html:207
 msgid "Price"
 msgstr "Preis"
 
-#: company/templates/company/supplier_part_pricing.html:90
+#: company/templates/company/supplier_part_pricing.html:92
 #: part/templates/part/sale_prices.html:99
 #, fuzzy
 #| msgid "Edit Price Break"
 msgid "Edit price break"
 msgstr "Preisstaffel bearbeiten"
 
-#: company/templates/company/supplier_part_pricing.html:91
+#: company/templates/company/supplier_part_pricing.html:93
 #: part/templates/part/sale_prices.html:100
 #, fuzzy
 #| msgid "Delete Price Break"
@@ -1323,8 +1435,8 @@ msgstr "Bepreisung"
 #: company/templates/company/supplier_part_tabs.html:8
 #: company/templates/company/tabs.html:12 part/templates/part/tabs.html:18
 #: stock/templates/stock/location.html:17 templates/InvenTree/search.html:155
-#: templates/InvenTree/settings/tabs.html:21 templates/js/part.html:124
-#: templates/js/part.html:372 templates/js/stock.html:452
+#: templates/InvenTree/settings/tabs.html:25 templates/js/part.html:124
+#: templates/js/part.html:372 templates/js/stock.html:453
 #: templates/navbar.html:22 users/models.py:29
 msgid "Stock"
 msgstr "Lagerbestand"
@@ -1337,95 +1449,95 @@ msgstr "Bestellungen"
 #: order/templates/order/receive_parts.html:14 part/models.py:294
 #: part/templates/part/cat_link.html:7 part/templates/part/category.html:94
 #: part/templates/part/category_tabs.html:6
-#: templates/InvenTree/settings/tabs.html:18 templates/navbar.html:19
+#: templates/InvenTree/settings/tabs.html:22 templates/navbar.html:19
 #: templates/stats.html:8 templates/stats.html:17 users/models.py:28
 msgid "Parts"
 msgstr "Teile"
 
-#: company/views.py:50 part/templates/part/tabs.html:42
+#: company/views.py:52 part/templates/part/tabs.html:42
 #: templates/navbar.html:31
 msgid "Suppliers"
 msgstr "Zulieferer"
 
-#: company/views.py:57 templates/navbar.html:32
+#: company/views.py:59 templates/navbar.html:32
 msgid "Manufacturers"
 msgstr "Hersteller"
 
-#: company/views.py:64 templates/navbar.html:41
+#: company/views.py:66 templates/navbar.html:41
 msgid "Customers"
 msgstr "Kunden"
 
-#: company/views.py:65
+#: company/views.py:67
 msgid "New Customer"
 msgstr "Neuer Kunde"
 
-#: company/views.py:73
+#: company/views.py:75
 msgid "Companies"
 msgstr "Firmen"
 
-#: company/views.py:74
+#: company/views.py:76
 msgid "New Company"
 msgstr "Neue Firma"
 
-#: company/views.py:151
+#: company/views.py:154
 msgid "Update Company Image"
 msgstr "Firmenbild aktualisieren"
 
-#: company/views.py:156
+#: company/views.py:160
 msgid "Updated company image"
 msgstr "Aktualisiertes Firmenbild"
 
-#: company/views.py:166
+#: company/views.py:170
 msgid "Edit Company"
 msgstr "Firma bearbeiten"
 
-#: company/views.py:170
+#: company/views.py:175
 msgid "Edited company information"
 msgstr "Firmeninformation bearbeitet"
 
-#: company/views.py:192
+#: company/views.py:198
 msgid "Create new Customer"
 msgstr "Neuen Kunden anlegen"
 
-#: company/views.py:194
+#: company/views.py:200
 msgid "Create new Company"
 msgstr "Neue Firma anlegen"
 
-#: company/views.py:221
+#: company/views.py:227
 msgid "Created new company"
 msgstr "Neue Firma angelegt"
 
-#: company/views.py:231
+#: company/views.py:237
 msgid "Delete Company"
 msgstr "Firma löschen"
 
-#: company/views.py:236
+#: company/views.py:243
 msgid "Company was deleted"
 msgstr "Firma gelöscht"
 
-#: company/views.py:260
+#: company/views.py:268
 msgid "Edit Supplier Part"
 msgstr "Zuliefererteil bearbeiten"
 
-#: company/views.py:269 templates/js/stock.html:798
+#: company/views.py:278 templates/js/stock.html:799
 msgid "Create new Supplier Part"
 msgstr "Neues Zuliefererteil anlegen"
 
-#: company/views.py:329
+#: company/views.py:339
 msgid "Delete Supplier Part"
 msgstr "Zuliefererteil entfernen"
 
-#: company/views.py:404 part/views.py:2234
+#: company/views.py:416 part/views.py:2234
 #, fuzzy
 #| msgid "Add Price Break"
 msgid "Added new price break"
 msgstr "Preisstaffel hinzufügen"
 
-#: company/views.py:441 part/views.py:2279
+#: company/views.py:453 part/views.py:2279
 msgid "Edit Price Break"
 msgstr "Preisstaffel bearbeiten"
 
-#: company/views.py:456 part/views.py:2295
+#: company/views.py:469 part/views.py:2295
 msgid "Delete Price Break"
 msgstr "Preisstaffel löschen"
 
@@ -1569,7 +1681,7 @@ msgstr "Position - Notizen"
 
 #: order/models.py:466 order/templates/order/order_base.html:9
 #: order/templates/order/order_base.html:24
-#: stock/templates/stock/item_base.html:252 templates/js/order.html:138
+#: stock/templates/stock/item_base.html:252 templates/js/order.html:139
 msgid "Purchase Order"
 msgstr "Kaufvertrag"
 
@@ -1641,7 +1753,7 @@ msgstr "Bestellreferenz"
 msgid "Order Status"
 msgstr "Bestellstatus"
 
-#: order/templates/order/order_base.html:85 templates/js/order.html:153
+#: order/templates/order/order_base.html:85 templates/js/order.html:161
 msgid "Supplier Reference"
 msgstr "Zuliefererreferenz"
 
@@ -1698,7 +1810,7 @@ msgid "Select existing purchase orders, or create new orders."
 msgstr "Bestellungen auswählen oder anlegen."
 
 #: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/order.html:177 templates/js/order.html:257
+#: templates/js/order.html:185 templates/js/order.html:272
 msgid "Items"
 msgstr "Positionen"
 
@@ -1733,7 +1845,7 @@ msgid "Attachments"
 msgstr "Anhänge"
 
 #: order/templates/order/purchase_order_detail.html:16
-#: order/templates/order/sales_order_detail.html:17 order/views.py:1117
+#: order/templates/order/sales_order_detail.html:18 order/views.py:1117
 #: order/views.py:1232
 msgid "Add Line Item"
 msgstr "Position hinzufügen"
@@ -1745,7 +1857,7 @@ msgstr "Bestellpositionen"
 #: order/templates/order/purchase_order_detail.html:38
 #: order/templates/order/purchase_order_detail.html:118
 #: part/templates/part/category.html:171 part/templates/part/category.html:213
-#: templates/js/stock.html:803
+#: templates/js/stock.html:804
 msgid "New Location"
 msgstr "Neuer Standort"
 
@@ -1765,7 +1877,7 @@ msgid "Order Code"
 msgstr "Bestellnummer"
 
 #: order/templates/order/purchase_order_detail.html:213
-#: order/templates/order/sales_order_detail.html:281
+#: order/templates/order/sales_order_detail.html:283
 msgid "Edit line item"
 msgstr "Position bearbeiten"
 
@@ -1812,7 +1924,7 @@ msgstr "Packliste"
 msgid "Sales Order Details"
 msgstr "Auftragsdetails"
 
-#: order/templates/order/sales_order_base.html:87 templates/js/order.html:228
+#: order/templates/order/sales_order_base.html:87 templates/js/order.html:243
 msgid "Customer Reference"
 msgstr "Kundenreferenz"
 
@@ -1826,15 +1938,15 @@ msgstr "Warnung"
 msgid "Sales Order Items"
 msgstr "Auftragspositionen"
 
-#: order/templates/order/sales_order_detail.html:223
+#: order/templates/order/sales_order_detail.html:225
 msgid "Fulfilled"
 msgstr "Erledigt"
 
-#: order/templates/order/sales_order_detail.html:278
+#: order/templates/order/sales_order_detail.html:280
 msgid "Allocate parts"
 msgstr "Teile zuordnen"
 
-#: order/templates/order/sales_order_detail.html:282
+#: order/templates/order/sales_order_detail.html:284
 msgid "Delete line item "
 msgstr "Position löschen"
 
@@ -2430,7 +2542,7 @@ msgstr "Bestellung"
 #: stock/templates/stock/item_base.html:58
 #: stock/templates/stock/item_base.html:260
 #: stock/templates/stock/stock_adjust.html:16 templates/js/build.html:126
-#: templates/js/stock.html:660 templates/js/stock.html:896
+#: templates/js/stock.html:661 templates/js/stock.html:897
 msgid "Stock Item"
 msgstr "Lagerobjekt"
 
@@ -2728,7 +2840,7 @@ msgstr "Einheiten"
 msgid "Minimum Stock"
 msgstr "Minimaler Lagerbestand"
 
-#: part/templates/part/detail.html:114 templates/js/order.html:247
+#: part/templates/part/detail.html:114 templates/js/order.html:262
 msgid "Creation Date"
 msgstr "Erstelldatum"
 
@@ -2857,7 +2969,7 @@ msgstr "Teilparameter"
 msgid "Add new parameter"
 msgstr "Parameter hinzufügen"
 
-#: part/templates/part/params.html:14 templates/InvenTree/settings/part.html:17
+#: part/templates/part/params.html:14 templates/InvenTree/settings/part.html:27
 msgid "New Parameter"
 msgstr "Neuer Parameter"
 
@@ -3764,7 +3876,7 @@ msgstr "Ist dieses Objekt einem Kunden zugeteilt?"
 msgid "Return to stock"
 msgstr "Bestand zählen"
 
-#: stock/templates/stock/item_base.html:125 templates/js/stock.html:933
+#: stock/templates/stock/item_base.html:125 templates/js/stock.html:934
 #, fuzzy
 #| msgid "Installed in Stock Item"
 msgid "Uninstall stock item"
@@ -4336,13 +4448,13 @@ msgstr "Keine Ergebnisse gefunden"
 msgid "Enter a search query"
 msgstr "Auftrag stornieren"
 
-#: templates/InvenTree/search.html:191 templates/js/stock.html:527
+#: templates/InvenTree/search.html:191 templates/js/stock.html:528
 #, fuzzy
 #| msgid "Item assigned to customer?"
 msgid "Shipped to customer"
 msgstr "Ist dieses Objekt einem Kunden zugeteilt?"
 
-#: templates/InvenTree/search.html:194 templates/js/stock.html:537
+#: templates/InvenTree/search.html:194 templates/js/stock.html:538
 msgid "No stock location set"
 msgstr "Kein Lagerort gesetzt"
 
@@ -4358,28 +4470,6 @@ msgstr "Suche"
 msgid "Build Order Settings"
 msgstr "Bauaufträge"
 
-#: templates/InvenTree/settings/build.html:19
-#, fuzzy
-#| msgid "Reference"
-msgid "Reference Prefix"
-msgstr "Referenz"
-
-#: templates/InvenTree/settings/build.html:21
-#, fuzzy
-#| msgid "Order reference"
-msgid "Prefix for Build Order reference"
-msgstr "Bestell-Referenz"
-
-#: templates/InvenTree/settings/build.html:24
-#, fuzzy
-#| msgid "Reference"
-msgid "Reference Regex"
-msgstr "Referenz"
-
-#: templates/InvenTree/settings/build.html:26
-msgid "Regex validator for Build Order reference"
-msgstr ""
-
 #: templates/InvenTree/settings/currency.html:5
 #, fuzzy
 #| msgid "Settings"
@@ -4398,27 +4488,33 @@ msgstr "Währungs-Wert"
 msgid "New Currency"
 msgstr "Währung entfernen"
 
+#: templates/InvenTree/settings/global.html:10
+#, fuzzy
+#| msgid "InvenTree Version"
+msgid "Global InvenTree Settings"
+msgstr "InvenTree-Version"
+
 #: templates/InvenTree/settings/part.html:9
 #, fuzzy
 #| msgid "Settings"
 msgid "Part Settings"
 msgstr "Einstellungen"
 
-#: templates/InvenTree/settings/part.html:14
+#: templates/InvenTree/settings/part.html:24
 #, fuzzy
 #| msgid "Edit Part Parameter Template"
 msgid "Part Parameter Templates"
 msgstr "Teilparametervorlage bearbeiten"
 
-#: templates/InvenTree/settings/part.html:33
+#: templates/InvenTree/settings/part.html:43
 msgid "No part parameter templates found"
 msgstr "Keine Teilparametervorlagen gefunden"
 
-#: templates/InvenTree/settings/part.html:53
+#: templates/InvenTree/settings/part.html:63
 msgid "Edit Template"
 msgstr "Vorlage bearbeiten"
 
-#: templates/InvenTree/settings/part.html:54
+#: templates/InvenTree/settings/part.html:64
 msgid "Delete Template"
 msgstr "Vorlage löschen"
 
@@ -4428,6 +4524,16 @@ msgstr "Vorlage löschen"
 msgid "Purchase Order Settings"
 msgstr "Bestelldetails"
 
+#: templates/InvenTree/settings/setting.html:16
+msgid "No value set"
+msgstr ""
+
+#: templates/InvenTree/settings/setting.html:24
+#, fuzzy
+#| msgid "Settings"
+msgid "Edit setting"
+msgstr "Einstellungen"
+
 #: templates/InvenTree/settings/settings.html:7
 #: templates/InvenTree/settings/settings.html:13 templates/navbar.html:62
 msgid "Settings"
@@ -4460,13 +4566,17 @@ msgstr ""
 msgid "Theme"
 msgstr ""
 
-#: templates/InvenTree/settings/tabs.html:12
+#: templates/InvenTree/settings/tabs.html:13
 #, fuzzy
 #| msgid "InvenTree Version"
 msgid "InvenTree Settings"
 msgstr "InvenTree-Version"
 
-#: templates/InvenTree/settings/tabs.html:15
+#: templates/InvenTree/settings/tabs.html:16
+msgid "Global"
+msgstr ""
+
+#: templates/InvenTree/settings/tabs.html:19
 #, fuzzy
 #| msgid "Edit Currency"
 msgid "Currency"
@@ -4771,19 +4881,19 @@ msgstr "Baugruppe"
 msgid "Link"
 msgstr "Link"
 
-#: templates/js/order.html:127
+#: templates/js/order.html:128
 msgid "No purchase orders found"
 msgstr "Keine Bestellungen gefunden"
 
-#: templates/js/order.html:172 templates/js/stock.html:642
+#: templates/js/order.html:180 templates/js/stock.html:643
 msgid "Date"
 msgstr "Datum"
 
-#: templates/js/order.html:202
+#: templates/js/order.html:210
 msgid "No sales orders found"
 msgstr "Keine Aufträge gefunden"
 
-#: templates/js/order.html:252
+#: templates/js/order.html:267
 msgid "Shipment Date"
 msgstr "Versanddatum"
 
@@ -4798,7 +4908,7 @@ msgid "No parts found"
 msgstr "Keine Teile gefunden"
 
 #: templates/js/part.html:275 templates/js/stock.html:409
-#: templates/js/stock.html:965
+#: templates/js/stock.html:966
 msgid "Select"
 msgstr "Auswählen"
 
@@ -4892,91 +5002,91 @@ msgstr "Keine zur Anfrage passenden Lagerobjekte"
 msgid "Undefined location"
 msgstr "Unterlagerorte einschließen"
 
-#: templates/js/stock.html:468
+#: templates/js/stock.html:469
 #, fuzzy
 #| msgid "StockItem has been allocated"
 msgid "Stock item has been allocated"
 msgstr "Lagerobjekt wurde zugewiesen"
 
-#: templates/js/stock.html:472
+#: templates/js/stock.html:473
 #, fuzzy
 #| msgid "StockItem has been allocated"
 msgid "Stock item has been assigned to customer"
 msgstr "Lagerobjekt wurde zugewiesen"
 
-#: templates/js/stock.html:475
+#: templates/js/stock.html:476
 #, fuzzy
 #| msgid "This stock item is allocated to Sales Order"
 msgid "Stock item was assigned to a build order"
 msgstr "Dieses Lagerobjekt ist dem Auftrag zugewiesen"
 
-#: templates/js/stock.html:477
+#: templates/js/stock.html:478
 #, fuzzy
 #| msgid "This stock item is allocated to Sales Order"
 msgid "Stock item was assigned to a sales order"
 msgstr "Dieses Lagerobjekt ist dem Auftrag zugewiesen"
 
-#: templates/js/stock.html:482
+#: templates/js/stock.html:483
 #, fuzzy
 #| msgid "Is this item installed in another item?"
 msgid "Stock item has been installed in another item"
 msgstr "Ist dieses Teil in einem anderen verbaut?"
 
-#: templates/js/stock.html:489
+#: templates/js/stock.html:490
 #, fuzzy
 #| msgid "StockItem has been allocated"
 msgid "Stock item has been rejected"
 msgstr "Lagerobjekt wurde zugewiesen"
 
-#: templates/js/stock.html:493
+#: templates/js/stock.html:494
 #, fuzzy
 #| msgid "StockItem is lost"
 msgid "Stock item is lost"
 msgstr "Lagerobjekt verloren"
 
-#: templates/js/stock.html:497 templates/js/table_filters.html:60
+#: templates/js/stock.html:498 templates/js/table_filters.html:60
 #, fuzzy
 #| msgid "Delete"
 msgid "Depleted"
 msgstr "Löschen"
 
-#: templates/js/stock.html:522
+#: templates/js/stock.html:523
 #, fuzzy
 #| msgid "Installed in Stock Item"
 msgid "Installed in Stock Item "
 msgstr "In Lagerobjekt installiert"
 
-#: templates/js/stock.html:530
+#: templates/js/stock.html:531
 #, fuzzy
 #| msgid "Item assigned to customer?"
 msgid "Assigned to sales order"
 msgstr "Ist dieses Objekt einem Kunden zugeteilt?"
 
-#: templates/js/stock.html:708
+#: templates/js/stock.html:709
 msgid "No user information"
 msgstr "Keine Benutzerinformation"
 
-#: templates/js/stock.html:792
+#: templates/js/stock.html:793
 msgid "Create New Part"
 msgstr "Neues Teil anlegen"
 
-#: templates/js/stock.html:804
+#: templates/js/stock.html:805
 msgid "Create New Location"
 msgstr "Neuen Standort anlegen"
 
-#: templates/js/stock.html:903
+#: templates/js/stock.html:904
 #, fuzzy
 #| msgid "Serial Number"
 msgid "Serial"
 msgstr "Seriennummer"
 
-#: templates/js/stock.html:996 templates/js/table_filters.html:70
+#: templates/js/stock.html:997 templates/js/table_filters.html:70
 #, fuzzy
 #| msgid "Installed In"
 msgid "Installed"
 msgstr "Installiert in"
 
-#: templates/js/stock.html:1021
+#: templates/js/stock.html:1022
 #, fuzzy
 #| msgid "Installed In"
 msgid "Install item"
@@ -5285,6 +5395,16 @@ msgstr ""
 msgid "Permission to delete items"
 msgstr "Ausgewählte Stücklistenpositionen entfernen"
 
+#, fuzzy
+#~| msgid "Reference"
+#~ msgid "Reference Prefix"
+#~ msgstr "Referenz"
+
+#, fuzzy
+#~| msgid "Reference"
+#~ msgid "Reference Regex"
+#~ msgstr "Referenz"
+
 #~ msgid "Build Title"
 #~ msgstr "Bau-Titel"
 
diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po
index 5c6d3a00c1..a5f56143f0 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: 2020-10-19 21:40+0000\n"
+"POT-Creation-Date: 2020-10-25 10:54+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -46,34 +46,34 @@ msgstr ""
 msgid "Apply Theme"
 msgstr ""
 
-#: InvenTree/helpers.py:348 order/models.py:187 order/models.py:261
+#: InvenTree/helpers.py:361 order/models.py:187 order/models.py:261
 msgid "Invalid quantity provided"
 msgstr ""
 
-#: InvenTree/helpers.py:351
+#: InvenTree/helpers.py:364
 msgid "Empty serial number string"
 msgstr ""
 
-#: InvenTree/helpers.py:372
+#: InvenTree/helpers.py:385
 #, python-brace-format
 msgid "Duplicate serial: {n}"
 msgstr ""
 
-#: InvenTree/helpers.py:376 InvenTree/helpers.py:379 InvenTree/helpers.py:382
+#: InvenTree/helpers.py:389 InvenTree/helpers.py:392 InvenTree/helpers.py:395
 #, python-brace-format
 msgid "Invalid group: {g}"
 msgstr ""
 
-#: InvenTree/helpers.py:387
+#: InvenTree/helpers.py:400
 #, python-brace-format
 msgid "Duplicate serial: {g}"
 msgstr ""
 
-#: InvenTree/helpers.py:395
+#: InvenTree/helpers.py:408
 msgid "No serial numbers found"
 msgstr ""
 
-#: InvenTree/helpers.py:399
+#: InvenTree/helpers.py:412
 #, python-brace-format
 msgid "Number of unique serial number ({s}) must match quantity ({q})"
 msgstr ""
@@ -86,7 +86,7 @@ msgstr ""
 msgid "File comment"
 msgstr ""
 
-#: InvenTree/models.py:68 templates/js/stock.html:699
+#: InvenTree/models.py:68 templates/js/stock.html:700
 msgid "User"
 msgstr ""
 
@@ -169,7 +169,7 @@ msgid "Rejected"
 msgstr ""
 
 #: InvenTree/status_codes.py:223 build/templates/build/allocate.html:358
-#: order/templates/order/sales_order_detail.html:221
+#: order/templates/order/sales_order_detail.html:223
 #: part/templates/part/tabs.html:23 templates/js/build.html:140
 msgid "Allocated"
 msgstr ""
@@ -204,7 +204,7 @@ msgstr ""
 msgid "Overage must be an integer value or a percentage"
 msgstr ""
 
-#: InvenTree/views.py:703
+#: InvenTree/views.py:707
 msgid "Database Statistics"
 msgstr ""
 
@@ -278,7 +278,7 @@ msgstr ""
 #: build/models.py:55 build/templates/build/index.html:6
 #: build/templates/build/index.html:14 order/templates/order/so_builds.html:11
 #: order/templates/order/so_tabs.html:9 part/templates/part/tabs.html:31
-#: templates/InvenTree/settings/tabs.html:24 users/models.py:30
+#: templates/InvenTree/settings/tabs.html:28 users/models.py:30
 msgid "Build Orders"
 msgstr ""
 
@@ -297,16 +297,16 @@ msgid "Reference"
 msgstr ""
 
 #: build/models.py:94 build/templates/build/allocate.html:337
-#: company/templates/company/supplier_part_base.html:53
+#: company/templates/company/supplier_part_base.html:61
 #: company/templates/company/supplier_part_detail.html:27
 #: order/templates/order/purchase_order_detail.html:159
 #: part/templates/part/detail.html:51 part/templates/part/set_category.html:14
 #: templates/InvenTree/search.html:147 templates/js/bom.html:147
 #: templates/js/build.html:56 templates/js/company.html:56
-#: templates/js/order.html:159 templates/js/order.html:234
+#: templates/js/order.html:167 templates/js/order.html:249
 #: templates/js/part.html:120 templates/js/part.html:203
 #: templates/js/part.html:345 templates/js/part.html:526
-#: templates/js/stock.html:444 templates/js/stock.html:671
+#: templates/js/stock.html:445 templates/js/stock.html:672
 msgid "Description"
 msgstr ""
 
@@ -334,7 +334,7 @@ msgstr ""
 #: templates/js/barcode.html:336 templates/js/bom.html:124
 #: templates/js/build.html:61 templates/js/company.html:137
 #: templates/js/part.html:184 templates/js/part.html:289
-#: templates/js/stock.html:421 templates/js/stock.html:977
+#: templates/js/stock.html:421 templates/js/stock.html:978
 msgid "Part"
 msgstr ""
 
@@ -385,7 +385,7 @@ msgid "Batch code for this build output"
 msgstr ""
 
 #: build/models.py:176 build/templates/build/detail.html:55
-#: company/templates/company/supplier_part_base.html:60
+#: company/templates/company/supplier_part_base.html:68
 #: company/templates/company/supplier_part_detail.html:24
 #: part/templates/part/detail.html:80 part/templates/part/part_base.html:102
 #: stock/models.py:381 stock/templates/stock/item_base.html:266
@@ -396,14 +396,14 @@ msgstr ""
 msgid "Link to external URL"
 msgstr ""
 
-#: build/models.py:181 build/templates/build/tabs.html:14 company/models.py:310
+#: build/models.py:181 build/templates/build/tabs.html:14 company/models.py:314
 #: company/templates/company/tabs.html:33 order/templates/order/po_tabs.html:18
 #: order/templates/order/purchase_order_detail.html:202
 #: order/templates/order/so_tabs.html:23 part/templates/part/tabs.html:70
 #: stock/forms.py:306 stock/forms.py:338 stock/forms.py:366 stock/models.py:453
 #: stock/models.py:1404 stock/templates/stock/tabs.html:26
 #: templates/js/barcode.html:391 templates/js/bom.html:223
-#: templates/js/stock.html:116 templates/js/stock.html:543
+#: templates/js/stock.html:116 templates/js/stock.html:544
 msgid "Notes"
 msgstr ""
 
@@ -446,7 +446,7 @@ msgid "Stock quantity to allocate to build"
 msgstr ""
 
 #: build/templates/build/allocate.html:17
-#: company/templates/company/detail_part.html:18 order/views.py:804
+#: company/templates/company/detail_part.html:22 order/views.py:804
 #: part/templates/part/category.html:122
 msgid "Order Parts"
 msgstr ""
@@ -472,8 +472,8 @@ msgid "Create new Stock Item"
 msgstr ""
 
 #: build/templates/build/allocate.html:170
-#: order/templates/order/sales_order_detail.html:68
-#: order/templates/order/sales_order_detail.html:150 stock/models.py:375
+#: order/templates/order/sales_order_detail.html:70
+#: order/templates/order/sales_order_detail.html:152 stock/models.py:375
 #: stock/templates/stock/item_base.html:178
 msgid "Serial Number"
 msgstr ""
@@ -482,11 +482,11 @@ msgstr ""
 #: build/templates/build/auto_allocate.html:20
 #: build/templates/build/build_base.html:83
 #: build/templates/build/detail.html:27
-#: company/templates/company/supplier_part_pricing.html:71
+#: company/templates/company/supplier_part_pricing.html:73
 #: order/templates/order/order_wizard/select_parts.html:32
 #: order/templates/order/purchase_order_detail.html:177
-#: order/templates/order/sales_order_detail.html:70
-#: order/templates/order/sales_order_detail.html:152
+#: order/templates/order/sales_order_detail.html:72
+#: order/templates/order/sales_order_detail.html:154
 #: part/templates/part/allocation.html:16
 #: part/templates/part/allocation.html:49
 #: part/templates/part/sale_prices.html:80 stock/forms.py:297
@@ -495,7 +495,7 @@ msgstr ""
 #: stock/templates/stock/item_base.html:184
 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.html:338
 #: templates/js/bom.html:162 templates/js/build.html:72
-#: templates/js/stock.html:690 templates/js/stock.html:905
+#: templates/js/stock.html:691 templates/js/stock.html:906
 msgid "Quantity"
 msgstr ""
 
@@ -504,17 +504,17 @@ msgstr ""
 #: stock/templates/stock/item_base.html:220
 #: stock/templates/stock/stock_adjust.html:17
 #: templates/InvenTree/search.html:183 templates/js/barcode.html:337
-#: templates/js/stock.html:518
+#: templates/js/stock.html:519
 msgid "Location"
 msgstr ""
 
 #: build/templates/build/allocate.html:210
-#: order/templates/order/sales_order_detail.html:92 templates/js/build.html:144
+#: order/templates/order/sales_order_detail.html:94 templates/js/build.html:144
 msgid "Edit stock allocation"
 msgstr ""
 
 #: build/templates/build/allocate.html:211
-#: order/templates/order/sales_order_detail.html:93 templates/js/build.html:145
+#: order/templates/order/sales_order_detail.html:95 templates/js/build.html:145
 msgid "Delete stock allocation"
 msgstr ""
 
@@ -532,12 +532,12 @@ msgid "Assigned"
 msgstr ""
 
 #: build/templates/build/allocate.html:394
-#: order/templates/order/sales_order_detail.html:271
+#: order/templates/order/sales_order_detail.html:273
 msgid "Buy parts"
 msgstr ""
 
 #: build/templates/build/allocate.html:398
-#: order/templates/order/sales_order_detail.html:275
+#: order/templates/order/sales_order_detail.html:277
 msgid "Build parts"
 msgstr ""
 
@@ -610,8 +610,8 @@ msgstr ""
 #: order/templates/order/receive_parts.html:24
 #: stock/templates/stock/item_base.html:298 templates/InvenTree/search.html:175
 #: templates/js/barcode.html:42 templates/js/build.html:77
-#: templates/js/order.html:164 templates/js/order.html:239
-#: templates/js/stock.html:505 templates/js/stock.html:913
+#: templates/js/order.html:172 templates/js/order.html:254
+#: templates/js/stock.html:506 templates/js/stock.html:914
 msgid "Status"
 msgstr ""
 
@@ -621,7 +621,7 @@ msgstr ""
 #: order/templates/order/sales_order_notes.html:10
 #: order/templates/order/sales_order_ship.html:25
 #: part/templates/part/allocation.html:27
-#: stock/templates/stock/item_base.html:208 templates/js/order.html:213
+#: stock/templates/stock/item_base.html:208 templates/js/order.html:221
 msgid "Sales Order"
 msgstr ""
 
@@ -694,8 +694,8 @@ msgid "Stock can be taken from any available location."
 msgstr ""
 
 #: build/templates/build/detail.html:48
-#: stock/templates/stock/item_base.html:238 templates/js/stock.html:513
-#: templates/js/stock.html:920 templates/js/table_filters.html:34
+#: stock/templates/stock/item_base.html:238 templates/js/stock.html:514
+#: templates/js/stock.html:921 templates/js/table_filters.html:34
 #: templates/js/table_filters.html:100
 msgid "Batch"
 msgstr ""
@@ -838,165 +838,249 @@ msgstr ""
 msgid "Updated Build Item"
 msgstr ""
 
-#: common/models.py:107
-msgid "Settings key (must be unique - case insensitive"
+#: common/models.py:51
+msgid "InvenTree Instance Name"
 msgstr ""
 
-#: common/models.py:109
-msgid "Settings value"
+#: common/models.py:53
+msgid "String descriptor for the server instance"
 msgstr ""
 
-#: common/models.py:122
-msgid "Key string must be unique"
-msgstr ""
-
-#: common/models.py:143
-msgid "Currency Symbol e.g. $"
-msgstr ""
-
-#: common/models.py:145
-msgid "Currency Suffix e.g. AUD"
-msgstr ""
-
-#: common/models.py:147
-msgid "Currency Description"
-msgstr ""
-
-#: common/models.py:149
-msgid "Currency Value"
-msgstr ""
-
-#: common/models.py:151
-msgid "Use this currency as the base currency"
-msgstr ""
-
-#: common/models.py:234
-msgid "Default"
-msgstr ""
-
-#: common/views.py:21
-msgid "Create new Currency"
-msgstr ""
-
-#: common/views.py:29
-msgid "Edit Currency"
-msgstr ""
-
-#: common/views.py:36
-msgid "Delete Currency"
-msgstr ""
-
-#: common/views.py:47
-msgid "Change Setting"
-msgstr ""
-
-#: company/models.py:86 company/models.py:87
+#: common/models.py:57 company/models.py:89 company/models.py:90
 msgid "Company name"
 msgstr ""
 
-#: company/models.py:89
+#: common/models.py:58
+msgid "Internal company name"
+msgstr ""
+
+#: common/models.py:63
+msgid "IPN Regex"
+msgstr ""
+
+#: common/models.py:64
+msgid "Regular expression pattern for matching Part IPN"
+msgstr ""
+
+#: common/models.py:68
+msgid "Copy Part BOM Data"
+msgstr ""
+
+#: common/models.py:69
+msgid "Copy BOM data by default when duplicating a part"
+msgstr ""
+
+#: common/models.py:75
+msgid "Copy Part Parameter Data"
+msgstr ""
+
+#: common/models.py:76
+msgid "Copy parameter data by default when duplicating a part"
+msgstr ""
+
+#: common/models.py:82
+msgid "Copy Part Test Data"
+msgstr ""
+
+#: common/models.py:83
+msgid "Copy test data by default when duplicating a part"
+msgstr ""
+
+#: common/models.py:89
+msgid "Build Order Reference Prefix"
+msgstr ""
+
+#: common/models.py:90
+msgid "Prefix value for build order reference"
+msgstr ""
+
+#: common/models.py:95
+msgid "Build Order Reference Regex"
+msgstr ""
+
+#: common/models.py:96
+msgid "Regular expression pattern for matching build order reference"
+msgstr ""
+
+#: common/models.py:100
+msgid "Sales Order Reference Prefix"
+msgstr ""
+
+#: common/models.py:101
+msgid "Prefix value for sales order reference"
+msgstr ""
+
+#: common/models.py:105
+msgid "Purchase Order Reference Prefix"
+msgstr ""
+
+#: common/models.py:106
+msgid "Prefix value for purchase order reference"
+msgstr ""
+
+#: common/models.py:272
+msgid "Settings key (must be unique - case insensitive"
+msgstr ""
+
+#: common/models.py:274
+msgid "Settings value"
+msgstr ""
+
+#: common/models.py:326
+msgid "Value must be a boolean value"
+msgstr ""
+
+#: common/models.py:340
+msgid "Key string must be unique"
+msgstr ""
+
+#: common/models.py:379
+msgid "Currency Symbol e.g. $"
+msgstr ""
+
+#: common/models.py:381
+msgid "Currency Suffix e.g. AUD"
+msgstr ""
+
+#: common/models.py:383
+msgid "Currency Description"
+msgstr ""
+
+#: common/models.py:385
+msgid "Currency Value"
+msgstr ""
+
+#: common/models.py:387
+msgid "Use this currency as the base currency"
+msgstr ""
+
+#: common/models.py:470
+msgid "Default"
+msgstr ""
+
+#: common/templates/common/edit_setting.html:11
+msgid "Current value"
+msgstr ""
+
+#: common/views.py:23
+msgid "Create new Currency"
+msgstr ""
+
+#: common/views.py:31
+msgid "Edit Currency"
+msgstr ""
+
+#: common/views.py:38
+msgid "Delete Currency"
+msgstr ""
+
+#: common/views.py:49
+msgid "Change Setting"
+msgstr ""
+
+#: company/models.py:92
 msgid "Company description"
 msgstr ""
 
-#: company/models.py:89
+#: company/models.py:92
 msgid "Description of the company"
 msgstr ""
 
-#: company/models.py:91 company/templates/company/company_base.html:53
+#: company/models.py:94 company/templates/company/company_base.html:57
 #: templates/js/company.html:61
 msgid "Website"
 msgstr ""
 
-#: company/models.py:91
+#: company/models.py:94
 msgid "Company website URL"
 msgstr ""
 
-#: company/models.py:94 company/templates/company/company_base.html:60
+#: company/models.py:97 company/templates/company/company_base.html:64
 msgid "Address"
 msgstr ""
 
-#: company/models.py:95
+#: company/models.py:98
 msgid "Company address"
 msgstr ""
 
-#: company/models.py:98
+#: company/models.py:101
 msgid "Phone number"
 msgstr ""
 
-#: company/models.py:99
+#: company/models.py:102
 msgid "Contact phone number"
 msgstr ""
 
-#: company/models.py:101 company/templates/company/company_base.html:74
+#: company/models.py:105 company/templates/company/company_base.html:78
 msgid "Email"
 msgstr ""
 
-#: company/models.py:101
+#: company/models.py:105
 msgid "Contact email address"
 msgstr ""
 
-#: company/models.py:104 company/templates/company/company_base.html:81
+#: company/models.py:108 company/templates/company/company_base.html:85
 msgid "Contact"
 msgstr ""
 
-#: company/models.py:105
+#: company/models.py:109
 msgid "Point of contact"
 msgstr ""
 
-#: company/models.py:107
+#: company/models.py:111
 msgid "Link to external company information"
 msgstr ""
 
-#: company/models.py:119
+#: company/models.py:123
 msgid "Do you sell items to this company?"
 msgstr ""
 
-#: company/models.py:121
+#: company/models.py:125
 msgid "Do you purchase items from this company?"
 msgstr ""
 
-#: company/models.py:123
+#: company/models.py:127
 msgid "Does this company manufacture parts?"
 msgstr ""
 
-#: company/models.py:279 stock/models.py:335
+#: company/models.py:283 stock/models.py:335
 #: stock/templates/stock/item_base.html:164
 msgid "Base Part"
 msgstr ""
 
-#: company/models.py:284
+#: company/models.py:288
 msgid "Select part"
 msgstr ""
 
-#: company/models.py:290
+#: company/models.py:294
 msgid "Select supplier"
 msgstr ""
 
-#: company/models.py:293
+#: company/models.py:297
 msgid "Supplier stock keeping unit"
 msgstr ""
 
-#: company/models.py:300
+#: company/models.py:304
 msgid "Select manufacturer"
 msgstr ""
 
-#: company/models.py:304
+#: company/models.py:308
 msgid "Manufacturer part number"
 msgstr ""
 
-#: company/models.py:306
+#: company/models.py:310
 msgid "URL for external supplier part link"
 msgstr ""
 
-#: company/models.py:308
+#: company/models.py:312
 msgid "Supplier part description"
 msgstr ""
 
-#: company/models.py:312
+#: company/models.py:316
 msgid "Minimum charge (e.g. stocking fee)"
 msgstr ""
 
-#: company/models.py:314
+#: company/models.py:318
 msgid "Part packaging"
 msgstr ""
 
@@ -1010,36 +1094,36 @@ msgstr ""
 msgid "Company"
 msgstr ""
 
-#: company/templates/company/company_base.html:47
+#: company/templates/company/company_base.html:51
 #: company/templates/company/detail.html:8
 msgid "Company Details"
 msgstr ""
 
-#: company/templates/company/company_base.html:67
+#: company/templates/company/company_base.html:71
 msgid "Phone"
 msgstr ""
 
 #: company/templates/company/detail.html:16
-#: company/templates/company/supplier_part_base.html:76
+#: company/templates/company/supplier_part_base.html:84
 #: company/templates/company/supplier_part_detail.html:30 part/bom.py:172
 #: templates/js/company.html:44 templates/js/company.html:186
 msgid "Manufacturer"
 msgstr ""
 
 #: company/templates/company/detail.html:21
-#: company/templates/company/supplier_part_base.html:66
+#: company/templates/company/supplier_part_base.html:74
 #: company/templates/company/supplier_part_detail.html:21
 #: order/templates/order/order_base.html:79
 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:170
 #: stock/templates/stock/item_base.html:273 templates/js/company.html:48
-#: templates/js/company.html:162 templates/js/order.html:146
+#: templates/js/company.html:162 templates/js/order.html:154
 msgid "Supplier"
 msgstr ""
 
 #: company/templates/company/detail.html:26
 #: order/templates/order/sales_order_base.html:81 stock/models.py:370
 #: stock/models.py:371 stock/templates/stock/item_base.html:191
-#: templates/js/company.html:40 templates/js/order.html:221
+#: templates/js/company.html:40 templates/js/order.html:236
 msgid "Customer"
 msgstr ""
 
@@ -1047,60 +1131,60 @@ msgstr ""
 msgid "Supplier Parts"
 msgstr ""
 
-#: company/templates/company/detail_part.html:13
+#: company/templates/company/detail_part.html:15
 #: order/templates/order/purchase_order_detail.html:68
 msgid "Create new supplier part"
 msgstr ""
 
-#: company/templates/company/detail_part.html:13
+#: company/templates/company/detail_part.html:15
 #: order/templates/order/purchase_order_detail.html:67
-#: part/templates/part/supplier.html:13 templates/js/stock.html:797
+#: part/templates/part/supplier.html:13 templates/js/stock.html:798
 msgid "New Supplier Part"
 msgstr ""
 
-#: company/templates/company/detail_part.html:15
+#: company/templates/company/detail_part.html:18
 #: part/templates/part/category.html:117 part/templates/part/supplier.html:15
 #: templates/stock_table.html:14
 msgid "Options"
 msgstr ""
 
-#: company/templates/company/detail_part.html:18
+#: company/templates/company/detail_part.html:22
 #: part/templates/part/category.html:122
 msgid "Order parts"
 msgstr ""
 
-#: company/templates/company/detail_part.html:19
+#: company/templates/company/detail_part.html:25
 msgid "Delete parts"
 msgstr ""
 
-#: company/templates/company/detail_part.html:19
+#: company/templates/company/detail_part.html:25
 msgid "Delete Parts"
 msgstr ""
 
-#: company/templates/company/detail_part.html:43
-#: part/templates/part/category.html:114 templates/js/stock.html:791
+#: company/templates/company/detail_part.html:51
+#: part/templates/part/category.html:114 templates/js/stock.html:792
 msgid "New Part"
 msgstr ""
 
-#: company/templates/company/detail_part.html:44
+#: company/templates/company/detail_part.html:52
 msgid "Create new Part"
 msgstr ""
 
-#: company/templates/company/detail_part.html:49 company/views.py:51
+#: company/templates/company/detail_part.html:57 company/views.py:53
 #: part/templates/part/supplier.html:45
 msgid "New Supplier"
 msgstr ""
 
-#: company/templates/company/detail_part.html:50 company/views.py:186
+#: company/templates/company/detail_part.html:58 company/views.py:192
 msgid "Create new Supplier"
 msgstr ""
 
-#: company/templates/company/detail_part.html:55 company/views.py:58
+#: company/templates/company/detail_part.html:63 company/views.py:60
 #: part/templates/part/supplier.html:51
 msgid "New Manufacturer"
 msgstr ""
 
-#: company/templates/company/detail_part.html:56 company/views.py:189
+#: company/templates/company/detail_part.html:64 company/views.py:195
 msgid "Create new Manufacturer"
 msgstr ""
 
@@ -1133,17 +1217,17 @@ msgstr ""
 #: order/templates/order/purchase_orders.html:7
 #: order/templates/order/purchase_orders.html:12
 #: part/templates/part/orders.html:9 part/templates/part/tabs.html:48
-#: templates/InvenTree/settings/tabs.html:27 templates/navbar.html:33
+#: templates/InvenTree/settings/tabs.html:31 templates/navbar.html:33
 #: users/models.py:31
 msgid "Purchase Orders"
 msgstr ""
 
-#: company/templates/company/purchase_orders.html:14
+#: company/templates/company/purchase_orders.html:15
 #: order/templates/order/purchase_orders.html:18
 msgid "Create new purchase order"
 msgstr ""
 
-#: company/templates/company/purchase_orders.html:14
+#: company/templates/company/purchase_orders.html:15
 #: order/templates/order/purchase_orders.html:18
 msgid "New Purchase Order"
 msgstr ""
@@ -1153,17 +1237,17 @@ msgstr ""
 #: order/templates/order/sales_orders.html:7
 #: order/templates/order/sales_orders.html:12
 #: part/templates/part/sales_orders.html:9 part/templates/part/tabs.html:56
-#: templates/InvenTree/settings/tabs.html:30 templates/navbar.html:42
+#: templates/InvenTree/settings/tabs.html:34 templates/navbar.html:42
 #: users/models.py:32
 msgid "Sales Orders"
 msgstr ""
 
-#: company/templates/company/sales_orders.html:14
+#: company/templates/company/sales_orders.html:15
 #: order/templates/order/sales_orders.html:18
 msgid "Create new sales order"
 msgstr ""
 
-#: company/templates/company/sales_orders.html:14
+#: company/templates/company/sales_orders.html:15
 #: order/templates/order/sales_orders.html:18
 msgid "New Sales Order"
 msgstr ""
@@ -1174,41 +1258,41 @@ msgstr ""
 msgid "Supplier Part"
 msgstr ""
 
-#: company/templates/company/supplier_part_base.html:23
+#: company/templates/company/supplier_part_base.html:26
 #: part/templates/part/orders.html:14 part/templates/part/part_base.html:66
 msgid "Order part"
 msgstr ""
 
-#: company/templates/company/supplier_part_base.html:26
+#: company/templates/company/supplier_part_base.html:30
 msgid "Edit supplier part"
 msgstr ""
 
-#: company/templates/company/supplier_part_base.html:29
+#: company/templates/company/supplier_part_base.html:34
 msgid "Delete supplier part"
 msgstr ""
 
-#: company/templates/company/supplier_part_base.html:38
+#: company/templates/company/supplier_part_base.html:46
 #: company/templates/company/supplier_part_detail.html:11
 msgid "Supplier Part Details"
 msgstr ""
 
-#: company/templates/company/supplier_part_base.html:43
+#: company/templates/company/supplier_part_base.html:51
 #: company/templates/company/supplier_part_detail.html:14
 msgid "Internal Part"
 msgstr ""
 
-#: company/templates/company/supplier_part_base.html:70
+#: company/templates/company/supplier_part_base.html:78
 #: company/templates/company/supplier_part_detail.html:22 part/bom.py:171
 msgid "SKU"
 msgstr ""
 
-#: company/templates/company/supplier_part_base.html:80
+#: company/templates/company/supplier_part_base.html:88
 #: company/templates/company/supplier_part_detail.html:31 part/bom.py:173
 #: templates/js/company.html:202
 msgid "MPN"
 msgstr ""
 
-#: company/templates/company/supplier_part_base.html:87
+#: company/templates/company/supplier_part_base.html:95
 #: company/templates/company/supplier_part_detail.html:34
 msgid "Note"
 msgstr ""
@@ -1221,27 +1305,27 @@ msgstr ""
 msgid "Pricing Information"
 msgstr ""
 
-#: company/templates/company/supplier_part_pricing.html:15 company/views.py:399
+#: company/templates/company/supplier_part_pricing.html:16 company/views.py:410
 #: part/templates/part/sale_prices.html:13 part/views.py:2228
 msgid "Add Price Break"
 msgstr ""
 
-#: company/templates/company/supplier_part_pricing.html:32
+#: company/templates/company/supplier_part_pricing.html:34
 #: part/templates/part/sale_prices.html:41
 msgid "No price break information found"
 msgstr ""
 
-#: company/templates/company/supplier_part_pricing.html:76
+#: company/templates/company/supplier_part_pricing.html:78
 #: part/templates/part/sale_prices.html:85 templates/js/bom.html:207
 msgid "Price"
 msgstr ""
 
-#: company/templates/company/supplier_part_pricing.html:90
+#: company/templates/company/supplier_part_pricing.html:92
 #: part/templates/part/sale_prices.html:99
 msgid "Edit price break"
 msgstr ""
 
-#: company/templates/company/supplier_part_pricing.html:91
+#: company/templates/company/supplier_part_pricing.html:93
 #: part/templates/part/sale_prices.html:100
 msgid "Delete price break"
 msgstr ""
@@ -1257,8 +1341,8 @@ msgstr ""
 #: company/templates/company/supplier_part_tabs.html:8
 #: company/templates/company/tabs.html:12 part/templates/part/tabs.html:18
 #: stock/templates/stock/location.html:17 templates/InvenTree/search.html:155
-#: templates/InvenTree/settings/tabs.html:21 templates/js/part.html:124
-#: templates/js/part.html:372 templates/js/stock.html:452
+#: templates/InvenTree/settings/tabs.html:25 templates/js/part.html:124
+#: templates/js/part.html:372 templates/js/stock.html:453
 #: templates/navbar.html:22 users/models.py:29
 msgid "Stock"
 msgstr ""
@@ -1271,93 +1355,93 @@ msgstr ""
 #: order/templates/order/receive_parts.html:14 part/models.py:294
 #: part/templates/part/cat_link.html:7 part/templates/part/category.html:94
 #: part/templates/part/category_tabs.html:6
-#: templates/InvenTree/settings/tabs.html:18 templates/navbar.html:19
+#: templates/InvenTree/settings/tabs.html:22 templates/navbar.html:19
 #: templates/stats.html:8 templates/stats.html:17 users/models.py:28
 msgid "Parts"
 msgstr ""
 
-#: company/views.py:50 part/templates/part/tabs.html:42
+#: company/views.py:52 part/templates/part/tabs.html:42
 #: templates/navbar.html:31
 msgid "Suppliers"
 msgstr ""
 
-#: company/views.py:57 templates/navbar.html:32
+#: company/views.py:59 templates/navbar.html:32
 msgid "Manufacturers"
 msgstr ""
 
-#: company/views.py:64 templates/navbar.html:41
+#: company/views.py:66 templates/navbar.html:41
 msgid "Customers"
 msgstr ""
 
-#: company/views.py:65
+#: company/views.py:67
 msgid "New Customer"
 msgstr ""
 
-#: company/views.py:73
+#: company/views.py:75
 msgid "Companies"
 msgstr ""
 
-#: company/views.py:74
+#: company/views.py:76
 msgid "New Company"
 msgstr ""
 
-#: company/views.py:151
+#: company/views.py:154
 msgid "Update Company Image"
 msgstr ""
 
-#: company/views.py:156
+#: company/views.py:160
 msgid "Updated company image"
 msgstr ""
 
-#: company/views.py:166
+#: company/views.py:170
 msgid "Edit Company"
 msgstr ""
 
-#: company/views.py:170
+#: company/views.py:175
 msgid "Edited company information"
 msgstr ""
 
-#: company/views.py:192
+#: company/views.py:198
 msgid "Create new Customer"
 msgstr ""
 
-#: company/views.py:194
+#: company/views.py:200
 msgid "Create new Company"
 msgstr ""
 
-#: company/views.py:221
+#: company/views.py:227
 msgid "Created new company"
 msgstr ""
 
-#: company/views.py:231
+#: company/views.py:237
 msgid "Delete Company"
 msgstr ""
 
-#: company/views.py:236
+#: company/views.py:243
 msgid "Company was deleted"
 msgstr ""
 
-#: company/views.py:260
+#: company/views.py:268
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: company/views.py:269 templates/js/stock.html:798
+#: company/views.py:278 templates/js/stock.html:799
 msgid "Create new Supplier Part"
 msgstr ""
 
-#: company/views.py:329
+#: company/views.py:339
 msgid "Delete Supplier Part"
 msgstr ""
 
-#: company/views.py:404 part/views.py:2234
+#: company/views.py:416 part/views.py:2234
 msgid "Added new price break"
 msgstr ""
 
-#: company/views.py:441 part/views.py:2279
+#: company/views.py:453 part/views.py:2279
 msgid "Edit Price Break"
 msgstr ""
 
-#: company/views.py:456 part/views.py:2295
+#: company/views.py:469 part/views.py:2295
 msgid "Delete Price Break"
 msgstr ""
 
@@ -1489,7 +1573,7 @@ msgstr ""
 
 #: order/models.py:466 order/templates/order/order_base.html:9
 #: order/templates/order/order_base.html:24
-#: stock/templates/stock/item_base.html:252 templates/js/order.html:138
+#: stock/templates/stock/item_base.html:252 templates/js/order.html:139
 msgid "Purchase Order"
 msgstr ""
 
@@ -1557,7 +1641,7 @@ msgstr ""
 msgid "Order Status"
 msgstr ""
 
-#: order/templates/order/order_base.html:85 templates/js/order.html:153
+#: order/templates/order/order_base.html:85 templates/js/order.html:161
 msgid "Supplier Reference"
 msgstr ""
 
@@ -1613,7 +1697,7 @@ msgid "Select existing purchase orders, or create new orders."
 msgstr ""
 
 #: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/order.html:177 templates/js/order.html:257
+#: templates/js/order.html:185 templates/js/order.html:272
 msgid "Items"
 msgstr ""
 
@@ -1644,7 +1728,7 @@ msgid "Attachments"
 msgstr ""
 
 #: order/templates/order/purchase_order_detail.html:16
-#: order/templates/order/sales_order_detail.html:17 order/views.py:1117
+#: order/templates/order/sales_order_detail.html:18 order/views.py:1117
 #: order/views.py:1232
 msgid "Add Line Item"
 msgstr ""
@@ -1656,7 +1740,7 @@ msgstr ""
 #: order/templates/order/purchase_order_detail.html:38
 #: order/templates/order/purchase_order_detail.html:118
 #: part/templates/part/category.html:171 part/templates/part/category.html:213
-#: templates/js/stock.html:803
+#: templates/js/stock.html:804
 msgid "New Location"
 msgstr ""
 
@@ -1676,7 +1760,7 @@ msgid "Order Code"
 msgstr ""
 
 #: order/templates/order/purchase_order_detail.html:213
-#: order/templates/order/sales_order_detail.html:281
+#: order/templates/order/sales_order_detail.html:283
 msgid "Edit line item"
 msgstr ""
 
@@ -1721,7 +1805,7 @@ msgstr ""
 msgid "Sales Order Details"
 msgstr ""
 
-#: order/templates/order/sales_order_base.html:87 templates/js/order.html:228
+#: order/templates/order/sales_order_base.html:87 templates/js/order.html:243
 msgid "Customer Reference"
 msgstr ""
 
@@ -1735,15 +1819,15 @@ msgstr ""
 msgid "Sales Order Items"
 msgstr ""
 
-#: order/templates/order/sales_order_detail.html:223
+#: order/templates/order/sales_order_detail.html:225
 msgid "Fulfilled"
 msgstr ""
 
-#: order/templates/order/sales_order_detail.html:278
+#: order/templates/order/sales_order_detail.html:280
 msgid "Allocate parts"
 msgstr ""
 
-#: order/templates/order/sales_order_detail.html:282
+#: order/templates/order/sales_order_detail.html:284
 msgid "Delete line item "
 msgstr ""
 
@@ -2291,7 +2375,7 @@ msgstr ""
 #: stock/templates/stock/item_base.html:58
 #: stock/templates/stock/item_base.html:260
 #: stock/templates/stock/stock_adjust.html:16 templates/js/build.html:126
-#: templates/js/stock.html:660 templates/js/stock.html:896
+#: templates/js/stock.html:661 templates/js/stock.html:897
 msgid "Stock Item"
 msgstr ""
 
@@ -2541,7 +2625,7 @@ msgstr ""
 msgid "Minimum Stock"
 msgstr ""
 
-#: part/templates/part/detail.html:114 templates/js/order.html:247
+#: part/templates/part/detail.html:114 templates/js/order.html:262
 msgid "Creation Date"
 msgstr ""
 
@@ -2662,7 +2746,7 @@ msgstr ""
 msgid "Add new parameter"
 msgstr ""
 
-#: part/templates/part/params.html:14 templates/InvenTree/settings/part.html:17
+#: part/templates/part/params.html:14 templates/InvenTree/settings/part.html:27
 msgid "New Parameter"
 msgstr ""
 
@@ -3446,7 +3530,7 @@ msgstr ""
 msgid "Return to stock"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:125 templates/js/stock.html:933
+#: stock/templates/stock/item_base.html:125 templates/js/stock.html:934
 msgid "Uninstall stock item"
 msgstr ""
 
@@ -3918,11 +4002,11 @@ msgstr ""
 msgid "Enter a search query"
 msgstr ""
 
-#: templates/InvenTree/search.html:191 templates/js/stock.html:527
+#: templates/InvenTree/search.html:191 templates/js/stock.html:528
 msgid "Shipped to customer"
 msgstr ""
 
-#: templates/InvenTree/search.html:194 templates/js/stock.html:537
+#: templates/InvenTree/search.html:194 templates/js/stock.html:538
 msgid "No stock location set"
 msgstr ""
 
@@ -3934,22 +4018,6 @@ msgstr ""
 msgid "Build Order Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/build.html:19
-msgid "Reference Prefix"
-msgstr ""
-
-#: templates/InvenTree/settings/build.html:21
-msgid "Prefix for Build Order reference"
-msgstr ""
-
-#: templates/InvenTree/settings/build.html:24
-msgid "Reference Regex"
-msgstr ""
-
-#: templates/InvenTree/settings/build.html:26
-msgid "Regex validator for Build Order reference"
-msgstr ""
-
 #: templates/InvenTree/settings/currency.html:5
 msgid "General Settings"
 msgstr ""
@@ -3962,23 +4030,27 @@ msgstr ""
 msgid "New Currency"
 msgstr ""
 
+#: templates/InvenTree/settings/global.html:10
+msgid "Global InvenTree Settings"
+msgstr ""
+
 #: templates/InvenTree/settings/part.html:9
 msgid "Part Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/part.html:14
+#: templates/InvenTree/settings/part.html:24
 msgid "Part Parameter Templates"
 msgstr ""
 
-#: templates/InvenTree/settings/part.html:33
+#: templates/InvenTree/settings/part.html:43
 msgid "No part parameter templates found"
 msgstr ""
 
-#: templates/InvenTree/settings/part.html:53
+#: templates/InvenTree/settings/part.html:63
 msgid "Edit Template"
 msgstr ""
 
-#: templates/InvenTree/settings/part.html:54
+#: templates/InvenTree/settings/part.html:64
 msgid "Delete Template"
 msgstr ""
 
@@ -3986,6 +4058,14 @@ msgstr ""
 msgid "Purchase Order Settings"
 msgstr ""
 
+#: templates/InvenTree/settings/setting.html:16
+msgid "No value set"
+msgstr ""
+
+#: templates/InvenTree/settings/setting.html:24
+msgid "Edit setting"
+msgstr ""
+
 #: templates/InvenTree/settings/settings.html:7
 #: templates/InvenTree/settings/settings.html:13 templates/navbar.html:62
 msgid "Settings"
@@ -4012,11 +4092,15 @@ msgstr ""
 msgid "Theme"
 msgstr ""
 
-#: templates/InvenTree/settings/tabs.html:12
+#: templates/InvenTree/settings/tabs.html:13
 msgid "InvenTree Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/tabs.html:15
+#: templates/InvenTree/settings/tabs.html:16
+msgid "Global"
+msgstr ""
+
+#: templates/InvenTree/settings/tabs.html:19
 msgid "Currency"
 msgstr ""
 
@@ -4271,19 +4355,19 @@ msgstr ""
 msgid "Link"
 msgstr ""
 
-#: templates/js/order.html:127
+#: templates/js/order.html:128
 msgid "No purchase orders found"
 msgstr ""
 
-#: templates/js/order.html:172 templates/js/stock.html:642
+#: templates/js/order.html:180 templates/js/stock.html:643
 msgid "Date"
 msgstr ""
 
-#: templates/js/order.html:202
+#: templates/js/order.html:210
 msgid "No sales orders found"
 msgstr ""
 
-#: templates/js/order.html:252
+#: templates/js/order.html:267
 msgid "Shipment Date"
 msgstr ""
 
@@ -4296,7 +4380,7 @@ msgid "No parts found"
 msgstr ""
 
 #: templates/js/part.html:275 templates/js/stock.html:409
-#: templates/js/stock.html:965
+#: templates/js/stock.html:966
 msgid "Select"
 msgstr ""
 
@@ -4376,67 +4460,67 @@ msgstr ""
 msgid "Undefined location"
 msgstr ""
 
-#: templates/js/stock.html:468
+#: templates/js/stock.html:469
 msgid "Stock item has been allocated"
 msgstr ""
 
-#: templates/js/stock.html:472
+#: templates/js/stock.html:473
 msgid "Stock item has been assigned to customer"
 msgstr ""
 
-#: templates/js/stock.html:475
+#: templates/js/stock.html:476
 msgid "Stock item was assigned to a build order"
 msgstr ""
 
-#: templates/js/stock.html:477
+#: templates/js/stock.html:478
 msgid "Stock item was assigned to a sales order"
 msgstr ""
 
-#: templates/js/stock.html:482
+#: templates/js/stock.html:483
 msgid "Stock item has been installed in another item"
 msgstr ""
 
-#: templates/js/stock.html:489
+#: templates/js/stock.html:490
 msgid "Stock item has been rejected"
 msgstr ""
 
-#: templates/js/stock.html:493
+#: templates/js/stock.html:494
 msgid "Stock item is lost"
 msgstr ""
 
-#: templates/js/stock.html:497 templates/js/table_filters.html:60
+#: templates/js/stock.html:498 templates/js/table_filters.html:60
 msgid "Depleted"
 msgstr ""
 
-#: templates/js/stock.html:522
+#: templates/js/stock.html:523
 msgid "Installed in Stock Item "
 msgstr ""
 
-#: templates/js/stock.html:530
+#: templates/js/stock.html:531
 msgid "Assigned to sales order"
 msgstr ""
 
-#: templates/js/stock.html:708
+#: templates/js/stock.html:709
 msgid "No user information"
 msgstr ""
 
-#: templates/js/stock.html:792
+#: templates/js/stock.html:793
 msgid "Create New Part"
 msgstr ""
 
-#: templates/js/stock.html:804
+#: templates/js/stock.html:805
 msgid "Create New Location"
 msgstr ""
 
-#: templates/js/stock.html:903
+#: templates/js/stock.html:904
 msgid "Serial"
 msgstr ""
 
-#: templates/js/stock.html:996 templates/js/table_filters.html:70
+#: templates/js/stock.html:997 templates/js/table_filters.html:70
 msgid "Installed"
 msgstr ""
 
-#: templates/js/stock.html:1021
+#: templates/js/stock.html:1022
 msgid "Install item"
 msgstr ""
 
diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po
index 5c6d3a00c1..a5f56143f0 100644
--- a/InvenTree/locale/es/LC_MESSAGES/django.po
+++ b/InvenTree/locale/es/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-10-19 21:40+0000\n"
+"POT-Creation-Date: 2020-10-25 10:54+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -46,34 +46,34 @@ msgstr ""
 msgid "Apply Theme"
 msgstr ""
 
-#: InvenTree/helpers.py:348 order/models.py:187 order/models.py:261
+#: InvenTree/helpers.py:361 order/models.py:187 order/models.py:261
 msgid "Invalid quantity provided"
 msgstr ""
 
-#: InvenTree/helpers.py:351
+#: InvenTree/helpers.py:364
 msgid "Empty serial number string"
 msgstr ""
 
-#: InvenTree/helpers.py:372
+#: InvenTree/helpers.py:385
 #, python-brace-format
 msgid "Duplicate serial: {n}"
 msgstr ""
 
-#: InvenTree/helpers.py:376 InvenTree/helpers.py:379 InvenTree/helpers.py:382
+#: InvenTree/helpers.py:389 InvenTree/helpers.py:392 InvenTree/helpers.py:395
 #, python-brace-format
 msgid "Invalid group: {g}"
 msgstr ""
 
-#: InvenTree/helpers.py:387
+#: InvenTree/helpers.py:400
 #, python-brace-format
 msgid "Duplicate serial: {g}"
 msgstr ""
 
-#: InvenTree/helpers.py:395
+#: InvenTree/helpers.py:408
 msgid "No serial numbers found"
 msgstr ""
 
-#: InvenTree/helpers.py:399
+#: InvenTree/helpers.py:412
 #, python-brace-format
 msgid "Number of unique serial number ({s}) must match quantity ({q})"
 msgstr ""
@@ -86,7 +86,7 @@ msgstr ""
 msgid "File comment"
 msgstr ""
 
-#: InvenTree/models.py:68 templates/js/stock.html:699
+#: InvenTree/models.py:68 templates/js/stock.html:700
 msgid "User"
 msgstr ""
 
@@ -169,7 +169,7 @@ msgid "Rejected"
 msgstr ""
 
 #: InvenTree/status_codes.py:223 build/templates/build/allocate.html:358
-#: order/templates/order/sales_order_detail.html:221
+#: order/templates/order/sales_order_detail.html:223
 #: part/templates/part/tabs.html:23 templates/js/build.html:140
 msgid "Allocated"
 msgstr ""
@@ -204,7 +204,7 @@ msgstr ""
 msgid "Overage must be an integer value or a percentage"
 msgstr ""
 
-#: InvenTree/views.py:703
+#: InvenTree/views.py:707
 msgid "Database Statistics"
 msgstr ""
 
@@ -278,7 +278,7 @@ msgstr ""
 #: build/models.py:55 build/templates/build/index.html:6
 #: build/templates/build/index.html:14 order/templates/order/so_builds.html:11
 #: order/templates/order/so_tabs.html:9 part/templates/part/tabs.html:31
-#: templates/InvenTree/settings/tabs.html:24 users/models.py:30
+#: templates/InvenTree/settings/tabs.html:28 users/models.py:30
 msgid "Build Orders"
 msgstr ""
 
@@ -297,16 +297,16 @@ msgid "Reference"
 msgstr ""
 
 #: build/models.py:94 build/templates/build/allocate.html:337
-#: company/templates/company/supplier_part_base.html:53
+#: company/templates/company/supplier_part_base.html:61
 #: company/templates/company/supplier_part_detail.html:27
 #: order/templates/order/purchase_order_detail.html:159
 #: part/templates/part/detail.html:51 part/templates/part/set_category.html:14
 #: templates/InvenTree/search.html:147 templates/js/bom.html:147
 #: templates/js/build.html:56 templates/js/company.html:56
-#: templates/js/order.html:159 templates/js/order.html:234
+#: templates/js/order.html:167 templates/js/order.html:249
 #: templates/js/part.html:120 templates/js/part.html:203
 #: templates/js/part.html:345 templates/js/part.html:526
-#: templates/js/stock.html:444 templates/js/stock.html:671
+#: templates/js/stock.html:445 templates/js/stock.html:672
 msgid "Description"
 msgstr ""
 
@@ -334,7 +334,7 @@ msgstr ""
 #: templates/js/barcode.html:336 templates/js/bom.html:124
 #: templates/js/build.html:61 templates/js/company.html:137
 #: templates/js/part.html:184 templates/js/part.html:289
-#: templates/js/stock.html:421 templates/js/stock.html:977
+#: templates/js/stock.html:421 templates/js/stock.html:978
 msgid "Part"
 msgstr ""
 
@@ -385,7 +385,7 @@ msgid "Batch code for this build output"
 msgstr ""
 
 #: build/models.py:176 build/templates/build/detail.html:55
-#: company/templates/company/supplier_part_base.html:60
+#: company/templates/company/supplier_part_base.html:68
 #: company/templates/company/supplier_part_detail.html:24
 #: part/templates/part/detail.html:80 part/templates/part/part_base.html:102
 #: stock/models.py:381 stock/templates/stock/item_base.html:266
@@ -396,14 +396,14 @@ msgstr ""
 msgid "Link to external URL"
 msgstr ""
 
-#: build/models.py:181 build/templates/build/tabs.html:14 company/models.py:310
+#: build/models.py:181 build/templates/build/tabs.html:14 company/models.py:314
 #: company/templates/company/tabs.html:33 order/templates/order/po_tabs.html:18
 #: order/templates/order/purchase_order_detail.html:202
 #: order/templates/order/so_tabs.html:23 part/templates/part/tabs.html:70
 #: stock/forms.py:306 stock/forms.py:338 stock/forms.py:366 stock/models.py:453
 #: stock/models.py:1404 stock/templates/stock/tabs.html:26
 #: templates/js/barcode.html:391 templates/js/bom.html:223
-#: templates/js/stock.html:116 templates/js/stock.html:543
+#: templates/js/stock.html:116 templates/js/stock.html:544
 msgid "Notes"
 msgstr ""
 
@@ -446,7 +446,7 @@ msgid "Stock quantity to allocate to build"
 msgstr ""
 
 #: build/templates/build/allocate.html:17
-#: company/templates/company/detail_part.html:18 order/views.py:804
+#: company/templates/company/detail_part.html:22 order/views.py:804
 #: part/templates/part/category.html:122
 msgid "Order Parts"
 msgstr ""
@@ -472,8 +472,8 @@ msgid "Create new Stock Item"
 msgstr ""
 
 #: build/templates/build/allocate.html:170
-#: order/templates/order/sales_order_detail.html:68
-#: order/templates/order/sales_order_detail.html:150 stock/models.py:375
+#: order/templates/order/sales_order_detail.html:70
+#: order/templates/order/sales_order_detail.html:152 stock/models.py:375
 #: stock/templates/stock/item_base.html:178
 msgid "Serial Number"
 msgstr ""
@@ -482,11 +482,11 @@ msgstr ""
 #: build/templates/build/auto_allocate.html:20
 #: build/templates/build/build_base.html:83
 #: build/templates/build/detail.html:27
-#: company/templates/company/supplier_part_pricing.html:71
+#: company/templates/company/supplier_part_pricing.html:73
 #: order/templates/order/order_wizard/select_parts.html:32
 #: order/templates/order/purchase_order_detail.html:177
-#: order/templates/order/sales_order_detail.html:70
-#: order/templates/order/sales_order_detail.html:152
+#: order/templates/order/sales_order_detail.html:72
+#: order/templates/order/sales_order_detail.html:154
 #: part/templates/part/allocation.html:16
 #: part/templates/part/allocation.html:49
 #: part/templates/part/sale_prices.html:80 stock/forms.py:297
@@ -495,7 +495,7 @@ msgstr ""
 #: stock/templates/stock/item_base.html:184
 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.html:338
 #: templates/js/bom.html:162 templates/js/build.html:72
-#: templates/js/stock.html:690 templates/js/stock.html:905
+#: templates/js/stock.html:691 templates/js/stock.html:906
 msgid "Quantity"
 msgstr ""
 
@@ -504,17 +504,17 @@ msgstr ""
 #: stock/templates/stock/item_base.html:220
 #: stock/templates/stock/stock_adjust.html:17
 #: templates/InvenTree/search.html:183 templates/js/barcode.html:337
-#: templates/js/stock.html:518
+#: templates/js/stock.html:519
 msgid "Location"
 msgstr ""
 
 #: build/templates/build/allocate.html:210
-#: order/templates/order/sales_order_detail.html:92 templates/js/build.html:144
+#: order/templates/order/sales_order_detail.html:94 templates/js/build.html:144
 msgid "Edit stock allocation"
 msgstr ""
 
 #: build/templates/build/allocate.html:211
-#: order/templates/order/sales_order_detail.html:93 templates/js/build.html:145
+#: order/templates/order/sales_order_detail.html:95 templates/js/build.html:145
 msgid "Delete stock allocation"
 msgstr ""
 
@@ -532,12 +532,12 @@ msgid "Assigned"
 msgstr ""
 
 #: build/templates/build/allocate.html:394
-#: order/templates/order/sales_order_detail.html:271
+#: order/templates/order/sales_order_detail.html:273
 msgid "Buy parts"
 msgstr ""
 
 #: build/templates/build/allocate.html:398
-#: order/templates/order/sales_order_detail.html:275
+#: order/templates/order/sales_order_detail.html:277
 msgid "Build parts"
 msgstr ""
 
@@ -610,8 +610,8 @@ msgstr ""
 #: order/templates/order/receive_parts.html:24
 #: stock/templates/stock/item_base.html:298 templates/InvenTree/search.html:175
 #: templates/js/barcode.html:42 templates/js/build.html:77
-#: templates/js/order.html:164 templates/js/order.html:239
-#: templates/js/stock.html:505 templates/js/stock.html:913
+#: templates/js/order.html:172 templates/js/order.html:254
+#: templates/js/stock.html:506 templates/js/stock.html:914
 msgid "Status"
 msgstr ""
 
@@ -621,7 +621,7 @@ msgstr ""
 #: order/templates/order/sales_order_notes.html:10
 #: order/templates/order/sales_order_ship.html:25
 #: part/templates/part/allocation.html:27
-#: stock/templates/stock/item_base.html:208 templates/js/order.html:213
+#: stock/templates/stock/item_base.html:208 templates/js/order.html:221
 msgid "Sales Order"
 msgstr ""
 
@@ -694,8 +694,8 @@ msgid "Stock can be taken from any available location."
 msgstr ""
 
 #: build/templates/build/detail.html:48
-#: stock/templates/stock/item_base.html:238 templates/js/stock.html:513
-#: templates/js/stock.html:920 templates/js/table_filters.html:34
+#: stock/templates/stock/item_base.html:238 templates/js/stock.html:514
+#: templates/js/stock.html:921 templates/js/table_filters.html:34
 #: templates/js/table_filters.html:100
 msgid "Batch"
 msgstr ""
@@ -838,165 +838,249 @@ msgstr ""
 msgid "Updated Build Item"
 msgstr ""
 
-#: common/models.py:107
-msgid "Settings key (must be unique - case insensitive"
+#: common/models.py:51
+msgid "InvenTree Instance Name"
 msgstr ""
 
-#: common/models.py:109
-msgid "Settings value"
+#: common/models.py:53
+msgid "String descriptor for the server instance"
 msgstr ""
 
-#: common/models.py:122
-msgid "Key string must be unique"
-msgstr ""
-
-#: common/models.py:143
-msgid "Currency Symbol e.g. $"
-msgstr ""
-
-#: common/models.py:145
-msgid "Currency Suffix e.g. AUD"
-msgstr ""
-
-#: common/models.py:147
-msgid "Currency Description"
-msgstr ""
-
-#: common/models.py:149
-msgid "Currency Value"
-msgstr ""
-
-#: common/models.py:151
-msgid "Use this currency as the base currency"
-msgstr ""
-
-#: common/models.py:234
-msgid "Default"
-msgstr ""
-
-#: common/views.py:21
-msgid "Create new Currency"
-msgstr ""
-
-#: common/views.py:29
-msgid "Edit Currency"
-msgstr ""
-
-#: common/views.py:36
-msgid "Delete Currency"
-msgstr ""
-
-#: common/views.py:47
-msgid "Change Setting"
-msgstr ""
-
-#: company/models.py:86 company/models.py:87
+#: common/models.py:57 company/models.py:89 company/models.py:90
 msgid "Company name"
 msgstr ""
 
-#: company/models.py:89
+#: common/models.py:58
+msgid "Internal company name"
+msgstr ""
+
+#: common/models.py:63
+msgid "IPN Regex"
+msgstr ""
+
+#: common/models.py:64
+msgid "Regular expression pattern for matching Part IPN"
+msgstr ""
+
+#: common/models.py:68
+msgid "Copy Part BOM Data"
+msgstr ""
+
+#: common/models.py:69
+msgid "Copy BOM data by default when duplicating a part"
+msgstr ""
+
+#: common/models.py:75
+msgid "Copy Part Parameter Data"
+msgstr ""
+
+#: common/models.py:76
+msgid "Copy parameter data by default when duplicating a part"
+msgstr ""
+
+#: common/models.py:82
+msgid "Copy Part Test Data"
+msgstr ""
+
+#: common/models.py:83
+msgid "Copy test data by default when duplicating a part"
+msgstr ""
+
+#: common/models.py:89
+msgid "Build Order Reference Prefix"
+msgstr ""
+
+#: common/models.py:90
+msgid "Prefix value for build order reference"
+msgstr ""
+
+#: common/models.py:95
+msgid "Build Order Reference Regex"
+msgstr ""
+
+#: common/models.py:96
+msgid "Regular expression pattern for matching build order reference"
+msgstr ""
+
+#: common/models.py:100
+msgid "Sales Order Reference Prefix"
+msgstr ""
+
+#: common/models.py:101
+msgid "Prefix value for sales order reference"
+msgstr ""
+
+#: common/models.py:105
+msgid "Purchase Order Reference Prefix"
+msgstr ""
+
+#: common/models.py:106
+msgid "Prefix value for purchase order reference"
+msgstr ""
+
+#: common/models.py:272
+msgid "Settings key (must be unique - case insensitive"
+msgstr ""
+
+#: common/models.py:274
+msgid "Settings value"
+msgstr ""
+
+#: common/models.py:326
+msgid "Value must be a boolean value"
+msgstr ""
+
+#: common/models.py:340
+msgid "Key string must be unique"
+msgstr ""
+
+#: common/models.py:379
+msgid "Currency Symbol e.g. $"
+msgstr ""
+
+#: common/models.py:381
+msgid "Currency Suffix e.g. AUD"
+msgstr ""
+
+#: common/models.py:383
+msgid "Currency Description"
+msgstr ""
+
+#: common/models.py:385
+msgid "Currency Value"
+msgstr ""
+
+#: common/models.py:387
+msgid "Use this currency as the base currency"
+msgstr ""
+
+#: common/models.py:470
+msgid "Default"
+msgstr ""
+
+#: common/templates/common/edit_setting.html:11
+msgid "Current value"
+msgstr ""
+
+#: common/views.py:23
+msgid "Create new Currency"
+msgstr ""
+
+#: common/views.py:31
+msgid "Edit Currency"
+msgstr ""
+
+#: common/views.py:38
+msgid "Delete Currency"
+msgstr ""
+
+#: common/views.py:49
+msgid "Change Setting"
+msgstr ""
+
+#: company/models.py:92
 msgid "Company description"
 msgstr ""
 
-#: company/models.py:89
+#: company/models.py:92
 msgid "Description of the company"
 msgstr ""
 
-#: company/models.py:91 company/templates/company/company_base.html:53
+#: company/models.py:94 company/templates/company/company_base.html:57
 #: templates/js/company.html:61
 msgid "Website"
 msgstr ""
 
-#: company/models.py:91
+#: company/models.py:94
 msgid "Company website URL"
 msgstr ""
 
-#: company/models.py:94 company/templates/company/company_base.html:60
+#: company/models.py:97 company/templates/company/company_base.html:64
 msgid "Address"
 msgstr ""
 
-#: company/models.py:95
+#: company/models.py:98
 msgid "Company address"
 msgstr ""
 
-#: company/models.py:98
+#: company/models.py:101
 msgid "Phone number"
 msgstr ""
 
-#: company/models.py:99
+#: company/models.py:102
 msgid "Contact phone number"
 msgstr ""
 
-#: company/models.py:101 company/templates/company/company_base.html:74
+#: company/models.py:105 company/templates/company/company_base.html:78
 msgid "Email"
 msgstr ""
 
-#: company/models.py:101
+#: company/models.py:105
 msgid "Contact email address"
 msgstr ""
 
-#: company/models.py:104 company/templates/company/company_base.html:81
+#: company/models.py:108 company/templates/company/company_base.html:85
 msgid "Contact"
 msgstr ""
 
-#: company/models.py:105
+#: company/models.py:109
 msgid "Point of contact"
 msgstr ""
 
-#: company/models.py:107
+#: company/models.py:111
 msgid "Link to external company information"
 msgstr ""
 
-#: company/models.py:119
+#: company/models.py:123
 msgid "Do you sell items to this company?"
 msgstr ""
 
-#: company/models.py:121
+#: company/models.py:125
 msgid "Do you purchase items from this company?"
 msgstr ""
 
-#: company/models.py:123
+#: company/models.py:127
 msgid "Does this company manufacture parts?"
 msgstr ""
 
-#: company/models.py:279 stock/models.py:335
+#: company/models.py:283 stock/models.py:335
 #: stock/templates/stock/item_base.html:164
 msgid "Base Part"
 msgstr ""
 
-#: company/models.py:284
+#: company/models.py:288
 msgid "Select part"
 msgstr ""
 
-#: company/models.py:290
+#: company/models.py:294
 msgid "Select supplier"
 msgstr ""
 
-#: company/models.py:293
+#: company/models.py:297
 msgid "Supplier stock keeping unit"
 msgstr ""
 
-#: company/models.py:300
+#: company/models.py:304
 msgid "Select manufacturer"
 msgstr ""
 
-#: company/models.py:304
+#: company/models.py:308
 msgid "Manufacturer part number"
 msgstr ""
 
-#: company/models.py:306
+#: company/models.py:310
 msgid "URL for external supplier part link"
 msgstr ""
 
-#: company/models.py:308
+#: company/models.py:312
 msgid "Supplier part description"
 msgstr ""
 
-#: company/models.py:312
+#: company/models.py:316
 msgid "Minimum charge (e.g. stocking fee)"
 msgstr ""
 
-#: company/models.py:314
+#: company/models.py:318
 msgid "Part packaging"
 msgstr ""
 
@@ -1010,36 +1094,36 @@ msgstr ""
 msgid "Company"
 msgstr ""
 
-#: company/templates/company/company_base.html:47
+#: company/templates/company/company_base.html:51
 #: company/templates/company/detail.html:8
 msgid "Company Details"
 msgstr ""
 
-#: company/templates/company/company_base.html:67
+#: company/templates/company/company_base.html:71
 msgid "Phone"
 msgstr ""
 
 #: company/templates/company/detail.html:16
-#: company/templates/company/supplier_part_base.html:76
+#: company/templates/company/supplier_part_base.html:84
 #: company/templates/company/supplier_part_detail.html:30 part/bom.py:172
 #: templates/js/company.html:44 templates/js/company.html:186
 msgid "Manufacturer"
 msgstr ""
 
 #: company/templates/company/detail.html:21
-#: company/templates/company/supplier_part_base.html:66
+#: company/templates/company/supplier_part_base.html:74
 #: company/templates/company/supplier_part_detail.html:21
 #: order/templates/order/order_base.html:79
 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:170
 #: stock/templates/stock/item_base.html:273 templates/js/company.html:48
-#: templates/js/company.html:162 templates/js/order.html:146
+#: templates/js/company.html:162 templates/js/order.html:154
 msgid "Supplier"
 msgstr ""
 
 #: company/templates/company/detail.html:26
 #: order/templates/order/sales_order_base.html:81 stock/models.py:370
 #: stock/models.py:371 stock/templates/stock/item_base.html:191
-#: templates/js/company.html:40 templates/js/order.html:221
+#: templates/js/company.html:40 templates/js/order.html:236
 msgid "Customer"
 msgstr ""
 
@@ -1047,60 +1131,60 @@ msgstr ""
 msgid "Supplier Parts"
 msgstr ""
 
-#: company/templates/company/detail_part.html:13
+#: company/templates/company/detail_part.html:15
 #: order/templates/order/purchase_order_detail.html:68
 msgid "Create new supplier part"
 msgstr ""
 
-#: company/templates/company/detail_part.html:13
+#: company/templates/company/detail_part.html:15
 #: order/templates/order/purchase_order_detail.html:67
-#: part/templates/part/supplier.html:13 templates/js/stock.html:797
+#: part/templates/part/supplier.html:13 templates/js/stock.html:798
 msgid "New Supplier Part"
 msgstr ""
 
-#: company/templates/company/detail_part.html:15
+#: company/templates/company/detail_part.html:18
 #: part/templates/part/category.html:117 part/templates/part/supplier.html:15
 #: templates/stock_table.html:14
 msgid "Options"
 msgstr ""
 
-#: company/templates/company/detail_part.html:18
+#: company/templates/company/detail_part.html:22
 #: part/templates/part/category.html:122
 msgid "Order parts"
 msgstr ""
 
-#: company/templates/company/detail_part.html:19
+#: company/templates/company/detail_part.html:25
 msgid "Delete parts"
 msgstr ""
 
-#: company/templates/company/detail_part.html:19
+#: company/templates/company/detail_part.html:25
 msgid "Delete Parts"
 msgstr ""
 
-#: company/templates/company/detail_part.html:43
-#: part/templates/part/category.html:114 templates/js/stock.html:791
+#: company/templates/company/detail_part.html:51
+#: part/templates/part/category.html:114 templates/js/stock.html:792
 msgid "New Part"
 msgstr ""
 
-#: company/templates/company/detail_part.html:44
+#: company/templates/company/detail_part.html:52
 msgid "Create new Part"
 msgstr ""
 
-#: company/templates/company/detail_part.html:49 company/views.py:51
+#: company/templates/company/detail_part.html:57 company/views.py:53
 #: part/templates/part/supplier.html:45
 msgid "New Supplier"
 msgstr ""
 
-#: company/templates/company/detail_part.html:50 company/views.py:186
+#: company/templates/company/detail_part.html:58 company/views.py:192
 msgid "Create new Supplier"
 msgstr ""
 
-#: company/templates/company/detail_part.html:55 company/views.py:58
+#: company/templates/company/detail_part.html:63 company/views.py:60
 #: part/templates/part/supplier.html:51
 msgid "New Manufacturer"
 msgstr ""
 
-#: company/templates/company/detail_part.html:56 company/views.py:189
+#: company/templates/company/detail_part.html:64 company/views.py:195
 msgid "Create new Manufacturer"
 msgstr ""
 
@@ -1133,17 +1217,17 @@ msgstr ""
 #: order/templates/order/purchase_orders.html:7
 #: order/templates/order/purchase_orders.html:12
 #: part/templates/part/orders.html:9 part/templates/part/tabs.html:48
-#: templates/InvenTree/settings/tabs.html:27 templates/navbar.html:33
+#: templates/InvenTree/settings/tabs.html:31 templates/navbar.html:33
 #: users/models.py:31
 msgid "Purchase Orders"
 msgstr ""
 
-#: company/templates/company/purchase_orders.html:14
+#: company/templates/company/purchase_orders.html:15
 #: order/templates/order/purchase_orders.html:18
 msgid "Create new purchase order"
 msgstr ""
 
-#: company/templates/company/purchase_orders.html:14
+#: company/templates/company/purchase_orders.html:15
 #: order/templates/order/purchase_orders.html:18
 msgid "New Purchase Order"
 msgstr ""
@@ -1153,17 +1237,17 @@ msgstr ""
 #: order/templates/order/sales_orders.html:7
 #: order/templates/order/sales_orders.html:12
 #: part/templates/part/sales_orders.html:9 part/templates/part/tabs.html:56
-#: templates/InvenTree/settings/tabs.html:30 templates/navbar.html:42
+#: templates/InvenTree/settings/tabs.html:34 templates/navbar.html:42
 #: users/models.py:32
 msgid "Sales Orders"
 msgstr ""
 
-#: company/templates/company/sales_orders.html:14
+#: company/templates/company/sales_orders.html:15
 #: order/templates/order/sales_orders.html:18
 msgid "Create new sales order"
 msgstr ""
 
-#: company/templates/company/sales_orders.html:14
+#: company/templates/company/sales_orders.html:15
 #: order/templates/order/sales_orders.html:18
 msgid "New Sales Order"
 msgstr ""
@@ -1174,41 +1258,41 @@ msgstr ""
 msgid "Supplier Part"
 msgstr ""
 
-#: company/templates/company/supplier_part_base.html:23
+#: company/templates/company/supplier_part_base.html:26
 #: part/templates/part/orders.html:14 part/templates/part/part_base.html:66
 msgid "Order part"
 msgstr ""
 
-#: company/templates/company/supplier_part_base.html:26
+#: company/templates/company/supplier_part_base.html:30
 msgid "Edit supplier part"
 msgstr ""
 
-#: company/templates/company/supplier_part_base.html:29
+#: company/templates/company/supplier_part_base.html:34
 msgid "Delete supplier part"
 msgstr ""
 
-#: company/templates/company/supplier_part_base.html:38
+#: company/templates/company/supplier_part_base.html:46
 #: company/templates/company/supplier_part_detail.html:11
 msgid "Supplier Part Details"
 msgstr ""
 
-#: company/templates/company/supplier_part_base.html:43
+#: company/templates/company/supplier_part_base.html:51
 #: company/templates/company/supplier_part_detail.html:14
 msgid "Internal Part"
 msgstr ""
 
-#: company/templates/company/supplier_part_base.html:70
+#: company/templates/company/supplier_part_base.html:78
 #: company/templates/company/supplier_part_detail.html:22 part/bom.py:171
 msgid "SKU"
 msgstr ""
 
-#: company/templates/company/supplier_part_base.html:80
+#: company/templates/company/supplier_part_base.html:88
 #: company/templates/company/supplier_part_detail.html:31 part/bom.py:173
 #: templates/js/company.html:202
 msgid "MPN"
 msgstr ""
 
-#: company/templates/company/supplier_part_base.html:87
+#: company/templates/company/supplier_part_base.html:95
 #: company/templates/company/supplier_part_detail.html:34
 msgid "Note"
 msgstr ""
@@ -1221,27 +1305,27 @@ msgstr ""
 msgid "Pricing Information"
 msgstr ""
 
-#: company/templates/company/supplier_part_pricing.html:15 company/views.py:399
+#: company/templates/company/supplier_part_pricing.html:16 company/views.py:410
 #: part/templates/part/sale_prices.html:13 part/views.py:2228
 msgid "Add Price Break"
 msgstr ""
 
-#: company/templates/company/supplier_part_pricing.html:32
+#: company/templates/company/supplier_part_pricing.html:34
 #: part/templates/part/sale_prices.html:41
 msgid "No price break information found"
 msgstr ""
 
-#: company/templates/company/supplier_part_pricing.html:76
+#: company/templates/company/supplier_part_pricing.html:78
 #: part/templates/part/sale_prices.html:85 templates/js/bom.html:207
 msgid "Price"
 msgstr ""
 
-#: company/templates/company/supplier_part_pricing.html:90
+#: company/templates/company/supplier_part_pricing.html:92
 #: part/templates/part/sale_prices.html:99
 msgid "Edit price break"
 msgstr ""
 
-#: company/templates/company/supplier_part_pricing.html:91
+#: company/templates/company/supplier_part_pricing.html:93
 #: part/templates/part/sale_prices.html:100
 msgid "Delete price break"
 msgstr ""
@@ -1257,8 +1341,8 @@ msgstr ""
 #: company/templates/company/supplier_part_tabs.html:8
 #: company/templates/company/tabs.html:12 part/templates/part/tabs.html:18
 #: stock/templates/stock/location.html:17 templates/InvenTree/search.html:155
-#: templates/InvenTree/settings/tabs.html:21 templates/js/part.html:124
-#: templates/js/part.html:372 templates/js/stock.html:452
+#: templates/InvenTree/settings/tabs.html:25 templates/js/part.html:124
+#: templates/js/part.html:372 templates/js/stock.html:453
 #: templates/navbar.html:22 users/models.py:29
 msgid "Stock"
 msgstr ""
@@ -1271,93 +1355,93 @@ msgstr ""
 #: order/templates/order/receive_parts.html:14 part/models.py:294
 #: part/templates/part/cat_link.html:7 part/templates/part/category.html:94
 #: part/templates/part/category_tabs.html:6
-#: templates/InvenTree/settings/tabs.html:18 templates/navbar.html:19
+#: templates/InvenTree/settings/tabs.html:22 templates/navbar.html:19
 #: templates/stats.html:8 templates/stats.html:17 users/models.py:28
 msgid "Parts"
 msgstr ""
 
-#: company/views.py:50 part/templates/part/tabs.html:42
+#: company/views.py:52 part/templates/part/tabs.html:42
 #: templates/navbar.html:31
 msgid "Suppliers"
 msgstr ""
 
-#: company/views.py:57 templates/navbar.html:32
+#: company/views.py:59 templates/navbar.html:32
 msgid "Manufacturers"
 msgstr ""
 
-#: company/views.py:64 templates/navbar.html:41
+#: company/views.py:66 templates/navbar.html:41
 msgid "Customers"
 msgstr ""
 
-#: company/views.py:65
+#: company/views.py:67
 msgid "New Customer"
 msgstr ""
 
-#: company/views.py:73
+#: company/views.py:75
 msgid "Companies"
 msgstr ""
 
-#: company/views.py:74
+#: company/views.py:76
 msgid "New Company"
 msgstr ""
 
-#: company/views.py:151
+#: company/views.py:154
 msgid "Update Company Image"
 msgstr ""
 
-#: company/views.py:156
+#: company/views.py:160
 msgid "Updated company image"
 msgstr ""
 
-#: company/views.py:166
+#: company/views.py:170
 msgid "Edit Company"
 msgstr ""
 
-#: company/views.py:170
+#: company/views.py:175
 msgid "Edited company information"
 msgstr ""
 
-#: company/views.py:192
+#: company/views.py:198
 msgid "Create new Customer"
 msgstr ""
 
-#: company/views.py:194
+#: company/views.py:200
 msgid "Create new Company"
 msgstr ""
 
-#: company/views.py:221
+#: company/views.py:227
 msgid "Created new company"
 msgstr ""
 
-#: company/views.py:231
+#: company/views.py:237
 msgid "Delete Company"
 msgstr ""
 
-#: company/views.py:236
+#: company/views.py:243
 msgid "Company was deleted"
 msgstr ""
 
-#: company/views.py:260
+#: company/views.py:268
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: company/views.py:269 templates/js/stock.html:798
+#: company/views.py:278 templates/js/stock.html:799
 msgid "Create new Supplier Part"
 msgstr ""
 
-#: company/views.py:329
+#: company/views.py:339
 msgid "Delete Supplier Part"
 msgstr ""
 
-#: company/views.py:404 part/views.py:2234
+#: company/views.py:416 part/views.py:2234
 msgid "Added new price break"
 msgstr ""
 
-#: company/views.py:441 part/views.py:2279
+#: company/views.py:453 part/views.py:2279
 msgid "Edit Price Break"
 msgstr ""
 
-#: company/views.py:456 part/views.py:2295
+#: company/views.py:469 part/views.py:2295
 msgid "Delete Price Break"
 msgstr ""
 
@@ -1489,7 +1573,7 @@ msgstr ""
 
 #: order/models.py:466 order/templates/order/order_base.html:9
 #: order/templates/order/order_base.html:24
-#: stock/templates/stock/item_base.html:252 templates/js/order.html:138
+#: stock/templates/stock/item_base.html:252 templates/js/order.html:139
 msgid "Purchase Order"
 msgstr ""
 
@@ -1557,7 +1641,7 @@ msgstr ""
 msgid "Order Status"
 msgstr ""
 
-#: order/templates/order/order_base.html:85 templates/js/order.html:153
+#: order/templates/order/order_base.html:85 templates/js/order.html:161
 msgid "Supplier Reference"
 msgstr ""
 
@@ -1613,7 +1697,7 @@ msgid "Select existing purchase orders, or create new orders."
 msgstr ""
 
 #: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/order.html:177 templates/js/order.html:257
+#: templates/js/order.html:185 templates/js/order.html:272
 msgid "Items"
 msgstr ""
 
@@ -1644,7 +1728,7 @@ msgid "Attachments"
 msgstr ""
 
 #: order/templates/order/purchase_order_detail.html:16
-#: order/templates/order/sales_order_detail.html:17 order/views.py:1117
+#: order/templates/order/sales_order_detail.html:18 order/views.py:1117
 #: order/views.py:1232
 msgid "Add Line Item"
 msgstr ""
@@ -1656,7 +1740,7 @@ msgstr ""
 #: order/templates/order/purchase_order_detail.html:38
 #: order/templates/order/purchase_order_detail.html:118
 #: part/templates/part/category.html:171 part/templates/part/category.html:213
-#: templates/js/stock.html:803
+#: templates/js/stock.html:804
 msgid "New Location"
 msgstr ""
 
@@ -1676,7 +1760,7 @@ msgid "Order Code"
 msgstr ""
 
 #: order/templates/order/purchase_order_detail.html:213
-#: order/templates/order/sales_order_detail.html:281
+#: order/templates/order/sales_order_detail.html:283
 msgid "Edit line item"
 msgstr ""
 
@@ -1721,7 +1805,7 @@ msgstr ""
 msgid "Sales Order Details"
 msgstr ""
 
-#: order/templates/order/sales_order_base.html:87 templates/js/order.html:228
+#: order/templates/order/sales_order_base.html:87 templates/js/order.html:243
 msgid "Customer Reference"
 msgstr ""
 
@@ -1735,15 +1819,15 @@ msgstr ""
 msgid "Sales Order Items"
 msgstr ""
 
-#: order/templates/order/sales_order_detail.html:223
+#: order/templates/order/sales_order_detail.html:225
 msgid "Fulfilled"
 msgstr ""
 
-#: order/templates/order/sales_order_detail.html:278
+#: order/templates/order/sales_order_detail.html:280
 msgid "Allocate parts"
 msgstr ""
 
-#: order/templates/order/sales_order_detail.html:282
+#: order/templates/order/sales_order_detail.html:284
 msgid "Delete line item "
 msgstr ""
 
@@ -2291,7 +2375,7 @@ msgstr ""
 #: stock/templates/stock/item_base.html:58
 #: stock/templates/stock/item_base.html:260
 #: stock/templates/stock/stock_adjust.html:16 templates/js/build.html:126
-#: templates/js/stock.html:660 templates/js/stock.html:896
+#: templates/js/stock.html:661 templates/js/stock.html:897
 msgid "Stock Item"
 msgstr ""
 
@@ -2541,7 +2625,7 @@ msgstr ""
 msgid "Minimum Stock"
 msgstr ""
 
-#: part/templates/part/detail.html:114 templates/js/order.html:247
+#: part/templates/part/detail.html:114 templates/js/order.html:262
 msgid "Creation Date"
 msgstr ""
 
@@ -2662,7 +2746,7 @@ msgstr ""
 msgid "Add new parameter"
 msgstr ""
 
-#: part/templates/part/params.html:14 templates/InvenTree/settings/part.html:17
+#: part/templates/part/params.html:14 templates/InvenTree/settings/part.html:27
 msgid "New Parameter"
 msgstr ""
 
@@ -3446,7 +3530,7 @@ msgstr ""
 msgid "Return to stock"
 msgstr ""
 
-#: stock/templates/stock/item_base.html:125 templates/js/stock.html:933
+#: stock/templates/stock/item_base.html:125 templates/js/stock.html:934
 msgid "Uninstall stock item"
 msgstr ""
 
@@ -3918,11 +4002,11 @@ msgstr ""
 msgid "Enter a search query"
 msgstr ""
 
-#: templates/InvenTree/search.html:191 templates/js/stock.html:527
+#: templates/InvenTree/search.html:191 templates/js/stock.html:528
 msgid "Shipped to customer"
 msgstr ""
 
-#: templates/InvenTree/search.html:194 templates/js/stock.html:537
+#: templates/InvenTree/search.html:194 templates/js/stock.html:538
 msgid "No stock location set"
 msgstr ""
 
@@ -3934,22 +4018,6 @@ msgstr ""
 msgid "Build Order Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/build.html:19
-msgid "Reference Prefix"
-msgstr ""
-
-#: templates/InvenTree/settings/build.html:21
-msgid "Prefix for Build Order reference"
-msgstr ""
-
-#: templates/InvenTree/settings/build.html:24
-msgid "Reference Regex"
-msgstr ""
-
-#: templates/InvenTree/settings/build.html:26
-msgid "Regex validator for Build Order reference"
-msgstr ""
-
 #: templates/InvenTree/settings/currency.html:5
 msgid "General Settings"
 msgstr ""
@@ -3962,23 +4030,27 @@ msgstr ""
 msgid "New Currency"
 msgstr ""
 
+#: templates/InvenTree/settings/global.html:10
+msgid "Global InvenTree Settings"
+msgstr ""
+
 #: templates/InvenTree/settings/part.html:9
 msgid "Part Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/part.html:14
+#: templates/InvenTree/settings/part.html:24
 msgid "Part Parameter Templates"
 msgstr ""
 
-#: templates/InvenTree/settings/part.html:33
+#: templates/InvenTree/settings/part.html:43
 msgid "No part parameter templates found"
 msgstr ""
 
-#: templates/InvenTree/settings/part.html:53
+#: templates/InvenTree/settings/part.html:63
 msgid "Edit Template"
 msgstr ""
 
-#: templates/InvenTree/settings/part.html:54
+#: templates/InvenTree/settings/part.html:64
 msgid "Delete Template"
 msgstr ""
 
@@ -3986,6 +4058,14 @@ msgstr ""
 msgid "Purchase Order Settings"
 msgstr ""
 
+#: templates/InvenTree/settings/setting.html:16
+msgid "No value set"
+msgstr ""
+
+#: templates/InvenTree/settings/setting.html:24
+msgid "Edit setting"
+msgstr ""
+
 #: templates/InvenTree/settings/settings.html:7
 #: templates/InvenTree/settings/settings.html:13 templates/navbar.html:62
 msgid "Settings"
@@ -4012,11 +4092,15 @@ msgstr ""
 msgid "Theme"
 msgstr ""
 
-#: templates/InvenTree/settings/tabs.html:12
+#: templates/InvenTree/settings/tabs.html:13
 msgid "InvenTree Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/tabs.html:15
+#: templates/InvenTree/settings/tabs.html:16
+msgid "Global"
+msgstr ""
+
+#: templates/InvenTree/settings/tabs.html:19
 msgid "Currency"
 msgstr ""
 
@@ -4271,19 +4355,19 @@ msgstr ""
 msgid "Link"
 msgstr ""
 
-#: templates/js/order.html:127
+#: templates/js/order.html:128
 msgid "No purchase orders found"
 msgstr ""
 
-#: templates/js/order.html:172 templates/js/stock.html:642
+#: templates/js/order.html:180 templates/js/stock.html:643
 msgid "Date"
 msgstr ""
 
-#: templates/js/order.html:202
+#: templates/js/order.html:210
 msgid "No sales orders found"
 msgstr ""
 
-#: templates/js/order.html:252
+#: templates/js/order.html:267
 msgid "Shipment Date"
 msgstr ""
 
@@ -4296,7 +4380,7 @@ msgid "No parts found"
 msgstr ""
 
 #: templates/js/part.html:275 templates/js/stock.html:409
-#: templates/js/stock.html:965
+#: templates/js/stock.html:966
 msgid "Select"
 msgstr ""
 
@@ -4376,67 +4460,67 @@ msgstr ""
 msgid "Undefined location"
 msgstr ""
 
-#: templates/js/stock.html:468
+#: templates/js/stock.html:469
 msgid "Stock item has been allocated"
 msgstr ""
 
-#: templates/js/stock.html:472
+#: templates/js/stock.html:473
 msgid "Stock item has been assigned to customer"
 msgstr ""
 
-#: templates/js/stock.html:475
+#: templates/js/stock.html:476
 msgid "Stock item was assigned to a build order"
 msgstr ""
 
-#: templates/js/stock.html:477
+#: templates/js/stock.html:478
 msgid "Stock item was assigned to a sales order"
 msgstr ""
 
-#: templates/js/stock.html:482
+#: templates/js/stock.html:483
 msgid "Stock item has been installed in another item"
 msgstr ""
 
-#: templates/js/stock.html:489
+#: templates/js/stock.html:490
 msgid "Stock item has been rejected"
 msgstr ""
 
-#: templates/js/stock.html:493
+#: templates/js/stock.html:494
 msgid "Stock item is lost"
 msgstr ""
 
-#: templates/js/stock.html:497 templates/js/table_filters.html:60
+#: templates/js/stock.html:498 templates/js/table_filters.html:60
 msgid "Depleted"
 msgstr ""
 
-#: templates/js/stock.html:522
+#: templates/js/stock.html:523
 msgid "Installed in Stock Item "
 msgstr ""
 
-#: templates/js/stock.html:530
+#: templates/js/stock.html:531
 msgid "Assigned to sales order"
 msgstr ""
 
-#: templates/js/stock.html:708
+#: templates/js/stock.html:709
 msgid "No user information"
 msgstr ""
 
-#: templates/js/stock.html:792
+#: templates/js/stock.html:793
 msgid "Create New Part"
 msgstr ""
 
-#: templates/js/stock.html:804
+#: templates/js/stock.html:805
 msgid "Create New Location"
 msgstr ""
 
-#: templates/js/stock.html:903
+#: templates/js/stock.html:904
 msgid "Serial"
 msgstr ""
 
-#: templates/js/stock.html:996 templates/js/table_filters.html:70
+#: templates/js/stock.html:997 templates/js/table_filters.html:70
 msgid "Installed"
 msgstr ""
 
-#: templates/js/stock.html:1021
+#: templates/js/stock.html:1022
 msgid "Install item"
 msgstr ""
 
diff --git a/InvenTree/order/templates/order/sales_order_detail.html b/InvenTree/order/templates/order/sales_order_detail.html
index b6cc761cc7..d21a4e950e 100644
--- a/InvenTree/order/templates/order/sales_order_detail.html
+++ b/InvenTree/order/templates/order/sales_order_detail.html
@@ -13,9 +13,11 @@
 
 <h4>{% trans "Sales Order Items" %}</h4>
 
+{% if roles.sales_order.change %}
 <div id='order-toolbar-buttons' class='btn-group' style='float: right;'>
     <button type='button' class='btn btn-default' id='new-so-line'>{% trans "Add Line Item" %}</button>
 </div>
+{% endif %}
 
 <table class='table table-striped table-condensed' id='so-lines-table' data-toolbar='#order-toolbar-buttons'>
 
diff --git a/InvenTree/part/templates/part/notes.html b/InvenTree/part/templates/part/notes.html
index 3f833325cd..1c46f53bcd 100644
--- a/InvenTree/part/templates/part/notes.html
+++ b/InvenTree/part/templates/part/notes.html
@@ -37,7 +37,9 @@
 <hr>
 <div class='panel panel-default'>
     <div class='panel-content'>
+        {% if part.notes %}
         {{ part.notes | markdownify }}
+        {% endif %}
     </div>
 </div>
 
diff --git a/InvenTree/part/templatetags/inventree_extras.py b/InvenTree/part/templatetags/inventree_extras.py
index 2c175003d0..3af495cc1c 100644
--- a/InvenTree/part/templatetags/inventree_extras.py
+++ b/InvenTree/part/templatetags/inventree_extras.py
@@ -5,7 +5,8 @@ import os
 
 from django import template
 from InvenTree import version, settings
-from InvenTree.helpers import decimal2string
+
+import InvenTree.helpers
 
 from common.models import InvenTreeSetting, ColorTheme
 
@@ -16,7 +17,14 @@ register = template.Library()
 def decimal(x, *args, **kwargs):
     """ Simplified rendering of a decimal number """
 
-    return decimal2string(x)
+    return InvenTree.helpers.decimal2string(x)
+
+
+@register.simple_tag()
+def str2bool(x, *args, **kwargs):
+    """ Convert a string to a boolean value """
+
+    return InvenTree.helpers.str2bool(x)
 
 
 @register.simple_tag()
@@ -28,7 +36,7 @@ def inrange(n, *args, **kwargs):
 @register.simple_tag()
 def multiply(x, y, *args, **kwargs):
     """ Multiply two numbers together """
-    return decimal2string(x * y)
+    return InvenTree.helpers.decimal2string(x * y)
 
 
 @register.simple_tag()
@@ -41,7 +49,7 @@ def add(x, y, *args, **kwargs):
 def part_allocation_count(build, part, *args, **kwargs):
     """ Return the total number of <part> allocated to <build> """
 
-    return decimal2string(build.getAllocatedQuantity(part))
+    return InvenTree.helpers.decimal2string(build.getAllocatedQuantity(part))
 
 
 @register.simple_tag()
@@ -87,8 +95,15 @@ def inventree_docs_url(*args, **kwargs):
 
 
 @register.simple_tag()
-def inventree_setting(key, *args, **kwargs):
-    return InvenTreeSetting.get_setting(key, backup_value=kwargs.get('backup', None))
+def setting_object(key, *args, **kwargs):
+    """
+    Return a setting object speciifed by the given key
+    (Or return None if the setting does not exist)
+    """
+
+    setting = InvenTreeSetting.get_setting_object(key)
+
+    return setting
 
 
 @register.simple_tag()
diff --git a/InvenTree/templates/InvenTree/settings/build.html b/InvenTree/templates/InvenTree/settings/build.html
index 6d19e21f1a..781402795b 100644
--- a/InvenTree/templates/InvenTree/settings/build.html
+++ b/InvenTree/templates/InvenTree/settings/build.html
@@ -15,17 +15,8 @@
 <table class='table table-striped table-condensed'>
     <thead></thead>
     <tbody>
-        <tr>
-            <th>{% trans "Reference Prefix" %}</th>
-            <th>{% inventree_setting 'BUILDORDER_REFERENCE_PREFIX' backup='BO' %}</th>
-            <td>{% trans "Prefix for Build Order reference" %}</td>
-        </tr>
-        <tr>
-            <th>{% trans "Reference Regex" %}</th>
-            <th>{% inventree_setting 'BUILDORDER_REFERENCE_REGEX' %}</th>
-            <td>{% trans "Regex validator for Build Order reference" %}</td>
-            <td></td>
-        </tr>
+        {% include "InvenTree/settings/setting.html" with key="BUILDORDER_REFERENCE_PREFIX" %}
+        {% include "InvenTree/settings/setting.html" with key="BUILDORDER_REFERENCE_REGEX" %}
     </tbody>
 </table>
 
diff --git a/InvenTree/templates/InvenTree/settings/global.html b/InvenTree/templates/InvenTree/settings/global.html
new file mode 100644
index 0000000000..7dcdd54bea
--- /dev/null
+++ b/InvenTree/templates/InvenTree/settings/global.html
@@ -0,0 +1,23 @@
+{% extends "InvenTree/settings/settings.html" %}
+{% load i18n %}
+{% load inventree_extras %}
+
+{% block tabs %}
+{% include "InvenTree/settings/tabs.html" with tab='global' %}
+{% endblock %}
+
+{% block subtitle %}
+{% trans "Global InvenTree Settings" %}
+{% endblock %}
+
+{% block settings %}
+
+<table class='table table-striped table-condensed'>
+    <thead></thead>
+    <tbody>
+        {% include "InvenTree/settings/setting.html" with key="INVENTREE_INSTANCE" %}
+        {% include "InvenTree/settings/setting.html" with key="INVENTREE_COMPANY_NAME" %}
+    </tbody>
+</table>
+
+{% endblock %}
\ No newline at end of file
diff --git a/InvenTree/templates/InvenTree/settings/part.html b/InvenTree/templates/InvenTree/settings/part.html
index 7c028ca6d6..cac04a60ff 100644
--- a/InvenTree/templates/InvenTree/settings/part.html
+++ b/InvenTree/templates/InvenTree/settings/part.html
@@ -11,6 +11,16 @@
 
 {% block settings %}
 
+<table class='table table-striped table-condensed'>
+    <thead></thead>
+    <tbody>
+        {% include "InvenTree/settings/setting.html" with key="PART_IPN_REGEX" %}
+        {% include "InvenTree/settings/setting.html" with key="PART_COPY_BOM" %}
+        {% include "InvenTree/settings/setting.html" with key="PART_COPY_PARAMETERS" %}
+        {% include "InvenTree/settings/setting.html" with key="PART_COPY_TESTS" %}
+    </tbody>
+</table>
+
 <h4>{% trans "Part Parameter Templates" %}</h4>
 
 <div id='param-buttons'>
@@ -53,7 +63,7 @@
                     var bEdit = "<button title='{% trans "Edit Template" %}' class='template-edit btn btn-default btn-glyph' type='button' pk='" + row.pk + "'><span class='fas fa-edit'></span></button>";
                     var bDel = "<button title='{% trans "Delete Template" %}' class='template-delete btn btn-default btn-glyph' type='button' pk='" + row.pk + "'><span class='fas fa-trash-alt icon-red'></span></button>";
 
-                    var html = "<div class='btn-group' role='group'>" + bEdit + bDel + "</div>";
+                    var html = "<div class='btn-group float-right' role='group'>" + bEdit + bDel + "</div>";
 
                     return html;
                 }
diff --git a/InvenTree/templates/InvenTree/settings/po.html b/InvenTree/templates/InvenTree/settings/po.html
index 7d32611404..a709d40dd3 100644
--- a/InvenTree/templates/InvenTree/settings/po.html
+++ b/InvenTree/templates/InvenTree/settings/po.html
@@ -10,4 +10,10 @@
 {% endblock %}
 
 {% block settings %}
+<table class='table table-striped table-condensed'>
+    <thead></thead>
+    <tbody>
+        {% include "InvenTree/settings/setting.html" with key="PURCHASEORDER_REFERENCE_PREFIX" %}
+    </tbody>
+</table>
 {% endblock %}
\ No newline at end of file
diff --git a/InvenTree/templates/InvenTree/settings/setting.html b/InvenTree/templates/InvenTree/settings/setting.html
new file mode 100644
index 0000000000..ffbb78cbbc
--- /dev/null
+++ b/InvenTree/templates/InvenTree/settings/setting.html
@@ -0,0 +1,29 @@
+{% load inventree_extras %}
+{% load i18n %}
+
+{% setting_object key as setting %}
+<tr>
+    <td><b>{{ setting.name }}</b></td>
+    <td>
+        {% if setting.is_bool %}
+        <div>
+            <input fieldname='{{ setting.key }}' class='slidey' type='checkbox' data-offstyle='warning' data-onstyle='success' data-size='small' data-toggle='toggle' disabled autocomplete='off' {% if setting.as_bool %}checked=''{% endif %}>
+        </div>
+        {% else %}
+        {% if setting.value %}
+        <b>{{ setting.value }}</b>{{ setting.units }}</td>
+        {% else %}
+        <i>{% trans "No value set" %}</i>
+        {% endif %}
+        {% endif %}
+    <td>
+        {{ setting.description }}
+    </td>
+    <td>
+        <div class='btn-group float-right'>
+            <button class='btn btn-default btn-glyph btn-edit-setting' pk='{{ setting.pk }}' setting='{{ key }}' title='{% trans "Edit setting" %}'>
+                <span class='fas fa-edit icon-green'></span>
+            </button>
+        </div>
+    </td>
+</tr>
\ No newline at end of file
diff --git a/InvenTree/templates/InvenTree/settings/settings.html b/InvenTree/templates/InvenTree/settings/settings.html
index 90adfd5fed..fe9fd00e53 100644
--- a/InvenTree/templates/InvenTree/settings/settings.html
+++ b/InvenTree/templates/InvenTree/settings/settings.html
@@ -37,3 +37,20 @@ InvenTree | {% trans "Settings" %}
 {% block js_load %}
 {{ block.super }}
 {% endblock %}
+
+{% block js_ready %}
+{{ block.super }}
+
+$('table').find('.btn-edit-setting').click(function() {
+    var setting = $(this).attr('setting');
+    var pk = $(this).attr('pk');
+
+    launchModalForm(
+        `/settings/${pk}/edit/`,
+        {
+            reload: true,
+        }
+    );
+});
+
+{% endblock %}
diff --git a/InvenTree/templates/InvenTree/settings/so.html b/InvenTree/templates/InvenTree/settings/so.html
index e66fd85148..368374532f 100644
--- a/InvenTree/templates/InvenTree/settings/so.html
+++ b/InvenTree/templates/InvenTree/settings/so.html
@@ -10,4 +10,12 @@
 {% endblock %}
 
 {% block settings %}
+
+<table class='table table-striped table-condensed'>
+    <thead></thead>
+    <tbody>
+        {% include "InvenTree/settings/setting.html" with key="SALESORDER_REFERENCE_PREFIX" %}
+    </tbody>
+</table>
+
 {% endblock %}
\ No newline at end of file
diff --git a/InvenTree/templates/InvenTree/settings/tabs.html b/InvenTree/templates/InvenTree/settings/tabs.html
index ee402feb4f..d104908c49 100644
--- a/InvenTree/templates/InvenTree/settings/tabs.html
+++ b/InvenTree/templates/InvenTree/settings/tabs.html
@@ -9,8 +9,12 @@
         <a href="{% url 'settings-theme' %}"><span class='fas fa-fill'></span> {% trans "Theme" %}</a>
     </li>
 </ul>
+{% if user.is_staff %}
 <h4><span class='fas fa-cogs'></span> {% trans "InvenTree Settings" %}</h4>
 <ul class='nav nav-pills nav-stacked'>
+    <li {% if tab == 'global' %} class='active' {% endif %}>
+        <a href='{% url "settings-global" %}'><span class='fas fa-globe'></span> {% trans "Global" %}</a>
+    </li>
     <li{% ifequal tab 'currency' %} class='active'{% endifequal %}>
         <a href="{% url 'settings-currency' %}"><span class='fas fa-dollar-sign'></span> {% trans "Currency" %}</a>
     </li>
@@ -29,4 +33,5 @@
     <li {% if tab == 'so' %} class='active'{% endif %}>
         <a href="{% url 'settings-so' %}"><span class='fas fa-truck'></span> {% trans "Sales Orders" %}</a>
     </li>
-</ul>
\ No newline at end of file
+</ul>
+{% endif %}
\ No newline at end of file
diff --git a/InvenTree/templates/js/build.html b/InvenTree/templates/js/build.html
index 6a12b97bfd..1f577802b2 100644
--- a/InvenTree/templates/js/build.html
+++ b/InvenTree/templates/js/build.html
@@ -42,7 +42,7 @@ function loadBuildTable(table, options) {
                 switchable: false,
                 formatter: function(value, row, index, field) {
 
-                    var prefix = "{% inventree_setting 'BUILDORDER_REFERENCE_PREFIX' %}";
+                    var prefix = "{% settings_value 'BUILDORDER_REFERENCE_PREFIX' %}";
 
                     if (prefix) {
                         value = `${prefix}${value}`;
diff --git a/InvenTree/templates/js/order.html b/InvenTree/templates/js/order.html
index 4dbfbefa13..0c958c65a2 100644
--- a/InvenTree/templates/js/order.html
+++ b/InvenTree/templates/js/order.html
@@ -139,7 +139,7 @@ function loadPurchaseOrderTable(table, options) {
                 title: '{% trans "Purchase Order" %}',
                 formatter: function(value, row, index, field) {
 
-                    var prefix = "{% inventree_setting 'PURCHASEORDER_REFERENCE_PREFIX' %}";
+                    var prefix = "{% settings_value 'PURCHASEORDER_REFERENCE_PREFIX' %}";
 
                     if (prefix) {
                         value = `${prefix}${value}`;
@@ -221,7 +221,7 @@ function loadSalesOrderTable(table, options) {
                 title: '{% trans "Sales Order" %}',
                 formatter: function(value, row, index, field) {
 
-                    var prefix = "{% inventree_setting 'SALESORDER_REFERENCE_PREFIX' %}";
+                    var prefix = "{% settings_value 'SALESORDER_REFERENCE_PREFIX' %}";
 
                     if (prefix) {
                         value = `${prefix}${value}`;