diff --git a/InvenTree/InvenTree/api_tester.py b/InvenTree/InvenTree/api_tester.py index 2ba4f0136c..e2bdae1d8f 100644 --- a/InvenTree/InvenTree/api_tester.py +++ b/InvenTree/InvenTree/api_tester.py @@ -18,6 +18,7 @@ class InvenTreeAPITestCase(APITestCase): email = 'test@testing.com' superuser = False + is_staff = True auto_login = True # Set list of roles automatically associated with the user @@ -40,8 +41,12 @@ class InvenTreeAPITestCase(APITestCase): if self.superuser: self.user.is_superuser = True - self.user.save() + if self.is_staff: + self.user.is_staff = True + + self.user.save() + for role in self.roles: self.assignRole(role) diff --git a/InvenTree/InvenTree/serializers.py b/InvenTree/InvenTree/serializers.py index f093255ff0..50a37d8cba 100644 --- a/InvenTree/InvenTree/serializers.py +++ b/InvenTree/InvenTree/serializers.py @@ -2,17 +2,19 @@ Serializers used in various InvenTree apps """ - # -*- coding: utf-8 -*- from __future__ import unicode_literals import os +from collections import OrderedDict + from django.conf import settings from django.contrib.auth.models import User from django.core.exceptions import ValidationError as DjangoValidationError from rest_framework import serializers +from rest_framework.utils import model_meta from rest_framework.fields import empty from rest_framework.exceptions import ValidationError @@ -42,6 +44,72 @@ class InvenTreeModelSerializer(serializers.ModelSerializer): but also ensures that the underlying model class data are checked on validation. """ + def __init__(self, instance=None, data=empty, **kwargs): + + self.instance = instance + + # If instance is None, we are creating a new instance + if instance is None: + + if data is empty: + data = OrderedDict() + else: + # Required to side-step immutability of a QueryDict + data = data.copy() + + # Add missing fields which have default values + ModelClass = self.Meta.model + + fields = model_meta.get_field_info(ModelClass) + + for field_name, field in fields.fields.items(): + + if field.has_default() and field_name not in data: + + value = field.default + + # Account for callable functions + if callable(value): + try: + value = value() + except: + continue + + data[field_name] = value + + super().__init__(instance, data, **kwargs) + + def get_initial(self): + """ + Construct initial data for the serializer. + Use the 'default' values specified by the django model definition + """ + + initials = super().get_initial() + + # Are we creating a new instance? + if self.instance is None: + ModelClass = self.Meta.model + + fields = model_meta.get_field_info(ModelClass) + + for field_name, field in fields.fields.items(): + + if field.has_default() and field_name not in initials: + + value = field.default + + # Account for callable functions + if callable(value): + try: + value = value() + except: + continue + + initials[field_name] = value + + return initials + def run_validation(self, data=empty): """ Perform serializer validation. In addition to running validators on the serializer fields, diff --git a/InvenTree/InvenTree/settings.py b/InvenTree/InvenTree/settings.py index be13411fd8..569c77a940 100644 --- a/InvenTree/InvenTree/settings.py +++ b/InvenTree/InvenTree/settings.py @@ -23,6 +23,7 @@ import moneyed import yaml from django.utils.translation import gettext_lazy as _ +from django.contrib.messages import constants as messages def _is_true(x): @@ -612,3 +613,9 @@ IMPORT_EXPORT_USE_TRANSACTIONS = True INTERNAL_IPS = [ '127.0.0.1', ] + +MESSAGE_TAGS = { + messages.SUCCESS: 'alert alert-block alert-success', + messages.ERROR: 'alert alert-block alert-danger', + messages.INFO: 'alert alert-block alert-info', +} diff --git a/InvenTree/InvenTree/static/css/inventree.css b/InvenTree/InvenTree/static/css/inventree.css index 706bc32327..70f4032afe 100644 --- a/InvenTree/InvenTree/static/css/inventree.css +++ b/InvenTree/InvenTree/static/css/inventree.css @@ -718,7 +718,7 @@ position:relative; height: auto !important; max-height: calc(100vh - 200px) !important; - overflow-y: scroll; + overflow-y: auto; padding: 10px; } diff --git a/InvenTree/InvenTree/status.py b/InvenTree/InvenTree/status.py index 93b904d55b..512c68e93b 100644 --- a/InvenTree/InvenTree/status.py +++ b/InvenTree/InvenTree/status.py @@ -61,21 +61,21 @@ def is_email_configured(): # Display warning unless in test mode if not settings.TESTING: - logger.warning("EMAIL_HOST is not configured") + logger.debug("EMAIL_HOST is not configured") if not settings.EMAIL_HOST_USER: configured = False # Display warning unless in test mode if not settings.TESTING: - logger.warning("EMAIL_HOST_USER is not configured") + logger.debug("EMAIL_HOST_USER is not configured") if not settings.EMAIL_HOST_PASSWORD: configured = False # Display warning unless in test mode if not settings.TESTING: - logger.warning("EMAIL_HOST_PASSWORD is not configured") + logger.debug("EMAIL_HOST_PASSWORD is not configured") return configured diff --git a/InvenTree/InvenTree/test_api.py b/InvenTree/InvenTree/test_api.py index c56412ea68..e37984e20d 100644 --- a/InvenTree/InvenTree/test_api.py +++ b/InvenTree/InvenTree/test_api.py @@ -77,7 +77,7 @@ class APITests(InvenTreeAPITestCase): self.assertIn('version', data) self.assertIn('instance', data) - self.assertEquals('InvenTree', data['server']) + self.assertEqual('InvenTree', data['server']) def test_role_view(self): """ diff --git a/InvenTree/common/files.py b/InvenTree/common/files.py index 377120f44d..f805ceaace 100644 --- a/InvenTree/common/files.py +++ b/InvenTree/common/files.py @@ -22,17 +22,19 @@ class FileManager: # Fields which are used for item matching (only one of them is needed) ITEM_MATCH_HEADERS = [] - + # Fields which would be helpful but are not required OPTIONAL_HEADERS = [] + OPTIONAL_MATCH_HEADERS = [] + EDITABLE_HEADERS = [] HEADERS = [] def __init__(self, file, name=None): """ Initialize the FileManager class with a user-uploaded file object """ - + # Set name if name: self.name = name @@ -71,47 +73,34 @@ class FileManager: raise ValidationError(_('Error reading file (incorrect dimension)')) except KeyError: raise ValidationError(_('Error reading file (data could be corrupted)')) - + return cleaned_data def process(self, file): """ Process file """ self.data = self.__class__.validate(file) - + def update_headers(self): """ Update headers """ - self.HEADERS = self.REQUIRED_HEADERS + self.ITEM_MATCH_HEADERS + self.OPTIONAL_HEADERS - + self.HEADERS = self.REQUIRED_HEADERS + self.ITEM_MATCH_HEADERS + self.OPTIONAL_MATCH_HEADERS + self.OPTIONAL_HEADERS + def setup(self): - """ Setup headers depending on the file name """ + """ + Setup headers + should be overriden in usage to set the Different Headers + """ if not self.name: return - if self.name == 'order': - self.REQUIRED_HEADERS = [ - 'Quantity', - ] - - self.ITEM_MATCH_HEADERS = [ - 'Manufacturer_MPN', - 'Supplier_SKU', - ] - - self.OPTIONAL_HEADERS = [ - 'Purchase_Price', - 'Reference', - 'Notes', - ] - - # Update headers - self.update_headers() + # Update headers + self.update_headers() def guess_header(self, header, threshold=80): """ Try to match a header (from the file) to a list of known headers - + Args: header - Header name to look for threshold - Match threshold for fuzzy search @@ -145,7 +134,7 @@ class FileManager: return matches[0]['header'] return None - + def columns(self): """ Return a list of headers for the thingy """ headers = [] diff --git a/InvenTree/common/forms.py b/InvenTree/common/forms.py index f161c8cc01..4a2a1601aa 100644 --- a/InvenTree/common/forms.py +++ b/InvenTree/common/forms.py @@ -8,12 +8,7 @@ from __future__ import unicode_literals from django import forms from django.utils.translation import gettext as _ -from djmoney.forms.fields import MoneyField - from InvenTree.forms import HelperForm -from InvenTree.helpers import clean_decimal - -from common.settings import currency_code_default from .files import FileManager from .models import InvenTreeSetting @@ -32,7 +27,7 @@ class SettingEditForm(HelperForm): ] -class UploadFile(forms.Form): +class UploadFileForm(forms.Form): """ Step 1 of FileManagementFormView """ file = forms.FileField( @@ -70,9 +65,9 @@ class UploadFile(forms.Form): return file -class MatchField(forms.Form): +class MatchFieldForm(forms.Form): """ Step 2 of FileManagementFormView """ - + def __init__(self, *args, **kwargs): # Get FileManager @@ -88,7 +83,7 @@ class MatchField(forms.Form): columns = file_manager.columns() # Get headers choices headers_choices = [(header, header) for header in file_manager.HEADERS] - + # Create column fields for col in columns: field_name = col['name'] @@ -103,9 +98,9 @@ class MatchField(forms.Form): self.fields[field_name].initial = col['guess'] -class MatchItem(forms.Form): +class MatchItemForm(forms.Form): """ Step 3 of FileManagementFormView """ - + def __init__(self, *args, **kwargs): # Get FileManager @@ -131,24 +126,41 @@ class MatchItem(forms.Form): for col in row['data']: # Get column matching col_guess = col['column'].get('guess', None) + # Set field name + field_name = col_guess.lower() + '-' + str(row['index']) + + # check if field def was overriden + overriden_field = self.get_special_field(col_guess, row, file_manager) + if overriden_field: + self.fields[field_name] = overriden_field # Create input for required headers - if col_guess in file_manager.REQUIRED_HEADERS: - # Set field name - field_name = col_guess.lower() + '-' + str(row['index']) + elif col_guess in file_manager.REQUIRED_HEADERS: + # Get value + value = row.get(col_guess.lower(), '') # Set field input box - if 'quantity' in col_guess.lower(): - self.fields[field_name] = forms.CharField( - required=False, - widget=forms.NumberInput(attrs={ - 'name': 'quantity' + str(row['index']), - 'class': 'numberinput', # form-control', - 'type': 'number', - 'min': '0', - 'step': 'any', - 'value': clean_decimal(row.get('quantity', '')), - }) - ) + self.fields[field_name] = forms.CharField( + required=True, + initial=value, + ) + + # Create item selection box + elif col_guess in file_manager.OPTIONAL_MATCH_HEADERS: + # Get item options + item_options = [(option.id, option) for option in row['match_options_' + col_guess]] + # Get item match + item_match = row['match_' + col_guess] + # Set field select box + self.fields[field_name] = forms.ChoiceField( + choices=[('', '-' * 10)] + item_options, + required=False, + widget=forms.Select(attrs={ + 'class': 'select bomselect', + }) + ) + # Update select box when match was found + if item_match: + self.fields[field_name].initial = item_match.id # Create item selection box elif col_guess in file_manager.ITEM_MATCH_HEADERS: @@ -176,22 +188,15 @@ class MatchItem(forms.Form): # Optional entries elif col_guess in file_manager.OPTIONAL_HEADERS: - # Set field name - field_name = col_guess.lower() + '-' + str(row['index']) # Get value value = row.get(col_guess.lower(), '') # Set field input box - if 'price' in col_guess.lower(): - self.fields[field_name] = MoneyField( - label=_(col_guess), - default_currency=currency_code_default(), - decimal_places=5, - max_digits=19, - required=False, - default_amount=clean_decimal(value), - ) - else: - self.fields[field_name] = forms.CharField( - required=False, - initial=value, - ) + self.fields[field_name] = forms.CharField( + required=False, + initial=value, + ) + + def get_special_field(self, col_guess, row, file_manager): + """ Function to be overriden in inherited forms to add specific form settings """ + + return None diff --git a/InvenTree/common/models.py b/InvenTree/common/models.py index b78fe1c2bf..ddd27b734e 100644 --- a/InvenTree/common/models.py +++ b/InvenTree/common/models.py @@ -205,6 +205,13 @@ class InvenTreeSetting(models.Model): 'validator': bool, }, + 'PART_SHOW_IMPORT': { + 'name': _('Show Import in Views'), + 'description': _('Display the import wizard in some part views'), + 'default': False, + 'validator': bool, + }, + 'PART_SHOW_PRICE_IN_FORMS': { 'name': _('Show Price in Forms'), 'description': _('Display part price in some forms'), diff --git a/InvenTree/common/views.py b/InvenTree/common/views.py index 857b6b2c51..f953dffa81 100644 --- a/InvenTree/common/views.py +++ b/InvenTree/common/views.py @@ -13,8 +13,9 @@ from django.conf import settings from django.core.files.storage import FileSystemStorage from formtools.wizard.views import SessionWizardView +from crispy_forms.helper import FormHelper -from InvenTree.views import AjaxUpdateView +from InvenTree.views import AjaxUpdateView, AjaxView from InvenTree.helpers import str2bool from . import models @@ -117,7 +118,6 @@ class MultiStepFormView(SessionWizardView): form_steps_description: description for each form """ - form_list = [] form_steps_template = [] form_steps_description = [] file_manager = None @@ -126,10 +126,10 @@ class MultiStepFormView(SessionWizardView): def __init__(self, *args, **kwargs): """ Override init method to set media folder """ - super().__init__(*args, **kwargs) + super().__init__(**kwargs) self.process_media_folder() - + def process_media_folder(self): """ Process media folder """ @@ -141,7 +141,7 @@ class MultiStepFormView(SessionWizardView): def get_template_names(self): """ Select template """ - + try: # Get template template = self.form_steps_template[self.steps.index] @@ -152,7 +152,7 @@ class MultiStepFormView(SessionWizardView): def get_context_data(self, **kwargs): """ Update context data """ - + # Retrieve current context context = super().get_context_data(**kwargs) @@ -176,9 +176,9 @@ class FileManagementFormView(MultiStepFormView): name = None form_list = [ - ('upload', forms.UploadFile), - ('fields', forms.MatchField), - ('items', forms.MatchItem), + ('upload', forms.UploadFileForm), + ('fields', forms.MatchFieldForm), + ('items', forms.MatchItemForm), ] form_steps_description = [ _("Upload File"), @@ -188,11 +188,26 @@ class FileManagementFormView(MultiStepFormView): media_folder = 'file_upload/' extra_context_data = {} - def get_context_data(self, form, **kwargs): + def __init__(self, *args, **kwargs): + """ Initialize the FormView """ + + # Perform all checks and inits for MultiStepFormView + super().__init__(self, *args, **kwargs) + + # Check for file manager class + if not hasattr(self, 'file_manager_class') and not issubclass(self.file_manager_class, FileManager): + raise NotImplementedError('A subclass of a file manager class needs to be set!') + + def get_context_data(self, form=None, **kwargs): + """ Handle context data """ + + if form is None: + form = self.get_form() + context = super().get_context_data(form=form, **kwargs) if self.steps.current in ('fields', 'items'): - + # Get columns and row data self.columns = self.file_manager.columns() self.rows = self.file_manager.rows() @@ -203,7 +218,7 @@ class FileManagementFormView(MultiStepFormView): elif self.steps.current == 'items': # Set form table data self.set_form_table_data(form=form) - + # Update context context.update({'rows': self.rows}) context.update({'columns': self.columns}) @@ -227,7 +242,7 @@ class FileManagementFormView(MultiStepFormView): # Get file file = upload_files.get('upload-file', None) if file: - self.file_manager = FileManager(file=file, name=self.name) + self.file_manager = self.file_manager_class(file=file, name=self.name) def get_form_kwargs(self, step=None): """ Update kwargs to dynamically build forms """ @@ -262,13 +277,22 @@ class FileManagementFormView(MultiStepFormView): self.get_form_table_data(data) self.set_form_table_data() self.get_field_selection() - + kwargs['row_data'] = self.rows return kwargs - + return super().get_form_kwargs() + def get_form(self, step=None, data=None, files=None): + """ add crispy-form helper to form """ + form = super().get_form(step=step, data=data, files=files) + + form.helper = FormHelper() + form.helper.form_show_labels = False + + return form + def get_form_table_data(self, form_data): """ Extract table cell data from form data and fields. These data are used to maintain state between sessions. @@ -327,7 +351,7 @@ class FileManagementFormView(MultiStepFormView): col_id = int(s[3]) except ValueError: continue - + if row_id not in self.row_data: self.row_data[row_id] = {} @@ -362,19 +386,20 @@ class FileManagementFormView(MultiStepFormView): 'name': self.column_names[idx], 'guess': self.column_selections[idx], } - + cell_data = { 'cell': item, 'idx': idx, 'column': column_data, } data.append(cell_data) - + row = { 'index': row_idx, 'data': data, 'errors': {}, } + self.rows.append(row) # In the item selection step: update row data with mapping to form fields @@ -414,6 +439,33 @@ class FileManagementFormView(MultiStepFormView): """ pass + def get_clean_items(self): + """ returns dict with all cleaned values """ + items = {} + + for form_key, form_value in self.get_all_cleaned_data().items(): + # Split key from row value + try: + (field, idx) = form_key.split('-') + except ValueError: + continue + + try: + if idx not in items: + # Insert into items + items.update({ + idx: { + self.form_field_map[field]: form_value, + } + }) + else: + # Update items + items[idx][self.form_field_map[field]] = form_value + except KeyError: + pass + + return items + def check_field_selection(self, form): """ Check field matching """ @@ -431,7 +483,7 @@ class FileManagementFormView(MultiStepFormView): if col in self.column_selections.values(): part_match_found = True break - + # If not, notify user if not part_match_found: for col in self.file_manager.ITEM_MATCH_HEADERS: @@ -451,7 +503,7 @@ class FileManagementFormView(MultiStepFormView): n = list(self.column_selections.values()).count(self.column_selections[col]) if n > 1 and self.column_selections[col] not in duplicates: duplicates.append(self.column_selections[col]) - + # Store extra context data self.extra_context_data = { 'missing_columns': missing_columns, @@ -497,3 +549,70 @@ class FileManagementFormView(MultiStepFormView): return self.render(form) return super().post(*args, **kwargs) + + +class FileManagementAjaxView(AjaxView): + """ Use a FileManagementFormView as base for a AjaxView + Inherit this class before inheriting the base FileManagementFormView + + ajax_form_steps_template: templates for rendering ajax + validate: function to validate the current form -> normally point to the same function in the base FileManagementFormView + """ + + def post(self, request): + # check if back-step button was selected + wizard_back = self.request.POST.get('act-btn_back', None) + if wizard_back: + back_step_index = self.get_step_index() - 1 + self.storage.current_step = list(self.get_form_list().keys())[back_step_index] + return self.renderJsonResponse(request, data={'form_valid': None}) + + # validate form + form = self.get_form(data=self.request.POST, files=self.request.FILES) + form_valid = self.validate(self.steps.current, form) + + # check if valid + if not form_valid: + return self.renderJsonResponse(request, data={'form_valid': None}) + + # store the cleaned data and files. + self.storage.set_step_data(self.steps.current, self.process_step(form)) + self.storage.set_step_files(self.steps.current, self.process_step_files(form)) + + # check if the current step is the last step + if self.steps.current == self.steps.last: + # call done - to process data, returned response is not used + self.render_done(form) + data = {'form_valid': True, 'success': _('Parts imported')} + return self.renderJsonResponse(request, data=data) + else: + self.storage.current_step = self.steps.next + + return self.renderJsonResponse(request, data={'form_valid': None}) + + def get(self, request): + if 'reset' in request.GET: + # reset form + self.storage.reset() + self.storage.current_step = self.steps.first + return self.renderJsonResponse(request) + + def renderJsonResponse(self, request, form=None, data={}, context=None): + """ always set the right templates before rendering """ + self.setTemplate() + return super().renderJsonResponse(request, form=form, data=data, context=context) + + def get_data(self): + data = super().get_data() + data['hideErrorMessage'] = '1' # hide the error + buttons = [{'name': 'back', 'title': _('Previous Step')}] if self.get_step_index() > 0 else [] + data['buttons'] = buttons # set buttons + return data + + def setTemplate(self): + """ set template name and title """ + self.ajax_template_name = self.ajax_form_steps_template[self.get_step_index()] + self.ajax_form_title = self.form_steps_description[self.get_step_index()] + + def validate(self, obj, form, **kwargs): + raise NotImplementedError('This function needs to be overridden!') diff --git a/InvenTree/company/templates/company/company_base.html b/InvenTree/company/templates/company/company_base.html index 70af753d66..a276f5df4f 100644 --- a/InvenTree/company/templates/company/company_base.html +++ b/InvenTree/company/templates/company/company_base.html @@ -144,7 +144,12 @@ label: 'image', method: 'PATCH', success: function(data, status, xhr) { - location.reload(); + + if (data.image) { + $('#company-image').attr('src', data.image); + } else { + location.reload(); + } } } ); diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po index 9eeedee291..3ce90dc928 100644 --- a/InvenTree/locale/de/LC_MESSAGES/django.po +++ b/InvenTree/locale/de/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-06-16 22:40+0000\n" -"PO-Revision-Date: 2021-06-16 22:41\n" +"POT-Creation-Date: 2021-06-24 21:38+0000\n" +"PO-Revision-Date: 2021-06-24 21:40\n" "Last-Translator: \n" "Language-Team: German\n" "Language: de_DE\n" @@ -77,7 +77,7 @@ msgstr "Kategorie auswählen" msgid "Duplicate serial: {n}" msgstr "Doppelte Seriennummer: {n}" -#: InvenTree/helpers.py:384 order/models.py:247 order/models.py:357 +#: InvenTree/helpers.py:384 order/models.py:248 order/models.py:358 #: stock/views.py:1795 msgid "Invalid quantity provided" msgstr "Keine gültige Menge" @@ -122,9 +122,9 @@ msgstr "Kommentar" msgid "File comment" msgstr "Datei-Kommentar" -#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1999 +#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:2022 #: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/stock.js:1154 +#: templates/js/stock.js:1179 msgid "User" msgstr "Benutzer" @@ -132,34 +132,35 @@ msgstr "Benutzer" msgid "upload date" msgstr "Hochladedatum" -#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102 -#: part/models.py:686 part/models.py:2140 part/templates/part/params.html:27 -#: report/models.py:179 templates/InvenTree/search.html:137 -#: templates/InvenTree/search.html:289 templates/js/part.js:118 -#: templates/js/part.js:641 templates/js/stock.js:947 +#: InvenTree/models.py:107 InvenTree/models.py:108 company/models.py:396 +#: label/models.py:102 part/models.py:671 part/models.py:2163 +#: part/templates/part/params.html:27 report/models.py:180 +#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289 +#: templates/js/company.js:235 templates/js/part.js:118 +#: templates/js/part.js:642 templates/js/stock.js:972 msgid "Name" msgstr "Name" #: InvenTree/models.py:114 build/models.py:135 #: build/templates/build/detail.html:21 company/models.py:339 -#: company/models.py:491 company/templates/company/detail.html:27 +#: company/models.py:532 company/templates/company/detail.html:27 #: company/templates/company/manufacturer_part_base.html:72 #: company/templates/company/supplier_part_base.html:71 #: company/templates/company/supplier_part_detail.html:31 label/models.py:109 -#: order/models.py:103 order/templates/order/purchase_order_detail.html:147 -#: part/models.py:710 part/templates/part/detail.html:54 -#: part/templates/part/set_category.html:14 report/models.py:192 -#: report/models.py:505 report/models.py:544 +#: order/models.py:104 order/templates/order/purchase_order_detail.html:147 +#: part/models.py:695 part/templates/part/detail.html:54 +#: part/templates/part/set_category.html:14 report/models.py:193 +#: report/models.py:530 report/models.py:569 #: report/templates/report/inventree_build_order_base.html:118 #: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224 #: templates/InvenTree/search.html:296 #: templates/InvenTree/settings/header.html:9 templates/js/bom.js:190 -#: templates/js/build.js:746 templates/js/build.js:1014 +#: templates/js/build.js:833 templates/js/build.js:1101 #: templates/js/company.js:56 templates/js/order.js:183 #: templates/js/order.js:280 templates/js/part.js:177 templates/js/part.js:260 -#: templates/js/part.js:437 templates/js/part.js:653 templates/js/part.js:721 -#: templates/js/stock.js:552 templates/js/stock.js:959 -#: templates/js/stock.js:1004 +#: templates/js/part.js:437 templates/js/part.js:654 templates/js/part.js:722 +#: templates/js/stock.js:557 templates/js/stock.js:984 +#: templates/js/stock.js:1029 msgid "Description" msgstr "Beschreibung" @@ -191,15 +192,15 @@ msgstr "Polnisch" msgid "Turkish" msgstr "Türkisch" -#: InvenTree/status.py:93 +#: InvenTree/status.py:94 msgid "Background worker check failed" msgstr "Hintergrund-Prozess-Kontrolle fehlgeschlagen" -#: InvenTree/status.py:97 +#: InvenTree/status.py:98 msgid "Email backend not configured" msgstr "E-Mail-Backend nicht konfiguriert" -#: InvenTree/status.py:100 +#: InvenTree/status.py:101 msgid "InvenTree system health checks failed" msgstr "InvenTree Status-Überprüfung fehlgeschlagen" @@ -372,27 +373,27 @@ 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:605 +#: InvenTree/views.py:608 msgid "Delete Item" msgstr "Element löschen" -#: InvenTree/views.py:654 +#: InvenTree/views.py:657 msgid "Check box to confirm item deletion" msgstr "Häkchen setzen um Löschung von Objekt zu bestätigen" -#: InvenTree/views.py:669 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:672 templates/InvenTree/settings/user.html:18 msgid "Edit User Information" msgstr "Benutzerinformationen bearbeiten" -#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:683 templates/InvenTree/settings/user.html:22 msgid "Set Password" msgstr "Passwort eingeben" -#: InvenTree/views.py:699 +#: InvenTree/views.py:702 msgid "Password fields must match" msgstr "Passwörter stimmen nicht überein" -#: InvenTree/views.py:950 templates/navbar.html:95 +#: InvenTree/views.py:953 templates/navbar.html:95 msgid "System Information" msgstr "Systeminformationen" @@ -445,11 +446,11 @@ msgid "Order target date" msgstr "geplantes Bestelldatum" #: build/forms.py:42 build/templates/build/build_base.html:146 -#: build/templates/build/detail.html:121 order/forms.py:109 order/forms.py:144 +#: build/templates/build/detail.html:121 order/forms.py:114 order/forms.py:149 #: order/templates/order/order_base.html:124 #: order/templates/order/sales_order_base.html:119 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/build.js:793 templates/js/order.js:200 +#: templates/js/build.js:880 templates/js/order.js:200 #: templates/js/order.js:298 msgid "Target Date" msgstr "Zieldatum" @@ -462,22 +463,21 @@ msgstr "Zieldatum für Bauauftrag-Fertigstellung." #: build/templates/build/allocation_card.html:23 #: build/templates/build/auto_allocate.html:17 #: build/templates/build/build_base.html:133 -#: build/templates/build/detail.html:31 common/models.py:699 -#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77 -#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262 -#: order/forms.py:279 order/models.py:616 order/models.py:817 +#: build/templates/build/detail.html:31 common/models.py:720 +#: company/forms.py:191 company/templates/company/supplier_part_pricing.html:77 +#: order/forms.py:193 order/forms.py:211 order/forms.py:246 order/forms.py:268 +#: order/forms.py:285 order/models.py:617 order/models.py:841 #: order/templates/order/order_wizard/match_parts.html:29 -#: order/templates/order/order_wizard/select_parts.html:32 +#: order/templates/order/order_wizard/select_parts.html:34 #: order/templates/order/purchase_order_detail.html:179 #: order/templates/order/sales_order_detail.html:70 #: order/templates/order/sales_order_detail.html:77 #: order/templates/order/sales_order_detail.html:162 -#: order/templates/order/sales_order_detail.html:230 part/forms.py:342 -#: part/forms.py:372 part/forms.py:388 part/models.py:2270 -#: part/templates/part/allocation.html:19 -#: part/templates/part/allocation.html:53 -#: part/templates/part/order_prices.html:175 -#: part/templates/part/part_pricing.html:13 +#: order/templates/order/sales_order_detail.html:234 part/forms.py:342 +#: part/forms.py:372 part/forms.py:388 part/forms.py:404 part/models.py:2293 +#: part/templates/part/internal_prices.html:98 +#: part/templates/part/order_prices.html:202 +#: part/templates/part/part_pricing.html:16 #: part/templates/part/sale_prices.html:85 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -486,9 +486,10 @@ msgstr "Zieldatum für Bauauftrag-Fertigstellung." #: stock/forms.py:175 stock/forms.py:308 #: stock/templates/stock/item_base.html:255 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364 -#: templates/js/bom.js:205 templates/js/build.js:486 templates/js/build.js:1024 -#: templates/js/part.js:795 templates/js/stock.js:1139 -#: templates/js/stock.js:1358 +#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:571 +#: templates/js/build.js:1111 templates/js/order.js:393 +#: templates/js/part.js:796 templates/js/stock.js:1164 +#: templates/js/stock.js:1383 msgid "Quantity" msgstr "Anzahl" @@ -500,7 +501,7 @@ msgstr "Anzahl der zu bauenden Teile" msgid "Enter quantity for build output" msgstr "Menge der Endprodukte angeben" -#: build/forms.py:95 order/forms.py:234 stock/forms.py:118 +#: build/forms.py:95 order/forms.py:240 stock/forms.py:118 msgid "Serial Numbers" msgstr "Seriennummer" @@ -529,12 +530,12 @@ msgid "Mark build as complete" msgstr "Bauauftrag als vollständig markieren" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 -#: order/forms.py:82 stock/forms.py:347 -#: stock/templates/stock/item_base.html:285 +#: stock/forms.py:347 stock/templates/stock/item_base.html:285 #: stock/templates/stock/stock_adjust.html:17 #: templates/InvenTree/search.html:260 templates/js/barcode.js:363 -#: templates/js/barcode.js:531 templates/js/build.js:500 -#: templates/js/stock.js:639 templates/js/stock.js:1031 +#: templates/js/barcode.js:531 templates/js/build.js:218 +#: templates/js/build.js:585 templates/js/order.js:378 +#: templates/js/stock.js:643 templates/js/stock.js:1056 msgid "Location" msgstr "Lagerort" @@ -543,13 +544,13 @@ msgid "Location of completed parts" msgstr "Lagerort der Endprodukte" #: build/forms.py:215 build/templates/build/build_base.html:138 -#: build/templates/build/detail.html:59 order/models.py:468 +#: build/templates/build/detail.html:59 order/models.py:469 #: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:403 templates/InvenTree/search.html:252 -#: templates/js/barcode.js:119 templates/js/build.js:780 +#: stock/templates/stock/item_base.html:408 templates/InvenTree/search.html:252 +#: templates/js/barcode.js:119 templates/js/build.js:867 #: templates/js/order.js:187 templates/js/order.js:285 -#: templates/js/stock.js:626 templates/js/stock.js:1108 -#: templates/js/stock.js:1374 +#: templates/js/stock.js:630 templates/js/stock.js:1133 +#: templates/js/stock.js:1399 msgid "Status" msgstr "Status" @@ -583,16 +584,16 @@ msgstr "Menge der BestandsObjekte für Zuordnung auswählen" #: build/models.py:66 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:73 -#: part/templates/part/allocation.html:23 #: report/templates/report/inventree_build_order_base.html:106 +#: templates/js/build.js:195 msgid "Build Order" msgstr "Bauauftrag" #: build/models.py:67 build/templates/build/index.html:8 #: build/templates/build/index.html:15 order/templates/order/so_builds.html:12 #: order/templates/order/so_navbar.html:19 -#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:55 -#: part/templates/part/navbar.html:58 templates/InvenTree/index.html:183 +#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:57 +#: part/templates/part/navbar.html:60 templates/InvenTree/index.html:183 #: templates/InvenTree/search.html:185 #: templates/InvenTree/settings/tabs.html:34 users/models.py:43 msgid "Build Orders" @@ -602,12 +603,12 @@ msgstr "Bauaufträge" msgid "Build Order Reference" msgstr "Bauauftragsreferenz" -#: build/models.py:128 order/models.py:101 order/models.py:618 +#: build/models.py:128 order/models.py:102 order/models.py:619 #: order/templates/order/purchase_order_detail.html:174 -#: order/templates/order/sales_order_detail.html:225 part/models.py:2279 +#: order/templates/order/sales_order_detail.html:229 part/models.py:2302 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197 -#: templates/js/build.js:575 templates/js/build.js:1018 +#: templates/js/build.js:660 templates/js/build.js:1105 msgid "Reference" msgstr "Referenz" @@ -626,27 +627,27 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist" #: build/models.py:153 build/templates/build/auto_allocate.html:16 #: build/templates/build/build_base.html:128 -#: build/templates/build/detail.html:26 company/models.py:622 -#: order/models.py:660 order/models.py:693 -#: order/templates/order/order_wizard/select_parts.html:30 +#: build/templates/build/detail.html:26 company/models.py:663 +#: order/models.py:661 order/models.py:717 +#: order/templates/order/order_wizard/select_parts.html:32 #: order/templates/order/purchase_order_detail.html:132 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:213 part/models.py:321 -#: part/models.py:1967 part/models.py:1979 part/models.py:1997 -#: part/models.py:2072 part/models.py:2168 part/models.py:2254 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29 +#: order/templates/order/sales_order_detail.html:214 part/models.py:321 +#: part/models.py:1975 part/models.py:1987 part/models.py:2002 +#: part/models.py:2020 part/models.py:2095 part/models.py:2191 +#: part/models.py:2277 part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 part/templates/part/related.html:29 #: part/templates/part/set_category.html:13 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 #: templates/InvenTree/search.html:112 templates/InvenTree/search.html:210 #: templates/js/barcode.js:362 templates/js/bom.js:163 -#: templates/js/build.js:466 templates/js/build.js:751 -#: templates/js/build.js:991 templates/js/company.js:140 -#: templates/js/company.js:238 templates/js/part.js:241 -#: templates/js/part.js:404 templates/js/stock.js:521 -#: templates/js/stock.js:1346 +#: templates/js/build.js:551 templates/js/build.js:838 +#: templates/js/build.js:1078 templates/js/company.js:140 +#: templates/js/company.js:339 templates/js/part.js:241 +#: templates/js/part.js:404 templates/js/stock.js:526 +#: templates/js/stock.js:1371 msgid "Part" msgstr "Teil" @@ -710,16 +711,16 @@ msgstr "Losnummer" msgid "Batch code for this build output" msgstr "Losnummer für dieses Endprodukt" -#: build/models.py:220 order/models.py:107 part/models.py:882 +#: build/models.py:220 order/models.py:108 part/models.py:867 #: part/templates/part/detail.html:126 templates/js/order.js:293 msgid "Creation Date" msgstr "Erstelldatum" -#: build/models.py:224 order/models.py:474 +#: build/models.py:224 order/models.py:475 msgid "Target completion date" msgstr "geplantes Fertigstellungsdatum" -#: build/models.py:228 order/models.py:220 templates/js/build.js:798 +#: build/models.py:228 order/models.py:221 templates/js/build.js:885 msgid "Completion Date" msgstr "Fertigstellungsdatum" @@ -736,9 +737,9 @@ msgid "User who issued this build order" msgstr "Nutzer der diesen Bauauftrag erstellt hat" #: build/models.py:251 build/templates/build/build_base.html:184 -#: build/templates/build/detail.html:105 order/models.py:121 +#: build/templates/build/detail.html:105 order/models.py:122 #: order/templates/order/order_base.html:138 -#: order/templates/order/sales_order_base.html:140 part/models.py:886 +#: order/templates/order/sales_order_base.html:140 part/models.py:871 #: report/templates/report/inventree_build_order_base.html:159 msgid "Responsible" msgstr "Verantwortlicher Benutzer" @@ -757,26 +758,26 @@ msgstr "Nutzer der für diesen Bauauftrag zuständig ist" msgid "External Link" msgstr "Externer Link" -#: build/models.py:258 part/models.py:744 stock/models.py:462 +#: build/models.py:258 part/models.py:729 stock/models.py:462 msgid "Link to external URL" msgstr "Link zu einer externen URL" #: build/models.py:262 build/templates/build/navbar.html:53 -#: company/models.py:132 company/models.py:498 +#: company/models.py:132 company/models.py:539 #: company/templates/company/navbar.html:70 -#: company/templates/company/navbar.html:73 order/models.py:125 -#: order/models.py:620 order/templates/order/po_navbar.html:29 -#: order/templates/order/po_navbar.html:32 -#: order/templates/order/purchase_order_detail.html:239 -#: order/templates/order/sales_order_detail.html:278 +#: company/templates/company/navbar.html:73 order/models.py:126 +#: order/models.py:621 order/templates/order/po_navbar.html:38 +#: order/templates/order/po_navbar.html:41 +#: order/templates/order/purchase_order_detail.html:243 +#: order/templates/order/sales_order_detail.html:309 #: order/templates/order/so_navbar.html:33 -#: order/templates/order/so_navbar.html:36 part/models.py:871 -#: part/templates/part/navbar.html:134 +#: order/templates/order/so_navbar.html:36 part/models.py:856 +#: part/templates/part/navbar.html:142 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377 #: stock/models.py:532 stock/models.py:1667 stock/models.py:1769 #: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37 -#: templates/js/bom.js:356 templates/js/stock.js:141 templates/js/stock.js:674 +#: templates/js/bom.js:356 templates/js/stock.js:141 templates/js/stock.js:699 msgid "Notes" msgstr "Notizen" @@ -809,11 +810,11 @@ msgstr "Bauauftragsposition muss ein Endprodukt festlegen, da der übergeordnete msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "Reserviermenge ({n}) muss kleiner Bestandsmenge ({q}) sein. Zugewiesene Anzahl ({n}) darf nicht die verfügbare ({q}) Anzahl überschreiten" -#: build/models.py:1188 order/models.py:791 +#: build/models.py:1188 order/models.py:815 msgid "StockItem is over-allocated" msgstr "Zu viele BestandsObjekt zugewiesen" -#: build/models.py:1192 order/models.py:794 +#: build/models.py:1192 order/models.py:818 msgid "Allocation quantity must be greater than zero" msgstr "Reserviermenge muss größer null sein" @@ -827,7 +828,7 @@ msgid "Selected stock item not found in BOM for part '{p}'" msgstr "Ausgewähltes BestandsObjekt nicht Stückliste für Teil '{p}' gefunden" #: build/models.py:1316 stock/templates/stock/item_base.html:317 -#: templates/InvenTree/search.html:183 templates/js/build.js:724 +#: templates/InvenTree/search.html:183 templates/js/build.js:811 #: templates/navbar.html:29 msgid "Build" msgstr "Bauauftrag" @@ -836,15 +837,13 @@ msgstr "Bauauftrag" msgid "Build to allocate parts" msgstr "Bauauftrag starten um Teile zuzuweisen" -#: build/models.py:1333 part/templates/part/allocation.html:18 -#: part/templates/part/allocation.html:24 -#: part/templates/part/allocation.html:31 -#: part/templates/part/allocation.html:49 -#: stock/templates/stock/item_base.html:8 +#: build/models.py:1333 stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:31 #: stock/templates/stock/item_base.html:339 -#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:841 -#: templates/js/stock.js:1090 +#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:206 +#: templates/js/build.js:211 templates/js/build.js:928 +#: templates/js/order.js:366 templates/js/order.js:371 +#: templates/js/stock.js:1115 msgid "Stock Item" msgstr "BestandsObjekt" @@ -880,7 +879,7 @@ msgstr "Lagerbestand Bauauftrag zuweisen" msgid "Auto Allocate" msgstr "Automatisch zuweisen" -#: build/templates/build/allocate.html:25 templates/js/build.js:656 +#: build/templates/build/allocate.html:25 templates/js/build.js:743 msgid "Unallocate stock" msgstr "Bestandszuordnung aufheben" @@ -917,15 +916,15 @@ msgstr "Dieser Bauauftrag hat keine zugeordneten Stücklisten-Einträge" #: order/templates/order/sales_order_detail.html:160 #: report/templates/report/inventree_test_report_base.html:75 #: stock/models.py:454 stock/templates/stock/item_base.html:249 -#: templates/js/build.js:484 +#: templates/js/build.js:569 msgid "Serial Number" msgstr "Seriennummer" #: build/templates/build/attachments.html:12 #: build/templates/build/navbar.html:43 build/templates/build/navbar.html:46 -#: order/templates/order/po_navbar.html:26 -#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:125 -#: part/templates/part/navbar.html:128 stock/templates/stock/navbar.html:47 +#: order/templates/order/po_navbar.html:35 +#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:133 +#: part/templates/part/navbar.html:136 stock/templates/stock/navbar.html:47 #: stock/templates/stock/navbar.html:50 msgid "Attachments" msgstr "Anhänge" @@ -1037,11 +1036,10 @@ msgid "Progress" msgstr "Fortschritt" #: build/templates/build/build_base.html:170 -#: build/templates/build/detail.html:84 order/models.py:691 +#: build/templates/build/detail.html:84 order/models.py:715 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:35 #: order/templates/order/sales_order_ship.html:25 -#: part/templates/part/allocation.html:30 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 #: stock/templates/stock/item_base.html:279 templates/js/order.js:245 @@ -1185,7 +1183,10 @@ msgstr "Ausgangs-Lager" msgid "Stock can be taken from any available location." msgstr "Bestand kann jedem verfügbaren Lagerort entnommen werden." -#: build/templates/build/detail.html:46 stock/forms.py:169 stock/forms.py:375 +#: build/templates/build/detail.html:46 order/forms.py:85 order/models.py:678 +#: order/templates/order/purchase_order_detail.html:239 +#: order/templates/order/receive_parts.html:25 stock/forms.py:169 +#: stock/forms.py:375 msgid "Destination" msgstr "Ziel-Lager" @@ -1194,15 +1195,15 @@ msgid "Destination location not specified" msgstr "Ziel-Lagerort nicht angegeben" #: build/templates/build/detail.html:70 -#: stock/templates/stock/item_base.html:303 templates/js/stock.js:634 -#: templates/js/stock.js:1381 templates/js/table_filters.js:112 +#: stock/templates/stock/item_base.html:303 templates/js/stock.js:638 +#: templates/js/stock.js:1406 templates/js/table_filters.js:112 #: templates/js/table_filters.js:206 msgid "Batch" msgstr "Losnummer" #: build/templates/build/detail.html:116 #: order/templates/order/order_base.html:111 -#: order/templates/order/sales_order_base.html:113 templates/js/build.js:788 +#: order/templates/order/sales_order_base.html:113 templates/js/build.js:875 msgid "Created" msgstr "Erstellt" @@ -1210,7 +1211,7 @@ msgstr "Erstellt" msgid "No target date set" msgstr "Kein Ziel-Datum gesetzt" -#: build/templates/build/detail.html:132 templates/js/build.js:766 +#: build/templates/build/detail.html:132 templates/js/build.js:853 msgid "Completed" msgstr "Fertig" @@ -1248,9 +1249,9 @@ msgstr "Bauauftrag-details" #: build/templates/build/navbar.html:15 #: company/templates/company/navbar.html:15 -#: order/templates/order/po_navbar.html:14 -#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15 -#: templates/js/stock.js:1019 +#: order/templates/order/po_navbar.html:15 +#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:17 +#: templates/js/stock.js:1044 msgid "Details" msgstr "Details" @@ -1285,8 +1286,8 @@ msgstr "Bermerkungen bearbeiten" #: build/templates/build/notes.html:26 company/templates/company/notes.html:24 #: order/templates/order/order_notes.html:27 #: order/templates/order/sales_order_notes.html:29 -#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:482 -#: stock/templates/stock/item_base.html:492 +#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:487 +#: stock/templates/stock/item_base.html:497 #: stock/templates/stock/item_notes.html:26 msgid "Save" msgstr "Speichern" @@ -1411,8 +1412,8 @@ msgstr "Teil muss aktuell im Bestand sein" msgid "Stock item is over-allocated" msgstr "BestandObjekt ist zu oft zugewiesen" -#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:585 -#: templates/js/build.js:848 templates/js/build.js:1031 +#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:670 +#: templates/js/build.js:935 templates/js/build.js:1118 msgid "Available" msgstr "Verfügbar" @@ -1598,8 +1599,8 @@ msgstr "Aktuelle Teile-Stände" msgid "Number of recent parts to display on index page" msgstr "Anzahl der neusten Teile auf der Startseite" -#: common/models.py:153 part/models.py:2170 part/templates/part/detail.html:160 -#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25 +#: common/models.py:153 part/models.py:2193 part/templates/part/detail.html:160 +#: report/models.py:186 stock/forms.py:259 templates/js/table_filters.js:25 #: templates/js/table_filters.js:315 msgid "Template" msgstr "Vorlage" @@ -1608,7 +1609,7 @@ msgstr "Vorlage" msgid "Parts are templates by default" msgstr "Teile sind standardmäßig Vorlagen" -#: common/models.py:160 part/models.py:834 part/templates/part/detail.html:170 +#: common/models.py:160 part/models.py:819 part/templates/part/detail.html:170 #: templates/js/table_filters.js:128 templates/js/table_filters.js:327 msgid "Assembly" msgstr "Baugruppe" @@ -1617,7 +1618,7 @@ msgstr "Baugruppe" msgid "Parts can be assembled from other components by default" msgstr "Teile können standardmäßig aus anderen Teilen angefertigt werden" -#: common/models.py:167 part/models.py:840 part/templates/part/detail.html:180 +#: common/models.py:167 part/models.py:825 part/templates/part/detail.html:180 #: templates/js/table_filters.js:331 msgid "Component" msgstr "Komponente" @@ -1626,7 +1627,7 @@ msgstr "Komponente" msgid "Parts can be used as sub-components by default" msgstr "Teile können standardmäßig in Baugruppen benutzt werden" -#: common/models.py:174 part/models.py:851 part/templates/part/detail.html:200 +#: common/models.py:174 part/models.py:836 part/templates/part/detail.html:200 msgid "Purchaseable" msgstr "Kaufbar" @@ -1634,7 +1635,7 @@ msgstr "Kaufbar" msgid "Parts are purchaseable by default" msgstr "Artikel sind grundsätzlich kaufbar" -#: common/models.py:181 part/models.py:856 part/templates/part/detail.html:210 +#: common/models.py:181 part/models.py:841 part/templates/part/detail.html:210 #: templates/js/table_filters.js:339 msgid "Salable" msgstr "Verkäuflich" @@ -1643,7 +1644,7 @@ msgstr "Verkäuflich" msgid "Parts are salable by default" msgstr "Artikel sind grundsätzlich verkaufbar" -#: common/models.py:188 part/models.py:846 part/templates/part/detail.html:190 +#: common/models.py:188 part/models.py:831 part/templates/part/detail.html:190 #: templates/js/table_filters.js:33 templates/js/table_filters.js:343 msgid "Trackable" msgstr "Nachverfolgbar" @@ -1652,7 +1653,7 @@ msgstr "Nachverfolgbar" msgid "Parts are trackable by default" msgstr "Artikel sind grundsätzlich verfolgbar" -#: common/models.py:195 part/models.py:866 part/templates/part/detail.html:150 +#: common/models.py:195 part/models.py:851 part/templates/part/detail.html:150 #: templates/js/table_filters.js:29 msgid "Virtual" msgstr "Virtuell" @@ -1669,160 +1670,185 @@ msgstr "zeige Bestand in Eingabemasken" msgid "Display available part quantity in some forms" msgstr "Zeige den verfügbaren Bestand in einigen Eingabemasken" -#: common/models.py:209 templates/stats.html:25 +#: common/models.py:209 +msgid "Show Price in Forms" +msgstr "" + +#: common/models.py:210 +msgid "Display part price in some forms" +msgstr "" + +#: common/models.py:216 +msgid "Internal Prices" +msgstr "" + +#: common/models.py:217 +msgid "Enable internal prices for parts" +msgstr "" + +#: common/models.py:223 +msgid "Internal Price as BOM-Price" +msgstr "" + +#: common/models.py:224 +msgid "Use the internal price (if set) in BOM-price calculations" +msgstr "" + +#: common/models.py:230 templates/stats.html:25 msgid "Debug Mode" msgstr "Entwickler-Modus" -#: common/models.py:210 +#: common/models.py:231 msgid "Generate reports in debug mode (HTML output)" msgstr "Berichte im Entwickler-Modus generieren (als HTML)" -#: common/models.py:216 +#: common/models.py:237 msgid "Page Size" msgstr "Seitengröße" -#: common/models.py:217 +#: common/models.py:238 msgid "Default page size for PDF reports" msgstr "Standardseitenformat für PDF-Bericht" -#: common/models.py:227 +#: common/models.py:248 msgid "Test Reports" msgstr "Test-Berichte" -#: common/models.py:228 +#: common/models.py:249 msgid "Enable generation of test reports" msgstr "Erstellung von Test-Berichten aktivieren" -#: common/models.py:234 +#: common/models.py:255 msgid "Stock Expiry" msgstr "Bestands-Ablauf" -#: common/models.py:235 +#: common/models.py:256 msgid "Enable stock expiry functionality" msgstr "Ablaufen von Bestand ermöglichen" -#: common/models.py:241 +#: common/models.py:262 msgid "Sell Expired Stock" msgstr "Abgelaufenen Bestand verkaufen" -#: common/models.py:242 +#: common/models.py:263 msgid "Allow sale of expired stock" msgstr "Verkauf von abgelaufenem Bestand erlaubt" -#: common/models.py:248 +#: common/models.py:269 msgid "Stock Stale Time" msgstr "Bestands-Stehzeit" -#: common/models.py:249 +#: common/models.py:270 msgid "Number of days stock items are considered stale before expiring" msgstr "Anzahl an Tagen, an denen Bestand als abgestanden markiert wird, bevor sie ablaufen" -#: common/models.py:251 part/templates/part/detail.html:121 +#: common/models.py:272 part/templates/part/detail.html:121 msgid "days" msgstr "Tage" -#: common/models.py:256 +#: common/models.py:277 msgid "Build Expired Stock" msgstr "Abgelaufenen Bestand verbauen" -#: common/models.py:257 +#: common/models.py:278 msgid "Allow building with expired stock" msgstr "Verbauen von abgelaufenen Bestand erlaubt" -#: common/models.py:263 +#: common/models.py:284 msgid "Stock Ownership Control" msgstr "Bestands-Eigentümerkontrolle" -#: common/models.py:264 +#: common/models.py:285 msgid "Enable ownership control over stock locations and items" msgstr "Eigentümerkontrolle für Lagerorte und Teile aktivieren" -#: common/models.py:270 +#: common/models.py:291 msgid "Group by Part" msgstr "Gruppieren nach Teil" -#: common/models.py:271 +#: common/models.py:292 msgid "Group stock items by part reference in table views" msgstr "Bestand in Tabellen anhand von Teil-Referenz gruppieren" -#: common/models.py:277 +#: common/models.py:298 msgid "Recent Stock Count" msgstr "aktueller Bestand" -#: common/models.py:278 +#: common/models.py:299 msgid "Number of recent stock items to display on index page" msgstr "Anzahl des geänderten Bestands auf der Startseite" -#: common/models.py:284 +#: common/models.py:305 msgid "Build Order Reference Prefix" msgstr "Bauauftrag-Referenz Präfix" -#: common/models.py:285 +#: common/models.py:306 msgid "Prefix value for build order reference" msgstr "Präfix für Bauauftrag-Referenz" -#: common/models.py:290 +#: common/models.py:311 msgid "Build Order Reference Regex" msgstr "Bauauftrag-Referenz RegEx" -#: common/models.py:291 +#: common/models.py:312 msgid "Regular expression pattern for matching build order reference" msgstr "RegEx Muster für die Zuordnung von Bauauftrag-Referenzen" -#: common/models.py:295 +#: common/models.py:316 msgid "Sales Order Reference Prefix" msgstr "Auftrags-Referenz Präfix" -#: common/models.py:296 +#: common/models.py:317 msgid "Prefix value for sales order reference" msgstr "Präfix für Auftrags-Referenz" -#: common/models.py:301 +#: common/models.py:322 msgid "Purchase Order Reference Prefix" msgstr "Bestellungs-Referenz Präfix" -#: common/models.py:302 +#: common/models.py:323 msgid "Prefix value for purchase order reference" msgstr "Präfix für Bestellungs-Referenz" -#: common/models.py:525 +#: common/models.py:546 msgid "Settings key (must be unique - case insensitive" msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)" -#: common/models.py:527 +#: common/models.py:548 msgid "Settings value" msgstr "Einstellungs-Wert" -#: common/models.py:562 +#: common/models.py:583 msgid "Must be an integer value" msgstr "Nur Ganzzahl eingeben" -#: common/models.py:585 +#: common/models.py:606 msgid "Value must be a boolean value" msgstr "Wahrheitswert erforderlich" -#: common/models.py:596 +#: common/models.py:617 msgid "Value must be an integer value" msgstr "Nur Ganzzahl eingeben" -#: common/models.py:619 +#: common/models.py:640 msgid "Key string must be unique" msgstr "Schlüsseltext muss eindeutig sein" -#: common/models.py:700 company/forms.py:177 +#: common/models.py:721 company/forms.py:192 msgid "Price break quantity" msgstr "Preisstaffelungs Anzahl" -#: common/models.py:708 company/templates/company/supplier_part_pricing.html:82 +#: common/models.py:729 company/templates/company/supplier_part_pricing.html:82 +#: part/templates/part/internal_prices.html:103 #: part/templates/part/sale_prices.html:90 templates/js/bom.js:271 msgid "Price" msgstr "Preis" -#: common/models.py:709 +#: common/models.py:730 msgid "Unit price at specified quantity" msgstr "Stückpreis für die angegebene Anzahl" -#: common/models.py:798 +#: common/models.py:822 msgid "Default" msgstr "Standard" @@ -1843,7 +1869,9 @@ msgid "Supplied value must be a boolean" msgstr "Angegebener Wert muss ein Wahrheitswert sein" #: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42 -#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27 +#: order/templates/order/po_navbar.html:19 +#: order/templates/order/po_navbar.html:22 order/views.py:582 +#: part/templates/part/bom_upload/upload_file.html:27 msgid "Upload File" msgstr "Datei hochgeladen" @@ -1877,29 +1905,29 @@ msgstr "URL" msgid "Image URL" msgstr "Bild-URL" -#: company/forms.py:118 templates/js/part.js:786 +#: company/forms.py:133 templates/js/part.js:787 msgid "Single Price" msgstr "Einzelpreis" -#: company/forms.py:120 +#: company/forms.py:135 msgid "Single quantity price" msgstr "Preis für eine Einheit" -#: company/forms.py:128 company/models.py:321 +#: company/forms.py:143 company/models.py:321 msgid "Select manufacturer" msgstr "Hersteller auswählen" -#: company/forms.py:134 company/models.py:328 +#: company/forms.py:149 company/models.py:328 msgid "Manufacturer Part Number" msgstr "Hersteller-Teilenummer" -#: company/forms.py:136 company/models.py:327 +#: company/forms.py:151 company/models.py:327 #: company/templates/company/manufacturer_part_base.html:89 #: company/templates/company/manufacturer_part_detail.html:26 #: company/templates/company/supplier_part_base.html:102 #: company/templates/company/supplier_part_detail.html:35 #: order/templates/order/purchase_order_detail.html:162 part/bom.py:171 -#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307 +#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:408 msgid "MPN" msgstr "MPN" @@ -1952,11 +1980,11 @@ msgstr "Kontakt" msgid "Point of contact" msgstr "Anlaufstelle" -#: company/models.py:121 company/models.py:333 company/models.py:485 -#: order/models.py:105 part/models.py:743 +#: company/models.py:121 company/models.py:333 company/models.py:526 +#: order/models.py:106 part/models.py:728 #: report/templates/report/inventree_build_order_base.html:165 -#: templates/js/company.js:188 templates/js/company.js:318 -#: templates/js/part.js:497 +#: templates/js/company.js:188 templates/js/company.js:419 +#: templates/js/part.js:498 msgid "Link" msgstr "Link" @@ -1964,7 +1992,7 @@ msgstr "Link" msgid "Link to external company information" msgstr "Link auf externe Firmeninformation" -#: company/models.py:129 part/models.py:753 +#: company/models.py:129 part/models.py:738 msgid "Image" msgstr "Bild" @@ -1992,12 +2020,12 @@ msgstr "ist Hersteller" msgid "Does this company manufacture parts?" msgstr "Produziert diese Firma Teile?" -#: company/models.py:305 company/models.py:456 stock/models.py:407 +#: company/models.py:305 company/models.py:497 stock/models.py:407 #: stock/templates/stock/item_base.html:235 msgid "Base Part" msgstr "Basisteil" -#: company/models.py:309 company/models.py:460 order/views.py:1587 +#: company/models.py:309 company/models.py:501 order/views.py:1597 msgid "Select part" msgstr "Teil auswählen" @@ -2008,7 +2036,7 @@ msgstr "Teil auswählen" #: company/templates/company/supplier_part_detail.html:34 part/bom.py:170 #: part/bom.py:241 stock/templates/stock/item_base.html:352 #: templates/js/company.js:44 templates/js/company.js:165 -#: templates/js/company.js:289 +#: templates/js/company.js:390 msgid "Manufacturer" msgstr "Hersteller" @@ -2020,87 +2048,112 @@ msgstr "Externe URL für das Herstellerteil" msgid "Manufacturer part description" msgstr "Teilbeschreibung des Herstellers" -#: company/models.py:466 company/templates/company/detail.html:62 +#: company/models.py:390 company/models.py:520 +#: company/templates/company/manufacturer_part_base.html:6 +#: company/templates/company/manufacturer_part_base.html:19 +#: stock/templates/stock/item_base.html:362 +msgid "Manufacturer Part" +msgstr "Herstellerteil" + +#: company/models.py:397 +msgid "Parameter name" +msgstr "" + +#: company/models.py:403 part/templates/part/params.html:28 +#: report/templates/report/inventree_test_report_base.html:90 +#: stock/models.py:1756 templates/InvenTree/settings/header.html:8 +#: templates/js/company.js:241 templates/js/stock.js:137 +msgid "Value" +msgstr "Wert" + +#: company/models.py:404 +msgid "Parameter value" +msgstr "" + +#: company/models.py:410 part/models.py:813 part/models.py:2165 +#: part/templates/part/detail.html:106 part/templates/part/params.html:29 +#: templates/js/company.js:247 +msgid "Units" +msgstr "Einheiten" + +#: company/models.py:411 +msgid "Parameter units" +msgstr "" + +#: company/models.py:507 company/templates/company/detail.html:62 #: company/templates/company/supplier_part_base.html:84 -#: company/templates/company/supplier_part_detail.html:25 order/models.py:192 +#: company/templates/company/supplier_part_detail.html:25 order/models.py:193 #: order/templates/order/order_base.html:92 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175 -#: part/bom.py:286 stock/templates/stock/item_base.html:364 -#: templates/js/company.js:48 templates/js/company.js:263 +#: part/bom.py:286 stock/templates/stock/item_base.html:369 +#: templates/js/company.js:48 templates/js/company.js:364 #: templates/js/order.js:170 msgid "Supplier" msgstr "Zulieferer" -#: company/models.py:467 +#: company/models.py:508 msgid "Select supplier" msgstr "Zulieferer auswählen" -#: company/models.py:472 company/templates/company/supplier_part_base.html:88 +#: company/models.py:513 company/templates/company/supplier_part_base.html:88 #: company/templates/company/supplier_part_detail.html:26 #: order/templates/order/purchase_order_detail.html:153 part/bom.py:176 #: part/bom.py:287 msgid "SKU" msgstr "SKU (Lagerbestandseinheit)" -#: company/models.py:473 +#: company/models.py:514 msgid "Supplier stock keeping unit" msgstr "Lagerbestandseinheit (SKU) des Zulieferers" -#: company/models.py:479 -#: company/templates/company/manufacturer_part_base.html:6 -#: company/templates/company/manufacturer_part_base.html:19 -#: stock/templates/stock/item_base.html:357 -msgid "Manufacturer Part" -msgstr "Herstellerteil" - -#: company/models.py:480 +#: company/models.py:521 msgid "Select manufacturer part" msgstr "Herstellerteil auswählen" -#: company/models.py:486 +#: company/models.py:527 msgid "URL for external supplier part link" msgstr "Teil-URL des Zulieferers" -#: company/models.py:492 +#: company/models.py:533 msgid "Supplier part description" msgstr "Zuliefererbeschreibung des Teils" -#: company/models.py:497 company/templates/company/supplier_part_base.html:116 -#: company/templates/company/supplier_part_detail.html:38 part/models.py:2282 +#: company/models.py:538 company/templates/company/supplier_part_base.html:116 +#: company/templates/company/supplier_part_detail.html:38 part/models.py:2305 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "Notiz" -#: company/models.py:501 part/models.py:1614 +#: company/models.py:542 part/models.py:1606 msgid "base cost" msgstr "Basiskosten" -#: company/models.py:501 part/models.py:1614 +#: company/models.py:542 part/models.py:1606 msgid "Minimum charge (e.g. stocking fee)" msgstr "Mindestpreis" -#: company/models.py:503 company/templates/company/supplier_part_base.html:109 +#: company/models.py:544 company/templates/company/supplier_part_base.html:109 #: stock/models.py:431 stock/templates/stock/item_base.html:310 -#: templates/js/stock.js:670 +#: templates/js/stock.js:695 msgid "Packaging" msgstr "Verpackungen" -#: company/models.py:503 +#: company/models.py:544 msgid "Part packaging" msgstr "Teile-Verpackungen" -#: company/models.py:505 part/models.py:1616 +#: company/models.py:546 part/models.py:1608 msgid "multiple" msgstr "Vielfache" -#: company/models.py:505 +#: company/models.py:546 msgid "Order multiple" msgstr "Mehrere bestellen" #: company/templates/company/assigned_stock.html:10 #: company/templates/company/navbar.html:62 -#: company/templates/company/navbar.html:65 templates/js/build.js:477 +#: company/templates/company/navbar.html:65 templates/js/build.js:562 msgid "Assigned Stock" msgstr "Zugeordneter Bestand" @@ -2166,11 +2219,11 @@ msgstr "Keine Website angegeben" msgid "Uses default currency" msgstr "verwendet Standard-Währung" -#: company/templates/company/detail.html:67 order/models.py:463 +#: company/templates/company/detail.html:67 order/models.py:464 #: order/templates/order/sales_order_base.html:94 stock/models.py:449 #: stock/models.py:450 stock/templates/stock/item_base.html:262 #: templates/js/company.js:40 templates/js/order.js:267 -#: templates/js/stock.js:1072 +#: templates/js/stock.js:1097 msgid "Customer" msgstr "Kunde" @@ -2216,7 +2269,7 @@ msgstr "Teile löschen" #: company/templates/company/detail_manufacturer_part.html:66 #: company/templates/company/detail_supplier_part.html:66 #: part/templates/part/bom.html:159 part/templates/part/category.html:118 -#: templates/js/stock.js:1287 +#: templates/js/stock.js:1312 msgid "New Part" msgstr "Neues Teil" @@ -2249,13 +2302,12 @@ msgstr "Exportieren" #: company/templates/company/detail_supplier_part.html:11 #: company/templates/company/manufacturer_part_navbar.html:11 -#: company/templates/company/manufacturer_part_suppliers.html:10 #: templates/InvenTree/search.html:164 msgid "Supplier Parts" msgstr "Zuliefererteile" #: company/templates/company/detail_supplier_part.html:21 -#: order/templates/order/order_wizard/select_parts.html:42 +#: order/templates/order/order_wizard/select_parts.html:44 #: order/templates/order/purchase_order_detail.html:50 msgid "Create new supplier part" msgstr "Neues Zuliefererteil anlegen" @@ -2263,12 +2315,12 @@ msgstr "Neues Zuliefererteil anlegen" #: company/templates/company/detail_supplier_part.html:22 #: company/templates/company/manufacturer_part_suppliers.html:17 #: order/templates/order/purchase_order_detail.html:49 -#: part/templates/part/supplier.html:17 templates/js/stock.js:1293 +#: part/templates/part/supplier.html:17 templates/js/stock.js:1318 msgid "New Supplier Part" msgstr "Neues Zuliefererteil" #: company/templates/company/detail_supplier_part.html:72 -#: company/templates/company/manufacturer_part_suppliers.html:47 +#: company/templates/company/manufacturer_part_suppliers.html:82 #: company/views.py:64 order/templates/order/purchase_orders.html:185 #: part/templates/part/supplier.html:50 msgid "New Supplier" @@ -2320,8 +2372,9 @@ msgid "There are %(count)s suppliers defined for this manufacturer part. If you msgstr "Für dieses Herstellerteil sind %(count)s Lieferanten definiert. Wenn Sie es löschen, werden die folgenden Lieferantenteile ebenfalls gelöscht:" #: company/templates/company/manufacturer_part_navbar.html:14 -#: company/views.py:63 part/templates/part/navbar.html:84 -#: part/templates/part/navbar.html:87 templates/InvenTree/search.html:316 +#: company/templates/company/manufacturer_part_suppliers.html:10 +#: company/views.py:63 part/templates/part/navbar.html:86 +#: part/templates/part/navbar.html:89 templates/InvenTree/search.html:316 #: templates/navbar.html:35 msgid "Suppliers" msgstr "Zulieferer" @@ -2333,13 +2386,13 @@ msgstr "Herstellerteil-Bestand" #: company/templates/company/manufacturer_part_navbar.html:22 #: company/templates/company/navbar.html:41 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:36 stock/api.py:54 +#: part/templates/part/navbar.html:38 stock/api.py:54 #: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196 #: templates/InvenTree/search.html:232 #: templates/InvenTree/settings/tabs.html:31 templates/js/part.js:181 -#: templates/js/part.js:305 templates/js/part.js:464 templates/js/stock.js:561 +#: templates/js/part.js:305 templates/js/part.js:465 templates/js/stock.js:566 #: templates/navbar.html:26 msgid "Stock" msgstr "Lagerbestand" @@ -2361,11 +2414,25 @@ msgstr "Zuliefererteil entfernen" #: company/templates/company/manufacturer_part_suppliers.html:22 #: part/templates/part/manufacturer.html:24 part/templates/part/params.html:44 #: part/templates/part/related.html:44 part/templates/part/supplier.html:22 -#: stock/views.py:1002 users/models.py:187 +#: stock/views.py:1002 users/models.py:191 msgid "Delete" msgstr "Löschen" -#: company/templates/company/manufacturer_part_suppliers.html:48 +#: company/templates/company/manufacturer_part_suppliers.html:37 +#: part/templates/part/category_navbar.html:34 +#: part/templates/part/category_navbar.html:37 +#: part/templates/part/navbar.html:24 +msgid "Parameters" +msgstr "Parameter" + +#: company/templates/company/manufacturer_part_suppliers.html:43 +#: part/templates/part/params.html:18 +#: templates/InvenTree/settings/category.html:29 +#: templates/InvenTree/settings/part.html:48 +msgid "New Parameter" +msgstr "Neuer Parameter" + +#: company/templates/company/manufacturer_part_suppliers.html:83 #: part/templates/part/supplier.html:51 msgid "Create new supplier" msgstr "Neuen Zulieferer anlegen" @@ -2380,13 +2447,13 @@ msgstr "Hergestellte Teile" msgid "Supplied Parts" msgstr "Zuliefererteile" -#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:33 +#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:35 #: stock/templates/stock/location.html:107 #: stock/templates/stock/location.html:122 #: stock/templates/stock/location.html:136 #: stock/templates/stock/location_navbar.html:22 #: stock/templates/stock/location_navbar.html:29 -#: templates/InvenTree/search.html:198 templates/js/stock.js:971 +#: templates/InvenTree/search.html:198 templates/js/stock.js:996 #: templates/stats.html:93 templates/stats.html:102 users/models.py:42 msgid "Stock Items" msgstr "Teilbestand" @@ -2397,7 +2464,7 @@ msgstr "Teilbestand" #: company/templates/company/sales_orders.html:11 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:13 -#: part/templates/part/navbar.html:104 part/templates/part/navbar.html:107 +#: part/templates/part/navbar.html:112 part/templates/part/navbar.html:115 #: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228 #: templates/InvenTree/search.html:345 #: templates/InvenTree/settings/tabs.html:40 templates/navbar.html:46 @@ -2409,7 +2476,7 @@ msgstr "Aufträge" #: company/templates/company/purchase_orders.html:10 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:13 -#: part/templates/part/navbar.html:90 part/templates/part/navbar.html:93 +#: part/templates/part/navbar.html:92 part/templates/part/navbar.html:95 #: part/templates/part/orders.html:10 templates/InvenTree/index.html:205 #: templates/InvenTree/search.html:325 #: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:37 @@ -2443,7 +2510,7 @@ msgstr "Neuer Auftrag" #: company/templates/company/supplier_part_base.html:7 #: company/templates/company/supplier_part_base.html:20 stock/models.py:416 -#: stock/templates/stock/item_base.html:369 templates/js/company.js:279 +#: stock/templates/stock/item_base.html:374 templates/js/company.js:380 msgid "Supplier Part" msgstr "Zuliefererteil" @@ -2491,8 +2558,8 @@ msgstr "Teil bestellen" msgid "Pricing Information" msgstr "Preisinformationen ansehen" -#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794 -#: part/templates/part/sale_prices.html:17 part/views.py:2733 +#: company/templates/company/supplier_part_pricing.html:19 company/views.py:855 +#: part/templates/part/sale_prices.html:17 part/views.py:2751 msgid "Add Price Break" msgstr "Preisstaffel hinzufügen" @@ -2511,8 +2578,8 @@ msgstr "Preisstaffel bearbeiten" msgid "Delete price break" msgstr "Preisstaffel löschen" -#: company/views.py:70 part/templates/part/navbar.html:78 -#: part/templates/part/navbar.html:81 templates/InvenTree/search.html:306 +#: company/views.py:70 part/templates/part/navbar.html:80 +#: part/templates/part/navbar.html:83 templates/InvenTree/search.html:306 #: templates/navbar.html:36 msgid "Manufacturers" msgstr "Hersteller" @@ -2534,20 +2601,20 @@ msgstr "Firmen" msgid "New Company" msgstr "Neue Firma" -#: company/views.py:169 part/views.py:937 +#: company/views.py:169 part/views.py:948 msgid "Download Image" msgstr "Bild herunterladen" -#: company/views.py:198 part/views.py:969 +#: company/views.py:198 part/views.py:980 msgid "Image size exceeds maximum allowable size for download" msgstr "Bildgröße überschreitet maximal-erlaubte Größe für Downloads" -#: company/views.py:205 part/views.py:976 +#: company/views.py:205 part/views.py:987 #, python-brace-format msgid "Invalid response: {code}" msgstr "Ungültige Antwort {code}" -#: company/views.py:214 part/views.py:985 +#: company/views.py:214 part/views.py:996 msgid "Supplied URL is not a valid image file" msgstr "Angegebene URL ist kein gültiges Bild" @@ -2595,27 +2662,35 @@ msgstr "Neues Herstellerteil anlegen" msgid "Delete Manufacturer Part" msgstr "Herstellerteil löschen" -#: company/views.py:528 +#: company/views.py:514 +msgid "Add Manufacturer Part Parameter" +msgstr "" + +#: company/views.py:548 +msgid "Edit Manufacturer Part Parameter" +msgstr "" + +#: company/views.py:588 msgid "Edit Supplier Part" msgstr "Zuliefererteil bearbeiten" -#: company/views.py:578 templates/js/stock.js:1294 +#: company/views.py:639 templates/js/stock.js:1319 msgid "Create new Supplier Part" msgstr "Neues Zuliefererteil anlegen" -#: company/views.py:722 +#: company/views.py:783 msgid "Delete Supplier Part" msgstr "Zuliefererteil entfernen" -#: company/views.py:799 part/views.py:2737 +#: company/views.py:860 part/views.py:2755 msgid "Added new price break" msgstr "neue Preisstaffel hinzufügt" -#: company/views.py:855 part/views.py:2781 +#: company/views.py:916 part/views.py:2799 msgid "Edit Price Break" msgstr "Preisstaffel bearbeiten" -#: company/views.py:870 part/views.py:2795 +#: company/views.py:931 part/views.py:2813 msgid "Delete Price Break" msgstr "Preisstaffel löschen" @@ -2639,7 +2714,7 @@ msgstr "Label" msgid "Label template file" msgstr "Label-Vorlage-Datei" -#: label/models.py:124 report/models.py:274 +#: label/models.py:124 report/models.py:297 msgid "Enabled" msgstr "Aktiviert" @@ -2663,7 +2738,7 @@ msgstr "Höhe [mm]" msgid "Label height, specified in mm" msgstr "Label-Höhe in mm" -#: label/models.py:144 +#: label/models.py:144 report/models.py:290 msgid "Filename Pattern" msgstr "Dateinamen-Muster" @@ -2675,8 +2750,8 @@ msgstr "Muster für die Erstellung von Label-Dateinamen" msgid "Query filters (comma-separated list of key=value pairs" msgstr "Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)" -#: label/models.py:245 label/models.py:298 report/models.py:294 -#: report/models.py:415 report/models.py:449 +#: label/models.py:245 label/models.py:298 report/models.py:317 +#: report/models.py:440 report/models.py:474 msgid "Filters" msgstr "Filter" @@ -2697,237 +2772,239 @@ msgstr "Bestellung stornieren" msgid "Ship order" msgstr "Bestellung versenden" -#: order/forms.py:82 +#: order/forms.py:86 msgid "Receive parts to this location" msgstr "Teile in diesen Lagerort empfangen" -#: order/forms.py:103 +#: order/forms.py:108 msgid "Purchase Order reference" msgstr "Bestellungs-Referenz" -#: order/forms.py:110 +#: order/forms.py:115 msgid "Target date for order delivery. Order will be overdue after this date." msgstr "Zieldatum für Auftrags-Lieferung." -#: order/forms.py:138 +#: order/forms.py:143 msgid "Enter sales order number" msgstr "Auftrag-Nummer eingeben" -#: order/forms.py:145 order/models.py:475 +#: order/forms.py:150 order/models.py:476 msgid "Target date for order completion. Order will be overdue after this date." msgstr "Zieldatum für Auftrags-Fertigstellung." -#: order/forms.py:236 +#: order/forms.py:242 msgid "Enter stock item serial numbers" msgstr "Seriennummern für BestandsObjekt eingeben" -#: order/forms.py:242 +#: order/forms.py:248 msgid "Enter quantity of stock items" msgstr "Menge der BestandsObjekt eingeben" -#: order/models.py:101 +#: order/models.py:102 msgid "Order reference" msgstr "Bestell-Referenz" -#: order/models.py:103 +#: order/models.py:104 msgid "Order description" msgstr "Bestellungs-Beschreibung" -#: order/models.py:105 +#: order/models.py:106 msgid "Link to external page" msgstr "Link auf externe Seite" -#: order/models.py:113 part/templates/part/detail.html:132 +#: order/models.py:114 part/templates/part/detail.html:132 msgid "Created By" msgstr "Erstellt von" -#: order/models.py:120 +#: order/models.py:121 msgid "User or group responsible for this order" msgstr "Nutzer oder Gruppe der/die für diesen Auftrag zuständig ist/sind" -#: order/models.py:125 +#: order/models.py:126 msgid "Order notes" msgstr "Bestell-Notizen" -#: order/models.py:184 order/models.py:468 +#: order/models.py:185 order/models.py:469 msgid "Purchase order status" msgstr "Bestellungs-Status" -#: order/models.py:193 +#: order/models.py:194 msgid "Company from which the items are being ordered" msgstr "Firma bei der die Teile bestellt werden" -#: order/models.py:196 order/templates/order/order_base.html:98 +#: order/models.py:197 order/templates/order/order_base.html:98 #: templates/js/order.js:179 msgid "Supplier Reference" msgstr "Zulieferer-Referenz" -#: order/models.py:196 +#: order/models.py:197 msgid "Supplier order reference code" msgstr "Zulieferer Bestellreferenz" -#: order/models.py:203 +#: order/models.py:204 msgid "received by" msgstr "Empfangen von" -#: order/models.py:208 +#: order/models.py:209 msgid "Issue Date" msgstr "Aufgabedatum" -#: order/models.py:209 +#: order/models.py:210 msgid "Date order was issued" msgstr "Datum an dem die Bestellung aufgegeben wurde" -#: order/models.py:214 +#: order/models.py:215 msgid "Target Delivery Date" msgstr "Ziel-Versanddatum" -#: order/models.py:215 +#: order/models.py:216 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "Geplantes Lieferdatum für Auftrag." -#: order/models.py:221 +#: order/models.py:222 msgid "Date order was completed" msgstr "Datum an dem der Auftrag fertigstellt wurde" -#: order/models.py:245 part/views.py:1675 stock/models.py:304 +#: order/models.py:246 part/views.py:1686 stock/models.py:304 #: stock/models.py:1020 msgid "Quantity must be greater than zero" msgstr "Anzahl muss größer Null sein" -#: order/models.py:250 +#: order/models.py:251 msgid "Part supplier must match PO supplier" msgstr "Teile-Zulieferer muss dem Zulieferer der Bestellung entsprechen" -#: order/models.py:348 +#: order/models.py:349 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "Nur Teile aufgegebener Bestllungen können empfangen werden" -#: order/models.py:352 +#: order/models.py:353 msgid "Quantity must be an integer" msgstr "Anzahl muss eine Ganzzahl sein" -#: order/models.py:354 +#: order/models.py:355 msgid "Quantity must be a positive number" msgstr "Anzahl muss eine positive Zahl sein" -#: order/models.py:464 +#: order/models.py:465 msgid "Company to which the items are being sold" msgstr "Firma an die die Teile verkauft werden" -#: order/models.py:470 +#: order/models.py:471 msgid "Customer Reference " msgstr "Kundenreferenz" -#: order/models.py:470 +#: order/models.py:471 msgid "Customer order reference code" msgstr "Bestellreferenz" -#: order/models.py:478 templates/js/order.js:303 +#: order/models.py:479 templates/js/order.js:303 msgid "Shipment Date" msgstr "Versanddatum" -#: order/models.py:485 +#: order/models.py:486 msgid "shipped by" msgstr "Versand von" -#: order/models.py:529 +#: order/models.py:530 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "Bestellung kann nicht versendet werden weil er nicht anhängig ist" -#: order/models.py:616 +#: order/models.py:617 msgid "Item quantity" msgstr "Anzahl" -#: order/models.py:618 +#: order/models.py:619 msgid "Line item reference" msgstr "Position - Referenz" -#: order/models.py:620 +#: order/models.py:621 msgid "Line item notes" msgstr "Position - Notizen" -#: order/models.py:646 order/models.py:691 -#: part/templates/part/allocation.html:17 -#: part/templates/part/allocation.html:45 +#: order/models.py:647 order/models.py:715 templates/js/order.js:353 msgid "Order" msgstr "Bestellung" -#: order/models.py:647 order/templates/order/order_base.html:9 +#: order/models.py:648 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:324 templates/js/order.js:148 -#: templates/js/stock.js:1053 +#: templates/js/stock.js:669 templates/js/stock.js:1078 msgid "Purchase Order" msgstr "Bestellung" -#: order/models.py:661 +#: order/models.py:662 msgid "Supplier part" msgstr "Zuliefererteil" -#: order/models.py:664 order/templates/order/order_base.html:131 +#: order/models.py:665 order/templates/order/order_base.html:131 #: order/templates/order/purchase_order_detail.html:219 #: order/templates/order/receive_parts.html:22 #: order/templates/order/sales_order_base.html:133 msgid "Received" msgstr "Empfangen" -#: order/models.py:664 +#: order/models.py:665 msgid "Number of items received" msgstr "Empfangene Objekt-Anzahl" -#: order/models.py:671 stock/models.py:542 -#: stock/templates/stock/item_base.html:331 templates/js/stock.js:665 +#: order/models.py:672 stock/models.py:542 +#: stock/templates/stock/item_base.html:331 templates/js/stock.js:690 msgid "Purchase Price" msgstr "Preis" -#: order/models.py:672 +#: order/models.py:673 msgid "Unit purchase price" msgstr "Preis pro Einheit" -#: order/models.py:700 part/templates/part/navbar.html:101 -#: part/templates/part/order_prices.html:82 -#: part/templates/part/part_pricing.html:78 +#: order/models.py:681 +msgid "Where does the Purchaser want this item to be stored?" +msgstr "Wo möchte der Käufer diesen Artikel gelagert haben?" + +#: order/models.py:724 part/templates/part/navbar.html:109 +#: part/templates/part/order_prices.html:107 +#: part/templates/part/part_pricing.html:97 msgid "Sale Price" msgstr "Verkaufspreis" -#: order/models.py:701 +#: order/models.py:725 msgid "Unit sale price" msgstr "Stückverkaufspreis" -#: order/models.py:776 order/models.py:778 +#: order/models.py:800 order/models.py:802 msgid "Stock item has not been assigned" msgstr "BestandsObjekt wurde nicht zugewiesen" -#: order/models.py:782 +#: order/models.py:806 msgid "Cannot allocate stock item to a line with a different part" msgstr "Kann BestandsObjekt keiner Zeile mit einem anderen Teil hinzufügen" -#: order/models.py:784 +#: order/models.py:808 msgid "Cannot allocate stock to a line without a part" msgstr "Kann BestandsObjekt keiner Zeile ohne Teil hinzufügen" -#: order/models.py:787 +#: order/models.py:811 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Die zugeordnete Anzahl darf nicht die verfügbare Anzahl überschreiten" -#: order/models.py:797 +#: order/models.py:821 msgid "Quantity must be 1 for serialized stock item" msgstr "Anzahl für BestandsObjekt mit Seriennummer muss 1 sein" -#: order/models.py:802 +#: order/models.py:826 msgid "Line" msgstr "Position" -#: order/models.py:813 +#: order/models.py:837 msgid "Item" msgstr "Position" -#: order/models.py:814 +#: order/models.py:838 msgid "Select stock item to allocate" msgstr "BestandsObjekt für Zuordnung auswählen" -#: order/models.py:817 +#: order/models.py:841 msgid "Enter stock allocation quantity" msgstr "Anzahl für Bestandszuordnung eingeben" @@ -2956,7 +3033,7 @@ msgid "Export order to file" msgstr "Exportiere Bestellung in Datei" #: order/templates/order/order_base.html:72 -#: order/templates/order/po_navbar.html:11 +#: order/templates/order/po_navbar.html:12 msgid "Purchase Order Details" msgstr "Bestellungs-Details" @@ -2978,8 +3055,8 @@ msgstr "Aufgegeben" #: order/templates/order/order_base.html:180 #: order/templates/order/purchase_order_detail.html:100 #: part/templates/part/category.html:208 part/templates/part/category.html:250 -#: stock/templates/stock/location.html:191 templates/js/stock.js:711 -#: templates/js/stock.js:1299 +#: stock/templates/stock/location.html:191 templates/js/stock.js:736 +#: templates/js/stock.js:1324 msgid "New Location" msgstr "Neuer Lagerort" @@ -3082,28 +3159,32 @@ msgstr "Schritt %(step)s von %(count)s" msgid "Order is already processed. Files cannot be uploaded." msgstr "Bestellung ist bereits verarbeitet. Dateien können nicht hochgeladen werden." -#: order/templates/order/order_wizard/select_parts.html:9 +#: order/templates/order/order_wizard/select_parts.html:11 msgid "Step 1 of 2 - Select Part Suppliers" msgstr "Schritt 1 von 2 - Zulieferer auswählen" -#: order/templates/order/order_wizard/select_parts.html:14 +#: order/templates/order/order_wizard/select_parts.html:16 msgid "Select suppliers" msgstr "Zulieferer auswählen" -#: order/templates/order/order_wizard/select_parts.html:18 +#: order/templates/order/order_wizard/select_parts.html:20 msgid "No purchaseable parts selected" msgstr "Keine kaufbaren Teile ausgewählt" -#: order/templates/order/order_wizard/select_parts.html:31 +#: order/templates/order/order_wizard/select_parts.html:33 msgid "Select Supplier" msgstr "Zulieferer auswählen" #: order/templates/order/order_wizard/select_parts.html:57 +msgid "No price" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:65 #, python-format msgid "Select a supplier for %(name)s" msgstr "Zulieferer auswählen für %(name)s" -#: order/templates/order/order_wizard/select_parts.html:69 +#: order/templates/order/order_wizard/select_parts.html:77 #: part/templates/part/set_category.html:32 msgid "Remove part" msgstr "Teil entfernen" @@ -3136,15 +3217,20 @@ msgid "Select a purchase order for %(name)s" msgstr "Bestellung für %(name)s auswählen" #: order/templates/order/po_attachments.html:12 -#: order/templates/order/po_navbar.html:23 +#: order/templates/order/po_navbar.html:32 msgid "Purchase Order Attachments" msgstr "Bestellungs-Anhänge" -#: order/templates/order/po_navbar.html:17 +#: order/templates/order/po_lineitem_delete.html:5 +#: order/templates/order/so_lineitem_delete.html:5 +msgid "Are you sure you wish to delete this line item?" +msgstr "Sind Sie sicher, dass Sie diese Position löschen möchten?" + +#: order/templates/order/po_navbar.html:26 msgid "Received Stock Items" msgstr "BestandsObjekte empfangen" -#: order/templates/order/po_navbar.html:20 +#: order/templates/order/po_navbar.html:29 #: order/templates/order/po_received_items.html:12 msgid "Received Items" msgstr "Empfangene Teile" @@ -3154,8 +3240,8 @@ msgid "Purchase Order Items" msgstr "Bestellungs-Positionen" #: order/templates/order/purchase_order_detail.html:24 -#: order/templates/order/sales_order_detail.html:22 order/views.py:1311 -#: order/views.py:1394 +#: order/templates/order/sales_order_detail.html:22 order/views.py:1321 +#: order/views.py:1404 msgid "Add Line Item" msgstr "Position hinzufügen" @@ -3163,25 +3249,31 @@ msgstr "Position hinzufügen" msgid "No line items found" msgstr "Keine Positionen gefunden" +#: order/templates/order/purchase_order_detail.html:142 +#: order/templates/order/sales_order_detail.html:223 +msgid "Total" +msgstr "Summe" + #: order/templates/order/purchase_order_detail.html:191 -#: order/templates/order/sales_order_detail.html:235 +#: order/templates/order/sales_order_detail.html:246 msgid "Unit Price" msgstr "Stück-Preis" #: order/templates/order/purchase_order_detail.html:198 +#: order/templates/order/sales_order_detail.html:253 msgid "Total price" -msgstr "" +msgstr "Gesamtpreis" -#: order/templates/order/purchase_order_detail.html:251 -#: order/templates/order/sales_order_detail.html:328 +#: order/templates/order/purchase_order_detail.html:255 +#: order/templates/order/sales_order_detail.html:359 msgid "Edit line item" msgstr "Position bearbeiten" -#: order/templates/order/purchase_order_detail.html:252 +#: order/templates/order/purchase_order_detail.html:256 msgid "Delete line item" msgstr "Position löschen" -#: order/templates/order/purchase_order_detail.html:257 +#: order/templates/order/purchase_order_detail.html:261 msgid "Receive line item" msgstr "Position empfangen" @@ -3202,7 +3294,7 @@ msgstr "Ausstehende Teile für %(order)s - %(desc)s empfangen" #: part/templates/part/category_navbar.html:29 #: part/templates/part/category_partlist.html:10 #: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114 -#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:665 +#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:666 #: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89 #: users/models.py:40 msgid "Parts" @@ -3217,7 +3309,7 @@ msgid "Order Code" msgstr "Bestellnummer" #: order/templates/order/receive_parts.html:21 -#: part/templates/part/part_base.html:136 templates/js/part.js:480 +#: part/templates/part/part_base.html:136 templates/js/part.js:481 msgid "On Order" msgstr "Bestellt" @@ -3225,11 +3317,11 @@ msgstr "Bestellt" msgid "Receive" msgstr "Empfangen" -#: order/templates/order/receive_parts.html:36 +#: order/templates/order/receive_parts.html:37 msgid "Error: Referenced part has been removed" msgstr "Fehler: verknüpftes Teil wurde gelöscht" -#: order/templates/order/receive_parts.html:57 +#: order/templates/order/receive_parts.html:61 msgid "Remove line" msgstr "Position entfernen" @@ -3266,17 +3358,17 @@ msgid "Sales Order Items" msgstr "Auftrags-Positionen" #: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:365 -#: templates/js/build.js:637 templates/js/build.js:1054 +#: templates/js/build.js:724 templates/js/build.js:1141 msgid "Actions" msgstr "Aktionen" -#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:525 -#: templates/js/build.js:859 +#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:610 +#: templates/js/build.js:946 msgid "Edit stock allocation" msgstr "Bestands-Zuordnung bearbeiten" -#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:527 -#: templates/js/build.js:860 +#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:612 +#: templates/js/build.js:947 msgid "Delete stock allocation" msgstr "Bestands-Zuordnung löschen" @@ -3284,50 +3376,50 @@ msgstr "Bestands-Zuordnung löschen" msgid "No matching line items" msgstr "Keine passenden Positionen gefunden" -#: order/templates/order/sales_order_detail.html:205 +#: order/templates/order/sales_order_detail.html:206 msgid "ID" msgstr "ID" -#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:589 -#: templates/js/build.js:855 +#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:675 +#: templates/js/build.js:942 msgid "Allocated" msgstr "Zugeordnet" -#: order/templates/order/sales_order_detail.html:245 +#: order/templates/order/sales_order_detail.html:276 msgid "Fulfilled" msgstr "Erledigt" -#: order/templates/order/sales_order_detail.html:282 +#: order/templates/order/sales_order_detail.html:313 msgid "PO" msgstr "PO" -#: order/templates/order/sales_order_detail.html:312 +#: order/templates/order/sales_order_detail.html:343 msgid "Allocate serial numbers" msgstr "Seriennummern zuweisen" -#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:651 +#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:738 msgid "Allocate stock" msgstr "Lagerbestand zuweisen" -#: order/templates/order/sales_order_detail.html:318 +#: order/templates/order/sales_order_detail.html:349 msgid "Purchase stock" msgstr "Lagerbestand kaufen" -#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:644 -#: templates/js/build.js:1062 +#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:731 +#: templates/js/build.js:1149 msgid "Build stock" msgstr "Lagerbestand bauen" -#: order/templates/order/sales_order_detail.html:325 -#: order/templates/order/sales_order_detail.html:434 +#: order/templates/order/sales_order_detail.html:356 +#: order/templates/order/sales_order_detail.html:465 msgid "Calculate price" msgstr "Preis berechnen" -#: order/templates/order/sales_order_detail.html:329 +#: order/templates/order/sales_order_detail.html:360 msgid "Delete line item " msgstr "Position löschen " -#: order/templates/order/sales_order_detail.html:440 +#: order/templates/order/sales_order_detail.html:471 msgid "Update Unit Price" msgstr "Stückpreis aktualisieren" @@ -3368,10 +3460,6 @@ msgstr "Diese Aktion wird die folgenden BestandsObjekt vom Auftrag entfernen" msgid "Sales Order Attachments" msgstr "Auftrags-Anhänge" -#: order/templates/order/so_lineitem_delete.html:5 -msgid "Are you sure you wish to delete this line item?" -msgstr "Sind Sie sicher, dass Sie diese Position löschen möchten?" - #: order/views.py:104 msgid "Add Purchase Order Attachment" msgstr "Bestellungs-Anhang hinzufügen" @@ -3472,90 +3560,94 @@ msgstr "Anzahl kleiner null empfangen" msgid "No lines specified" msgstr "Keine Zeilen angegeben" -#: order/views.py:1260 +#: order/views.py:1012 +msgid "Update prices" +msgstr "" + +#: order/views.py:1270 #, python-brace-format msgid "Ordered {n} parts" msgstr "{n} Teile bestellt" -#: order/views.py:1320 +#: order/views.py:1330 msgid "Supplier part must be specified" msgstr "Zuliefererteil muss ausgewählt werden" -#: order/views.py:1326 +#: order/views.py:1336 msgid "Supplier must match for Part and Order" msgstr "Zulieferer muss zu Teil und Bestellung passen" -#: order/views.py:1457 order/views.py:1475 +#: order/views.py:1467 order/views.py:1485 msgid "Edit Line Item" msgstr "Position bearbeiten" -#: order/views.py:1491 order/views.py:1503 +#: order/views.py:1501 order/views.py:1513 msgid "Delete Line Item" msgstr "Position löschen" -#: order/views.py:1496 order/views.py:1508 +#: order/views.py:1506 order/views.py:1518 msgid "Deleted line item" msgstr "Position gelöscht" -#: order/views.py:1521 +#: order/views.py:1531 msgid "Allocate Serial Numbers" msgstr "Seriennummern zuweisen" -#: order/views.py:1566 +#: order/views.py:1576 #, python-brace-format msgid "Allocated {n} items" msgstr "{n} Positionen zugeordnet" -#: order/views.py:1582 +#: order/views.py:1592 msgid "Select line item" msgstr "Position auswählen" -#: order/views.py:1613 +#: order/views.py:1623 #, python-brace-format msgid "No matching item for serial {serial}" msgstr "Kein passends Teil für Seriennummer {serial} gefunden" -#: order/views.py:1623 +#: order/views.py:1633 #, python-brace-format msgid "{serial} is not in stock" msgstr "{serial} ist nicht auf Lager" -#: order/views.py:1631 +#: order/views.py:1641 #, python-brace-format msgid "{serial} already allocated to an order" msgstr "{serial} bereits einem Auftrag zugeordnet" -#: order/views.py:1685 +#: order/views.py:1695 msgid "Allocate Stock to Order" msgstr "Lagerbestand dem Auftrag zuweisen" -#: order/views.py:1759 +#: order/views.py:1769 msgid "Edit Allocation Quantity" msgstr "Zuordnung bearbeiten" -#: order/views.py:1774 +#: order/views.py:1784 msgid "Remove allocation" msgstr "Zuordnung entfernen" -#: order/views.py:1846 +#: order/views.py:1856 msgid "Sales order not found" msgstr "Auftrag nicht gefunden" -#: order/views.py:1852 +#: order/views.py:1862 msgid "Price not found" msgstr "Preis nicht gefunden" -#: order/views.py:1855 +#: order/views.py:1865 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "Stückpreis für {part} auf {price} aktualisiert" -#: order/views.py:1860 +#: order/views.py:1870 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "{part} Stückpreis auf {price} und Menge auf {qty} aktualisiert" -#: part/bom.py:138 part/models.py:72 part/models.py:762 +#: part/bom.py:138 part/models.py:72 part/models.py:747 #: part/templates/part/category.html:66 part/templates/part/detail.html:90 msgid "Default Location" msgstr "Standard-Lagerort" @@ -3633,7 +3725,7 @@ msgstr "Zulieferer einschließen" msgid "Include part supplier data in exported BOM" msgstr "Zulieferer-Daten in Stückliste-Export einschließen" -#: part/forms.py:122 part/models.py:2168 +#: part/forms.py:122 part/models.py:2191 msgid "Parent Part" msgstr "Ausgangsteil" @@ -3709,7 +3801,7 @@ msgstr "Parameter-Vorlage zu Kategorien dieser Ebene hinzufügen" msgid "Add parameter template to all categories" msgstr "Parameter-Vorlage zu allen Kategorien hinzufügen" -#: part/forms.py:344 part/models.py:2263 +#: part/forms.py:344 part/models.py:2286 msgid "Sub part" msgstr "Untergeordnetes Teil" @@ -3729,7 +3821,7 @@ msgstr "Standard Stichwörter" msgid "Default keywords for parts in this category" msgstr "Standard-Stichworte für Teile dieser Kategorie" -#: part/models.py:82 part/models.py:2214 +#: part/models.py:82 part/models.py:2237 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Teil-Kategorie" @@ -3740,366 +3832,361 @@ msgstr "Teil-Kategorie" msgid "Part Categories" msgstr "Teil-Kategorien" -#: part/models.py:446 part/models.py:458 +#: part/models.py:448 part/models.py:460 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "Teil '{p1}' wird in Stückliste für Teil '{p2}' benutzt (rekursiv)" -#: part/models.py:555 +#: part/models.py:557 msgid "Next available serial numbers are" msgstr "Nächste verfügbare Seriennummern wären" -#: part/models.py:559 +#: part/models.py:561 msgid "Next available serial number is" msgstr "Nächste verfügbare Seriennummer ist" -#: part/models.py:564 +#: part/models.py:566 msgid "Most recent serial number is" msgstr "Die neuste Seriennummer ist" -#: part/models.py:643 +#: part/models.py:645 msgid "Duplicate IPN not allowed in part settings" msgstr "Doppelte IPN in den Teil-Einstellungen nicht erlaubt" -#: part/models.py:654 -msgid "Part must be unique for name, IPN and revision" -msgstr "Namen, Teile- und Revisionsnummern müssen eindeutig sein" - -#: part/models.py:685 part/templates/part/detail.html:22 +#: part/models.py:670 part/templates/part/detail.html:22 msgid "Part name" msgstr "Name des Teils" -#: part/models.py:692 +#: part/models.py:677 msgid "Is Template" msgstr "Ist eine Vorlage" -#: part/models.py:693 +#: part/models.py:678 msgid "Is this part a template part?" msgstr "Ist dieses Teil eine Vorlage?" -#: part/models.py:704 +#: part/models.py:689 msgid "Is this part a variant of another part?" msgstr "Ist dieses Teil eine Variante eines anderen Teils?" -#: part/models.py:705 part/templates/part/detail.html:60 +#: part/models.py:690 part/templates/part/detail.html:60 msgid "Variant Of" msgstr "Variante von" -#: part/models.py:711 +#: part/models.py:696 msgid "Part description" msgstr "Beschreibung des Teils" -#: part/models.py:716 part/templates/part/category.html:73 +#: part/models.py:701 part/templates/part/category.html:73 #: part/templates/part/detail.html:67 msgid "Keywords" msgstr "Schlüsselwörter" -#: part/models.py:717 +#: part/models.py:702 msgid "Part keywords to improve visibility in search results" msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern" -#: part/models.py:724 part/models.py:2213 part/templates/part/detail.html:73 -#: part/templates/part/set_category.html:15 templates/js/part.js:451 +#: part/models.py:709 part/models.py:2236 part/templates/part/detail.html:73 +#: part/templates/part/set_category.html:15 templates/js/part.js:452 msgid "Category" msgstr "Kategorie" -#: part/models.py:725 +#: part/models.py:710 msgid "Part category" msgstr "Teile-Kategorie" -#: part/models.py:730 part/templates/part/detail.html:28 +#: part/models.py:715 part/templates/part/detail.html:28 #: part/templates/part/part_base.html:87 templates/js/part.js:169 #: templates/js/part.js:296 msgid "IPN" msgstr "IPN (Interne Produktnummer)" -#: part/models.py:731 +#: part/models.py:716 msgid "Internal Part Number" msgstr "Interne Teilenummer" -#: part/models.py:737 +#: part/models.py:722 msgid "Part revision or version number" msgstr "Revisions- oder Versionsnummer" -#: part/models.py:738 part/templates/part/detail.html:35 report/models.py:198 +#: part/models.py:723 part/templates/part/detail.html:35 report/models.py:199 #: templates/js/part.js:173 msgid "Revision" msgstr "Revision" -#: part/models.py:760 +#: part/models.py:745 msgid "Where is this item normally stored?" msgstr "Wo wird dieses Teil normalerweise gelagert?" -#: part/models.py:807 part/templates/part/detail.html:97 +#: part/models.py:792 part/templates/part/detail.html:97 msgid "Default Supplier" msgstr "Standard Zulieferer" -#: part/models.py:808 +#: part/models.py:793 msgid "Default supplier part" msgstr "Standard Zuliefererteil" -#: part/models.py:815 +#: part/models.py:800 msgid "Default Expiry" msgstr "Standard Ablaufzeit" -#: part/models.py:816 +#: part/models.py:801 msgid "Expiry time (in days) for stock items of this part" msgstr "Ablauf-Zeit (in Tagen) für Lagerbestand dieses Teils" -#: part/models.py:821 part/templates/part/detail.html:113 +#: part/models.py:806 part/templates/part/detail.html:113 msgid "Minimum Stock" msgstr "Minimaler Lagerbestand" -#: part/models.py:822 +#: part/models.py:807 msgid "Minimum allowed stock level" msgstr "Minimal zulässiger Lagerbestand" -#: part/models.py:828 part/models.py:2142 part/templates/part/detail.html:106 -#: part/templates/part/params.html:29 -msgid "Units" -msgstr "Einheiten" - -#: part/models.py:829 +#: part/models.py:814 msgid "Stock keeping units for this part" msgstr "Stock Keeping Units (SKU) für dieses Teil" -#: part/models.py:835 +#: part/models.py:820 msgid "Can this part be built from other parts?" msgstr "Kann dieses Teil aus anderen Teilen angefertigt werden?" -#: part/models.py:841 +#: part/models.py:826 msgid "Can this part be used to build other parts?" msgstr "Kann dieses Teil zum Bauauftrag von anderen genutzt werden?" -#: part/models.py:847 +#: part/models.py:832 msgid "Does this part have tracking for unique items?" msgstr "Hat dieses Teil Tracking für einzelne Objekte?" -#: part/models.py:852 +#: part/models.py:837 msgid "Can this part be purchased from external suppliers?" msgstr "Kann dieses Teil von externen Zulieferern gekauft werden?" -#: part/models.py:857 +#: part/models.py:842 msgid "Can this part be sold to customers?" msgstr "Kann dieses Teil an Kunden verkauft werden?" -#: part/models.py:861 part/templates/part/detail.html:227 +#: part/models.py:846 part/templates/part/detail.html:227 #: templates/js/table_filters.js:21 templates/js/table_filters.js:65 #: templates/js/table_filters.js:241 templates/js/table_filters.js:310 msgid "Active" msgstr "Aktiv" -#: part/models.py:862 +#: part/models.py:847 msgid "Is this part active?" msgstr "Ist dieses Teil aktiv?" -#: part/models.py:867 +#: part/models.py:852 msgid "Is this a virtual part, such as a software product or license?" msgstr "Ist dieses Teil virtuell, wie zum Beispiel eine Software oder Lizenz?" -#: part/models.py:872 +#: part/models.py:857 msgid "Part notes - supports Markdown formatting" msgstr "Bemerkungen - unterstüzt Markdown-Formatierung" -#: part/models.py:875 +#: part/models.py:860 msgid "BOM checksum" msgstr "Prüfsumme der Stückliste" -#: part/models.py:875 +#: part/models.py:860 msgid "Stored BOM checksum" msgstr "Prüfsumme der Stückliste gespeichert" -#: part/models.py:878 +#: part/models.py:863 msgid "BOM checked by" msgstr "Stückliste kontrolliert von" -#: part/models.py:880 +#: part/models.py:865 msgid "BOM checked date" msgstr "BOM Kontrolldatum" -#: part/models.py:884 +#: part/models.py:869 msgid "Creation User" msgstr "Erstellungs-Nutzer" -#: part/models.py:1616 +#: part/models.py:1608 msgid "Sell multiple" msgstr "Mehrere verkaufen" -#: part/models.py:2040 +#: part/models.py:2063 msgid "Test templates can only be created for trackable parts" msgstr "Test-Vorlagen können nur für verfolgbare Teile angelegt werden" -#: part/models.py:2057 +#: part/models.py:2080 msgid "Test with this name already exists for this part" msgstr "Ein Test mit diesem Namen besteht bereits für dieses Teil" -#: part/models.py:2077 templates/js/part.js:716 templates/js/stock.js:117 +#: part/models.py:2100 templates/js/part.js:717 templates/js/stock.js:117 msgid "Test Name" msgstr "Test-Name" -#: part/models.py:2078 +#: part/models.py:2101 msgid "Enter a name for the test" msgstr "Namen für diesen Test eingeben" -#: part/models.py:2083 +#: part/models.py:2106 msgid "Test Description" msgstr "Test-Beschreibung" -#: part/models.py:2084 +#: part/models.py:2107 msgid "Enter description for this test" msgstr "Beschreibung für diesen Test eingeben" -#: part/models.py:2089 templates/js/part.js:725 +#: part/models.py:2112 templates/js/part.js:726 #: templates/js/table_filters.js:227 msgid "Required" msgstr "Benötigt" -#: part/models.py:2090 +#: part/models.py:2113 msgid "Is this test required to pass?" msgstr "Muss dieser Test erfolgreich sein?" -#: part/models.py:2095 templates/js/part.js:733 +#: part/models.py:2118 templates/js/part.js:734 msgid "Requires Value" msgstr "Erfordert Wert" -#: part/models.py:2096 +#: part/models.py:2119 msgid "Does this test require a value when adding a test result?" msgstr "Muss für diesen Test ein Wert für das Test-Ergebnis eingetragen werden?" -#: part/models.py:2101 templates/js/part.js:740 +#: part/models.py:2124 templates/js/part.js:741 msgid "Requires Attachment" msgstr "Anhang muss eingegeben werden" -#: part/models.py:2102 +#: part/models.py:2125 msgid "Does this test require a file attachment when adding a test result?" msgstr "Muss für diesen Test ein Anhang für das Test-Ergebnis hinzugefügt werden?" -#: part/models.py:2135 +#: part/models.py:2158 msgid "Parameter template name must be unique" msgstr "Vorlagen-Name des Parameters muss eindeutig sein" -#: part/models.py:2140 +#: part/models.py:2163 msgid "Parameter Name" msgstr "Name des Parameters" -#: part/models.py:2142 +#: part/models.py:2165 msgid "Parameter Units" msgstr "Einheit des Parameters" -#: part/models.py:2170 part/models.py:2219 part/models.py:2220 +#: part/models.py:2193 part/models.py:2242 part/models.py:2243 #: templates/InvenTree/settings/category.html:62 msgid "Parameter Template" msgstr "Parameter Vorlage" -#: part/models.py:2172 +#: part/models.py:2195 msgid "Data" msgstr "Wert" -#: part/models.py:2172 +#: part/models.py:2195 msgid "Parameter Value" msgstr "Parameter Wert" -#: part/models.py:2224 templates/InvenTree/settings/category.html:67 +#: part/models.py:2247 templates/InvenTree/settings/category.html:67 msgid "Default Value" msgstr "Standard-Wert" -#: part/models.py:2225 +#: part/models.py:2248 msgid "Default Parameter Value" msgstr "Standard Parameter Wert" -#: part/models.py:2255 +#: part/models.py:2278 msgid "Select parent part" msgstr "Ausgangsteil auswählen" -#: part/models.py:2264 +#: part/models.py:2287 msgid "Select part to be used in BOM" msgstr "Teil für die Nutzung in der Stückliste auswählen" -#: part/models.py:2270 +#: part/models.py:2293 msgid "BOM quantity for this BOM item" msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil" -#: part/models.py:2272 templates/js/bom.js:216 templates/js/bom.js:285 +#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:285 msgid "Optional" msgstr "Optional" -#: part/models.py:2272 +#: part/models.py:2295 msgid "This BOM item is optional" msgstr "Diese Stücklisten-Position ist optional" -#: part/models.py:2275 +#: part/models.py:2298 msgid "Overage" msgstr "Überschuss" -#: part/models.py:2276 +#: part/models.py:2299 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Geschätzter Ausschuss (absolut oder prozentual)" -#: part/models.py:2279 +#: part/models.py:2302 msgid "BOM item reference" msgstr "Referenz der Postion auf der Stückliste" -#: part/models.py:2282 +#: part/models.py:2305 msgid "BOM item notes" msgstr "Notizen zur Stücklisten-Position" -#: part/models.py:2284 +#: part/models.py:2307 msgid "Checksum" msgstr "Prüfsumme" -#: part/models.py:2284 +#: part/models.py:2307 msgid "BOM line checksum" msgstr "Prüfsumme der Stückliste" -#: part/models.py:2288 templates/js/bom.js:302 templates/js/bom.js:309 +#: part/models.py:2311 templates/js/bom.js:302 templates/js/bom.js:309 #: templates/js/table_filters.js:51 msgid "Inherited" msgstr "Geerbt" -#: part/models.py:2289 +#: part/models.py:2312 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Diese Stücklisten-Position wird in die Stücklisten von Teil-Varianten vererbt" -#: part/models.py:2294 templates/js/bom.js:294 +#: part/models.py:2317 templates/js/bom.js:294 msgid "Allow Variants" msgstr "Varianten zulassen" -#: part/models.py:2295 +#: part/models.py:2318 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Lagerbestand von Varianten kann für diese Stücklisten-Position verwendet werden" -#: part/models.py:2371 part/views.py:1681 part/views.py:1733 +#: part/models.py:2394 part/views.py:1692 part/views.py:1744 #: stock/models.py:294 msgid "Quantity must be integer value for trackable parts" msgstr "Menge muss eine Ganzzahl sein" -#: part/models.py:2380 part/models.py:2382 +#: part/models.py:2403 part/models.py:2405 msgid "Sub part must be specified" msgstr "Zuliefererteil muss festgelegt sein" -#: part/models.py:2385 +#: part/models.py:2408 msgid "BOM Item" msgstr "Stücklisten-Position" -#: part/models.py:2502 +#: part/models.py:2527 msgid "Part 1" msgstr "Teil 1" -#: part/models.py:2506 +#: part/models.py:2531 msgid "Part 2" msgstr "Teil 2" -#: part/models.py:2506 +#: part/models.py:2531 msgid "Select Related Part" msgstr "verknüpftes Teil auswählen" -#: part/models.py:2538 +#: part/models.py:2563 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "Fehler bei Verwandschaft: Ist das Teil mit sich selbst verwandt oder ist das die Verwandtschaft nicht eindeutig?" #: part/templates/part/allocation.html:11 -msgid "Part Stock Allocations" -msgstr "Teil-Bestandszuordnungen" +msgid "Build Order Allocations" +msgstr "" + +#: part/templates/part/allocation.html:24 +msgid "Sales Order Allocations" +msgstr "" #: part/templates/part/attachments.html:10 msgid "Part Attachments" @@ -4113,8 +4200,8 @@ msgstr "Sind Sie sicher, dass Sie diese Stücklisten-Position löschen wollen?" msgid "Deleting this entry will remove the BOM row from the following part" msgstr "Die Löschung dieses Eintrags wird das Stücklisten-Position vom folgenden Teil entfernen" -#: part/templates/part/bom.html:10 part/templates/part/navbar.html:48 -#: part/templates/part/navbar.html:51 +#: part/templates/part/bom.html:10 part/templates/part/navbar.html:50 +#: part/templates/part/navbar.html:53 msgid "Bill of Materials" msgstr "Stückliste" @@ -4161,7 +4248,7 @@ msgstr "Stückliste bearbeiten" msgid "Validate Bill of Materials" msgstr "Stückliste kontrollieren" -#: part/templates/part/bom.html:61 part/views.py:1976 +#: part/templates/part/bom.html:61 part/views.py:1987 msgid "Export Bill of Materials" msgstr "Stückliste exportieren" @@ -4178,7 +4265,7 @@ msgid "All selected BOM items will be deleted" msgstr "Alle ausgewählte Stücklistenpositionen werden gelöscht" #: part/templates/part/bom.html:160 part/views.py:585 -#: templates/js/stock.js:1288 +#: templates/js/stock.js:1313 msgid "Create New Part" msgstr "Neues Teil anlegen" @@ -4259,7 +4346,7 @@ msgstr "Neuen Bauauftrag beginnen" msgid "All parts" msgstr "Alle Teile" -#: part/templates/part/category.html:29 part/views.py:2379 +#: part/templates/part/category.html:29 part/views.py:2397 msgid "Create new part category" msgstr "Teil-Kategorie anlegen" @@ -4319,7 +4406,7 @@ msgid "View grid display" msgstr "Rasteransicht anzeigen" #: part/templates/part/category.html:209 -#: stock/templates/stock/location.html:192 templates/js/stock.js:712 +#: stock/templates/stock/location.html:192 templates/js/stock.js:737 msgid "Create new location" msgstr "Neuen Lagerort anlegen" @@ -4374,14 +4461,8 @@ msgstr "Wenn diese Kat. gelöscht wird, werden diese Teile in die übergeordnete msgid "If this category is deleted, these parts will be moved to the top-level category Teile" msgstr "Wenn diese Kat. gelöscht wird, werden diese Teile in die oberste Kat. verschoben" -#: part/templates/part/category_navbar.html:34 -#: part/templates/part/category_navbar.html:37 -#: part/templates/part/navbar.html:22 -msgid "Parameters" -msgstr "Parameter" - #: part/templates/part/category_parametric.html:10 -#: part/templates/part/navbar.html:19 part/templates/part/params.html:10 +#: part/templates/part/navbar.html:21 part/templates/part/params.html:10 msgid "Part Parameters" msgstr "Teilparameter" @@ -4409,7 +4490,7 @@ msgstr "Teil evtl. Duplikat dieser Teile" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "%(full_name)s - %(desc)s (%(match_per)s%% übereinstimmend)" -#: part/templates/part/detail.html:11 part/templates/part/navbar.html:11 +#: part/templates/part/detail.html:11 part/templates/part/navbar.html:13 msgid "Part Details" msgstr "Teil Details" @@ -4489,6 +4570,36 @@ msgstr "Teil ist aktiv" msgid "Part is not active" msgstr "Teil ist nicht aktiv" +#: part/templates/part/internal_prices.html:11 +#: part/templates/part/navbar.html:100 +msgid "Internal Price Information" +msgstr "" + +#: part/templates/part/internal_prices.html:19 part/views.py:2822 +msgid "Add Internal Price Break" +msgstr "" + +#: part/templates/part/internal_prices.html:28 templates/403.html:5 +#: templates/403.html:11 +msgid "Permission Denied" +msgstr "Zugriff verweigert" + +#: part/templates/part/internal_prices.html:31 templates/403.html:14 +msgid "You do not have permission to view this page." +msgstr "Keine Berechtigung zum Anzeigen dieser Seite." + +#: part/templates/part/internal_prices.html:59 +msgid "No internal price break information found" +msgstr "" + +#: part/templates/part/internal_prices.html:110 +msgid "Edit internal price break" +msgstr "" + +#: part/templates/part/internal_prices.html:111 +msgid "Delete internal price break" +msgstr "" + #: part/templates/part/manufacturer.html:11 msgid "Part Manufacturers" msgstr "Teil-Hersteller" @@ -4502,127 +4613,141 @@ msgstr "Herstellerteile löschen" msgid "Create new manufacturer" msgstr "Neuen Hersteller anlegen" -#: part/templates/part/navbar.html:26 part/templates/part/variants.html:11 +#: part/templates/part/navbar.html:28 part/templates/part/variants.html:11 msgid "Part Variants" msgstr "Teil Varianten" -#: part/templates/part/navbar.html:29 +#: part/templates/part/navbar.html:31 msgid "Variants" msgstr "Varianten" -#: part/templates/part/navbar.html:40 +#: part/templates/part/navbar.html:42 msgid "Allocated Stock" msgstr "Lagerbestand zuweisen" -#: part/templates/part/navbar.html:43 +#: part/templates/part/navbar.html:45 msgid "Allocations" msgstr "Zuweisungen" -#: part/templates/part/navbar.html:64 part/templates/part/navbar.html:67 +#: part/templates/part/navbar.html:66 part/templates/part/navbar.html:69 msgid "Used In" msgstr "Benutzt in" -#: part/templates/part/navbar.html:72 part/templates/part/order_prices.html:12 +#: part/templates/part/navbar.html:74 part/templates/part/order_prices.html:12 msgid "Order Price Information" msgstr "Bestellpreisinformationen" -#: part/templates/part/navbar.html:75 +#: part/templates/part/navbar.html:77 msgid "Order Price" msgstr "Bestellpreis" -#: part/templates/part/navbar.html:98 +#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:93 +#: part/templates/part/part_pricing.html:82 +msgid "Internal Price" +msgstr "Interner Preis" + +#: part/templates/part/navbar.html:106 msgid "Sales Price Information" msgstr "Preisinformationen ansehen" -#: part/templates/part/navbar.html:112 part/templates/part/part_tests.html:10 +#: part/templates/part/navbar.html:120 part/templates/part/part_tests.html:10 msgid "Part Test Templates" msgstr "Teil Test-Vorlagen" -#: part/templates/part/navbar.html:115 stock/templates/stock/item_base.html:409 +#: part/templates/part/navbar.html:123 stock/templates/stock/item_base.html:414 msgid "Tests" msgstr "Tests" -#: part/templates/part/navbar.html:119 part/templates/part/navbar.html:122 +#: part/templates/part/navbar.html:127 part/templates/part/navbar.html:130 #: part/templates/part/related.html:10 msgid "Related Parts" msgstr "Verknüpfte Teile" -#: part/templates/part/navbar.html:131 part/templates/part/notes.html:12 +#: part/templates/part/navbar.html:139 part/templates/part/notes.html:12 msgid "Part Notes" msgstr "Teil-Bemerkungen" -#: part/templates/part/order_prices.html:21 +#: part/templates/part/order_prices.html:24 +#: part/templates/part/part_base.html:282 +msgid "Calculate" +msgstr "Berechnen" + +#: part/templates/part/order_prices.html:31 msgid "Pricing ranges" msgstr "Preisspannen" -#: part/templates/part/order_prices.html:26 -#: part/templates/part/part_pricing.html:19 +#: part/templates/part/order_prices.html:36 +#: part/templates/part/part_pricing.html:22 msgid "Supplier Pricing" msgstr "Zulieferer-Preise" -#: part/templates/part/order_prices.html:27 -#: part/templates/part/order_prices.html:52 -#: part/templates/part/order_prices.html:83 -#: part/templates/part/part_pricing.html:23 -#: part/templates/part/part_pricing.html:49 -#: part/templates/part/part_pricing.html:81 +#: part/templates/part/order_prices.html:37 +#: part/templates/part/order_prices.html:62 +#: part/templates/part/order_prices.html:94 +#: part/templates/part/order_prices.html:108 +#: part/templates/part/part_pricing.html:26 +#: part/templates/part/part_pricing.html:52 +#: part/templates/part/part_pricing.html:85 +#: part/templates/part/part_pricing.html:100 msgid "Unit Cost" msgstr "Stückpreis" -#: part/templates/part/order_prices.html:34 -#: part/templates/part/order_prices.html:59 -#: part/templates/part/order_prices.html:88 -#: part/templates/part/part_pricing.html:29 -#: part/templates/part/part_pricing.html:55 -#: part/templates/part/part_pricing.html:85 +#: part/templates/part/order_prices.html:44 +#: part/templates/part/order_prices.html:69 +#: part/templates/part/order_prices.html:99 +#: part/templates/part/order_prices.html:113 +#: part/templates/part/part_pricing.html:32 +#: part/templates/part/part_pricing.html:58 +#: part/templates/part/part_pricing.html:89 +#: part/templates/part/part_pricing.html:104 msgid "Total Cost" msgstr "Gesamtkosten" -#: part/templates/part/order_prices.html:42 -#: part/templates/part/part_pricing.html:37 +#: part/templates/part/order_prices.html:52 +#: part/templates/part/part_pricing.html:40 msgid "No supplier pricing available" msgstr "Keine Zulieferer-Preise verfügbar" -#: part/templates/part/order_prices.html:51 -#: part/templates/part/order_prices.html:103 -#: part/templates/part/part_pricing.html:45 +#: part/templates/part/order_prices.html:61 +#: part/templates/part/order_prices.html:128 +#: part/templates/part/part_pricing.html:48 msgid "BOM Pricing" msgstr "Stücklistenpreise" -#: part/templates/part/order_prices.html:67 -#: part/templates/part/part_pricing.html:63 +#: part/templates/part/order_prices.html:77 +#: part/templates/part/part_pricing.html:66 msgid "Note: BOM pricing is incomplete for this part" msgstr "Anmerkung: Stücklistenbepreisung für dieses Teil ist unvollständig" -#: part/templates/part/order_prices.html:74 -#: part/templates/part/part_pricing.html:70 +#: part/templates/part/order_prices.html:84 +#: part/templates/part/part_pricing.html:73 msgid "No BOM pricing available" msgstr "Keine Stücklisten-Preise verfügbar" -#: part/templates/part/order_prices.html:97 -#: part/templates/part/part_pricing.html:94 +#: part/templates/part/order_prices.html:122 +#: part/templates/part/part_pricing.html:113 msgid "No pricing information is available for this part." msgstr "Keine Preise für dieses Teil verfügbar" -#: part/templates/part/order_prices.html:113 +#: part/templates/part/order_prices.html:138 msgid "Stock Pricing" msgstr "Bestandspreise" -#: part/templates/part/order_prices.html:121 +#: part/templates/part/order_prices.html:146 msgid "No stock pricing history is available for this part." msgstr "Für dieses Teil sind keine Bestandspreise verfügbar." -#: part/templates/part/order_prices.html:140 +#: part/templates/part/order_prices.html:165 #, python-format msgid "Single Price - %(currency)s" msgstr "Einzelpreis - %(currency)s" -#: part/templates/part/order_prices.html:152 +#: part/templates/part/order_prices.html:177 #, python-format msgid "Single Price Difference - %(currency)s" msgstr "Einzelpreisdifferenz - %(currency)s" -#: part/templates/part/order_prices.html:163 +#: part/templates/part/order_prices.html:189 #, python-format msgid "Part Single Price - %(currency)s" msgstr "Einzelpreis für Zuliefererteil- %(currency)s" @@ -4631,19 +4756,6 @@ msgstr "Einzelpreis für Zuliefererteil- %(currency)s" msgid "Add new parameter" msgstr "Parameter hinzufügen" -#: part/templates/part/params.html:18 -#: templates/InvenTree/settings/category.html:29 -#: templates/InvenTree/settings/part.html:44 -msgid "New Parameter" -msgstr "Neuer Parameter" - -#: part/templates/part/params.html:28 -#: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1756 templates/InvenTree/settings/header.html:8 -#: templates/js/stock.js:137 -msgid "Value" -msgstr "Wert" - #: part/templates/part/params.html:41 templates/InvenTree/settings/user.html:19 msgid "Edit" msgstr "Bearbeiten" @@ -4661,7 +4773,7 @@ msgid "Part List" msgstr "Teileliste" #: part/templates/part/part_base.html:26 templates/js/company.js:156 -#: templates/js/company.js:254 templates/js/part.js:84 templates/js/part.js:161 +#: templates/js/company.js:355 templates/js/part.js:84 templates/js/part.js:161 msgid "Inactive" msgstr "Inaktiv" @@ -4741,14 +4853,10 @@ msgid "Can Build" msgstr "Herstellbar" #: part/templates/part/part_base.html:178 templates/js/part.js:312 -#: templates/js/part.js:484 +#: templates/js/part.js:485 msgid "Building" msgstr "Im Bau" -#: part/templates/part/part_base.html:265 -msgid "Calculate" -msgstr "Berechnen" - #: part/templates/part/part_tests.html:17 msgid "Add Test Template" msgstr "Test Vorlage hinzufügen" @@ -4817,7 +4925,7 @@ msgid "Showing stock for all variants of %(full_name)s" msgstr "Lagerbestand aller Varianten von %(full_name)s" #: part/templates/part/stock_count.html:7 templates/js/bom.js:239 -#: templates/js/part.js:302 templates/js/part.js:488 +#: templates/js/part.js:302 templates/js/part.js:489 msgid "No Stock" msgstr "Kein Bestand" @@ -4854,7 +4962,7 @@ msgstr "Neue Variante anlegen" msgid "New Variant" msgstr "neue Variante anlegen" -#: part/templatetags/inventree_extras.py:98 +#: part/templatetags/inventree_extras.py:99 msgid "Unknown database" msgstr "Unbekannte Datenbank" @@ -4923,227 +5031,239 @@ msgstr "Übereinstimmung gefunden - Teil trotzdem anlegen" msgid "Created new part" msgstr "Neues Teil angelegt" -#: part/views.py:914 +#: part/views.py:925 msgid "Part QR Code" msgstr "Teil-QR-Code" -#: part/views.py:1016 +#: part/views.py:1027 msgid "Upload Part Image" msgstr "Teilbild hochladen" -#: part/views.py:1022 part/views.py:1057 +#: part/views.py:1033 part/views.py:1068 msgid "Updated part image" msgstr "Teilbild aktualisiert" -#: part/views.py:1031 +#: part/views.py:1042 msgid "Select Part Image" msgstr "Teilbild auswählen" -#: part/views.py:1060 +#: part/views.py:1071 msgid "Part image not found" msgstr "Teilbild nicht gefunden" -#: part/views.py:1071 +#: part/views.py:1082 msgid "Edit Part Properties" msgstr "Teileigenschaften bearbeiten" -#: part/views.py:1106 +#: part/views.py:1117 msgid "Duplicate BOM" msgstr "Stückliste duplizieren" -#: part/views.py:1136 +#: part/views.py:1147 msgid "Confirm duplication of BOM from parent" msgstr "bestätige Duplizierung Stückliste von übergeordneter Stückliste" -#: part/views.py:1157 +#: part/views.py:1168 msgid "Validate BOM" msgstr "Stückliste überprüfen" -#: part/views.py:1178 +#: part/views.py:1189 msgid "Confirm that the BOM is valid" msgstr "Bestätigen, dass Stückliste korrekt ist" -#: part/views.py:1189 +#: part/views.py:1200 msgid "Validated Bill of Materials" msgstr "überprüfte Stückliste" -#: part/views.py:1323 +#: part/views.py:1334 msgid "No BOM file provided" msgstr "Keine Stückliste angegeben" -#: part/views.py:1684 +#: part/views.py:1695 msgid "Enter a valid quantity" msgstr "Bitte eine gültige Anzahl eingeben" -#: part/views.py:1709 part/views.py:1712 +#: part/views.py:1720 part/views.py:1723 msgid "Select valid part" msgstr "Bitte ein gültiges Teil auswählen" -#: part/views.py:1718 +#: part/views.py:1729 msgid "Duplicate part selected" msgstr "Teil doppelt ausgewählt" -#: part/views.py:1756 +#: part/views.py:1767 msgid "Select a part" msgstr "Teil auswählen" -#: part/views.py:1762 +#: part/views.py:1773 msgid "Selected part creates a circular BOM" msgstr "gewähltes Teil erzeugt rekursive Stückliste" -#: part/views.py:1766 +#: part/views.py:1777 msgid "Specify quantity" msgstr "Anzahl angeben" -#: part/views.py:2028 +#: part/views.py:2039 msgid "Confirm Part Deletion" msgstr "Löschen des Teils bestätigen" -#: part/views.py:2035 +#: part/views.py:2046 msgid "Part was deleted" msgstr "Teil wurde gelöscht" -#: part/views.py:2044 +#: part/views.py:2055 msgid "Part Pricing" msgstr "Teilbepreisung" -#: part/views.py:2178 +#: part/views.py:2196 msgid "Create Part Parameter Template" msgstr "Teilparametervorlage anlegen" -#: part/views.py:2188 +#: part/views.py:2206 msgid "Edit Part Parameter Template" msgstr "Teilparametervorlage bearbeiten" -#: part/views.py:2195 +#: part/views.py:2213 msgid "Delete Part Parameter Template" msgstr "Teilparametervorlage löschen" -#: part/views.py:2203 +#: part/views.py:2221 msgid "Create Part Parameter" msgstr "Teilparameter anlegen" -#: part/views.py:2253 +#: part/views.py:2271 msgid "Edit Part Parameter" msgstr "Teilparameter bearbeiten" -#: part/views.py:2267 +#: part/views.py:2285 msgid "Delete Part Parameter" msgstr "Teilparameter löschen" -#: part/views.py:2327 +#: part/views.py:2345 msgid "Edit Part Category" msgstr "Teil-Kategorie bearbeiten" -#: part/views.py:2365 +#: part/views.py:2383 msgid "Delete Part Category" msgstr "Teil-Kategorie löschen" -#: part/views.py:2371 +#: part/views.py:2389 msgid "Part category was deleted" msgstr "Teil-Kategorie wurde gelöscht" -#: part/views.py:2423 +#: part/views.py:2441 msgid "Create Category Parameter Template" msgstr "Kategorieparametervorlage anlegen" -#: part/views.py:2524 +#: part/views.py:2542 msgid "Edit Category Parameter Template" msgstr "Kategorieparametervorlage bearbeiten" -#: part/views.py:2580 +#: part/views.py:2598 msgid "Delete Category Parameter Template" msgstr "Kategorieparametervorlage löschen" -#: part/views.py:2599 +#: part/views.py:2617 msgid "Create BOM Item" msgstr "Stücklisten-Position anlegen" -#: part/views.py:2669 +#: part/views.py:2687 msgid "Edit BOM item" msgstr "Stücklisten-Position bearbeiten" -#: part/views.py:2725 +#: part/views.py:2743 msgid "Confim BOM item deletion" msgstr "löschen von Stücklisten-Position bestätigen" -#: report/models.py:180 +#: part/views.py:2831 +msgid "Edit Internal Price Break" +msgstr "" + +#: part/views.py:2839 +msgid "Delete Internal Price Break" +msgstr "" + +#: report/models.py:181 msgid "Template name" msgstr "Vorlagen Name" -#: report/models.py:186 +#: report/models.py:187 msgid "Report template file" msgstr "Bericht-Vorlage Datei" -#: report/models.py:193 +#: report/models.py:194 msgid "Report template description" msgstr "Bericht-Vorlage Beschreibung" -#: report/models.py:199 +#: report/models.py:200 msgid "Report revision number (auto-increments)" msgstr "Bericht Revisionsnummer (autom. erhöht)" -#: report/models.py:275 +#: report/models.py:291 +msgid "Pattern for generating report filenames" +msgstr "Muster für die Erstellung von Berichtsdateinamen" + +#: report/models.py:298 msgid "Report template is enabled" msgstr "Bericht-Vorlage ist ein" -#: report/models.py:295 +#: report/models.py:318 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "BestandsObjekte-Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)" -#: report/models.py:303 +#: report/models.py:326 msgid "Include Installed Tests" msgstr "einfügen Installiert in Tests" -#: report/models.py:304 +#: report/models.py:327 msgid "Include test results for stock items installed inside assembled item" msgstr "Test-Ergebnisse für BestandsObjekte in Baugruppen einschließen" -#: report/models.py:347 +#: report/models.py:371 msgid "Build Filters" msgstr "Bauauftrag Filter" -#: report/models.py:348 +#: report/models.py:372 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "Bau-Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)" -#: report/models.py:385 +#: report/models.py:410 msgid "Part Filters" msgstr "Teil Filter" -#: report/models.py:386 +#: report/models.py:411 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "Teile-Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)" -#: report/models.py:416 +#: report/models.py:441 msgid "Purchase order query filters" msgstr "Bestellungs-Abfragefilter" -#: report/models.py:450 +#: report/models.py:475 msgid "Sales order query filters" msgstr "Auftrags-Abfragefilter" -#: report/models.py:500 +#: report/models.py:525 msgid "Snippet" msgstr "Snippet" -#: report/models.py:501 +#: report/models.py:526 msgid "Report snippet file" msgstr "Berichts-Snippet" -#: report/models.py:505 +#: report/models.py:530 msgid "Snippet file description" msgstr "Snippet-Beschreibung" -#: report/models.py:540 +#: report/models.py:565 msgid "Asset" msgstr "Ressource" -#: report/models.py:541 +#: report/models.py:566 msgid "Report asset file" msgstr "Berichts-Ressource" -#: report/models.py:544 +#: report/models.py:569 msgid "Asset file description" msgstr "Ressource-Beschreibung" @@ -5175,7 +5295,7 @@ msgid "Result" msgstr "Ergebnis" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/order.js:195 templates/js/stock.js:987 +#: templates/js/order.js:195 templates/js/stock.js:1012 msgid "Date" msgstr "Datum" @@ -5198,7 +5318,7 @@ msgid "Moved {n} parts to {loc}" msgstr "{n} Teile nach {loc} bewegt" #: stock/forms.py:114 stock/forms.py:418 stock/models.py:509 -#: stock/templates/stock/item_base.html:376 templates/js/stock.js:654 +#: stock/templates/stock/item_base.html:381 templates/js/stock.js:658 msgid "Expiry Date" msgstr "Ablaufdatum" @@ -5484,12 +5604,12 @@ msgid "Stock Item Attachments" msgstr "BestandsObjekt-Anhang" #: stock/templates/stock/item_base.html:33 -#: stock/templates/stock/item_base.html:380 templates/js/table_filters.js:150 +#: stock/templates/stock/item_base.html:385 templates/js/table_filters.js:150 msgid "Expired" msgstr "abgelaufen" #: stock/templates/stock/item_base.html:43 -#: stock/templates/stock/item_base.html:382 templates/js/table_filters.js:155 +#: stock/templates/stock/item_base.html:387 templates/js/table_filters.js:155 msgid "Stale" msgstr "überfällig" @@ -5619,7 +5739,7 @@ msgstr "Dieses BestandsObjekt wird automatisch gelöscht wenn der Lagerbestand a msgid "Stock Item Details" msgstr "BestandsObjekt-Details" -#: stock/templates/stock/item_base.html:289 templates/js/build.js:508 +#: stock/templates/stock/item_base.html:289 templates/js/build.js:593 msgid "No location set" msgstr "Kein Lagerort gesetzt" @@ -5631,25 +5751,29 @@ msgstr "Barcode-Bezeichner" msgid "Parent Item" msgstr "Elternposition" -#: stock/templates/stock/item_base.html:380 +#: stock/templates/stock/item_base.html:356 +msgid "No manufacturer set" +msgstr "" + +#: stock/templates/stock/item_base.html:385 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Dieses BestandsObjekt lief am %(item.expiry_date)s ab" -#: stock/templates/stock/item_base.html:382 +#: stock/templates/stock/item_base.html:387 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "Dieses BestandsObjekt läuft am %(item.expiry_date)s ab" -#: stock/templates/stock/item_base.html:389 templates/js/stock.js:660 +#: stock/templates/stock/item_base.html:394 templates/js/stock.js:664 msgid "Last Updated" msgstr "Zuletzt aktualisiert" -#: stock/templates/stock/item_base.html:394 +#: stock/templates/stock/item_base.html:399 msgid "Last Stocktake" msgstr "Letzte Inventur" -#: stock/templates/stock/item_base.html:398 +#: stock/templates/stock/item_base.html:403 msgid "No stocktake performed" msgstr "Keine Inventur ausgeführt" @@ -5946,7 +6070,7 @@ msgstr "Entfernen" msgid "Add Stock Items" msgstr "BestandsObjekte hinzufügen" -#: stock/views.py:1001 users/models.py:183 +#: stock/views.py:1001 users/models.py:187 msgid "Add" msgstr "Hinzufügen" @@ -6012,7 +6136,7 @@ msgstr "BestandsObjekt bearbeiten" msgid "Serialize Stock" msgstr "Lagerbestand erfassen" -#: stock/views.py:1575 templates/js/build.js:244 +#: stock/views.py:1575 templates/js/build.js:326 msgid "Create new Stock Item" msgstr "Neues BestandsObjekt hinzufügen" @@ -6044,14 +6168,6 @@ msgstr "Lagerbestands-Tracking-Eintrag bearbeiten" msgid "Add Stock Tracking Entry" msgstr "Lagerbestands-Tracking-Eintrag hinzufügen" -#: templates/403.html:5 templates/403.html:11 -msgid "Permission Denied" -msgstr "Zugriff verweigert" - -#: templates/403.html:14 -msgid "You do not have permission to view this page." -msgstr "Keine Berechtigung zum Anzeigen dieser Seite." - #: templates/404.html:5 templates/404.html:11 msgid "Page Not Found" msgstr "Seite nicht gefunden" @@ -6120,11 +6236,11 @@ msgstr "Suchergebnisse" msgid "Enter a search query" msgstr "Eine Sucheanfrage eingeben" -#: templates/InvenTree/search.html:268 templates/js/stock.js:298 +#: templates/InvenTree/search.html:268 templates/js/stock.js:303 msgid "Shipped to customer" msgstr "an Kunde versand" -#: templates/InvenTree/search.html:271 templates/js/stock.js:308 +#: templates/InvenTree/search.html:271 templates/js/stock.js:313 msgid "No stock location set" msgstr "Kein Lagerort gesetzt" @@ -6172,12 +6288,12 @@ msgid "No category parameter templates found" msgstr "Keine Kategorie-Parametervorlagen gefunden" #: templates/InvenTree/settings/category.html:70 -#: templates/InvenTree/settings/part.html:81 +#: templates/InvenTree/settings/part.html:85 msgid "Edit Template" msgstr "Vorlage bearbeiten" #: templates/InvenTree/settings/category.html:71 -#: templates/InvenTree/settings/part.html:82 +#: templates/InvenTree/settings/part.html:86 msgid "Delete Template" msgstr "Vorlage löschen" @@ -6225,11 +6341,11 @@ msgstr "Teil-Einstellungen" msgid "Part Options" msgstr "Teil-Optionen" -#: templates/InvenTree/settings/part.html:40 +#: templates/InvenTree/settings/part.html:44 msgid "Part Parameter Templates" msgstr "Teil-Parametervorlage" -#: templates/InvenTree/settings/part.html:61 +#: templates/InvenTree/settings/part.html:65 msgid "No part parameter templates found" msgstr "Keine Teilparametervorlagen gefunden" @@ -6345,47 +6461,51 @@ msgid "API Version" msgstr "API-Version" #: templates/about.html:39 +msgid "Python Version" +msgstr "" + +#: templates/about.html:44 msgid "Django Version" msgstr "Django-Version" -#: templates/about.html:46 +#: templates/about.html:51 msgid "Commit Hash" msgstr "Commit-Hash" -#: templates/about.html:53 +#: templates/about.html:58 msgid "Commit Date" msgstr "Commit-Datum" -#: templates/about.html:58 +#: templates/about.html:63 msgid "InvenTree Documentation" msgstr "InvenTree-Dokumentation" -#: templates/about.html:63 +#: templates/about.html:68 msgid "View Code on GitHub" msgstr "Code auf GitHub ansehen" -#: templates/about.html:68 +#: templates/about.html:73 msgid "Credits" msgstr "Danksagung" -#: templates/about.html:73 +#: templates/about.html:78 msgid "Mobile App" msgstr "Mobile App" -#: templates/about.html:78 +#: templates/about.html:83 msgid "Submit Bug Report" msgstr "Fehlerbericht senden" -#: templates/about.html:85 templates/clip.html:4 +#: templates/about.html:90 templates/clip.html:4 msgid "copy to clipboard" msgstr "In die Zwischenablage kopieren" -#: templates/about.html:85 +#: templates/about.html:90 msgid "copy version information" msgstr "Versionsinformationen kopieren" -#: templates/about.html:95 templates/js/modals.js:568 -#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54 +#: templates/about.html:100 templates/js/modals.js:568 +#: templates/js/modals.js:861 templates/modals.html:29 templates/modals.html:54 #: templates/modals.html:97 msgid "Close" msgstr "Schliessen" @@ -6446,7 +6566,7 @@ msgstr "Server-Fehler" msgid "Unknown response from server" msgstr "Unbekannte Antwort von Server erhalten" -#: templates/js/barcode.js:119 templates/js/modals.js:901 +#: templates/js/barcode.js:119 templates/js/modals.js:921 msgid "Invalid server response" msgstr "Ungültige Antwort von Server" @@ -6510,7 +6630,7 @@ msgstr "In Lagerorten buchen" msgid "Barcode does not match a valid location" msgstr "Barcode entspricht keinem Lagerort" -#: templates/js/bom.js:175 templates/js/build.js:1004 +#: templates/js/bom.js:175 templates/js/build.js:1091 msgid "Open subassembly" msgstr "Unterbaugruppe öffnen" @@ -6546,7 +6666,7 @@ msgstr "Stücklisten-Position bearbeiten" msgid "Delete BOM Item" msgstr "Stücklisten-Position löschen" -#: templates/js/bom.js:470 templates/js/build.js:340 templates/js/build.js:1102 +#: templates/js/bom.js:470 templates/js/build.js:423 templates/js/build.js:1189 msgid "No BOM items found" msgstr "Keine Stücklisten-Position(en) gefunden" @@ -6566,37 +6686,45 @@ msgstr "Endprodukt fertigstellen" msgid "Delete build output" msgstr "Endprodukt entfernen" -#: templates/js/build.js:243 templates/stock_table.html:20 +#: templates/js/build.js:184 +msgid "No build order allocations found" +msgstr "" + +#: templates/js/build.js:222 templates/js/order.js:382 +msgid "Location not specified" +msgstr "Standort nicht angegeben" + +#: templates/js/build.js:325 templates/stock_table.html:20 msgid "New Stock Item" msgstr "Neues BestandsObjekt" -#: templates/js/build.js:559 +#: templates/js/build.js:644 msgid "Required Part" msgstr "benötigtes Teil" -#: templates/js/build.js:580 +#: templates/js/build.js:665 msgid "Quantity Per" msgstr "Anzahl pro" -#: templates/js/build.js:648 templates/js/build.js:1066 +#: templates/js/build.js:735 templates/js/build.js:1153 #: templates/stock_table.html:59 msgid "Order stock" msgstr "Bestand bestellen" -#: templates/js/build.js:701 +#: templates/js/build.js:788 msgid "No builds matching query" msgstr "Keine Bauaufträge passen zur Anfrage" -#: templates/js/build.js:718 templates/js/part.js:390 templates/js/part.js:634 -#: templates/js/stock.js:509 templates/js/stock.js:941 +#: templates/js/build.js:805 templates/js/part.js:390 templates/js/part.js:635 +#: templates/js/stock.js:514 templates/js/stock.js:966 msgid "Select" msgstr "Auswählen" -#: templates/js/build.js:738 +#: templates/js/build.js:825 msgid "Build order is overdue" msgstr "Bauauftrag ist überfällig" -#: templates/js/build.js:837 +#: templates/js/build.js:924 msgid "No parts allocated for" msgstr "Keine Teile zugeordnet zu" @@ -6616,17 +6744,29 @@ msgstr "Keine Firmeninformation gefunden" msgid "No manufacturer parts found" msgstr "Keine Herstellerteile gefunden" -#: templates/js/company.js:148 templates/js/company.js:246 +#: templates/js/company.js:148 templates/js/company.js:347 #: templates/js/part.js:68 templates/js/part.js:153 msgid "Template part" msgstr "Vorlagenteil" -#: templates/js/company.js:152 templates/js/company.js:250 +#: templates/js/company.js:152 templates/js/company.js:351 #: templates/js/part.js:72 templates/js/part.js:157 msgid "Assembled part" msgstr "Baugruppe" -#: templates/js/company.js:227 +#: templates/js/company.js:226 +msgid "No parameters found" +msgstr "" + +#: templates/js/company.js:262 +msgid "Edit parameter" +msgstr "" + +#: templates/js/company.js:263 +msgid "Delete parameter" +msgstr "" + +#: templates/js/company.js:328 msgid "No supplier parts found" msgstr "Keine Zuliefererteile gefunden" @@ -6714,76 +6854,76 @@ msgstr "abbrechen" msgid "Loading Data" msgstr "Lade Daten" -#: templates/js/modals.js:567 templates/js/modals.js:845 +#: templates/js/modals.js:567 templates/js/modals.js:860 #: templates/modals.html:30 templates/modals.html:55 msgid "Submit" msgstr "Abschicken" -#: templates/js/modals.js:797 +#: templates/js/modals.js:811 msgid "Invalid response from server" msgstr "ungültige Antwort vom Server" -#: templates/js/modals.js:797 +#: templates/js/modals.js:811 msgid "Form data missing from server response" msgstr "Formulardaten fehlen bei Serverantwort" -#: templates/js/modals.js:810 +#: templates/js/modals.js:824 msgid "Error posting form data" msgstr "Formulardaten fehlerhaft" -#: templates/js/modals.js:901 +#: templates/js/modals.js:921 msgid "JSON response missing form data" msgstr "JSON Antwort enthält keine Formulardaten" -#: templates/js/modals.js:911 +#: templates/js/modals.js:931 msgid "No Response" msgstr "Keine Antwort" -#: templates/js/modals.js:912 +#: templates/js/modals.js:932 msgid "No response from the InvenTree server" msgstr "keine Antwort vom InvenTree Server" -#: templates/js/modals.js:916 +#: templates/js/modals.js:936 msgid "Error 400: Bad Request" msgstr "Fehler 400: Ungültige Anfrage" -#: templates/js/modals.js:917 +#: templates/js/modals.js:937 msgid "Server returned error code 400" msgstr "Fehler 400 von Server erhalten" -#: templates/js/modals.js:921 +#: templates/js/modals.js:941 msgid "Error 401: Not Authenticated" msgstr "Fehler 401: Nicht Angemeldet" -#: templates/js/modals.js:922 +#: templates/js/modals.js:942 msgid "Authentication credentials not supplied" msgstr "Authentication Kredentials nicht angegeben" -#: templates/js/modals.js:926 +#: templates/js/modals.js:946 msgid "Error 403: Permission Denied" msgstr "Fehler 403: keine Berechtigung" -#: templates/js/modals.js:927 +#: templates/js/modals.js:947 msgid "You do not have the required permissions to access this function" msgstr "Fehlende Berechtigung für diese Aktion" -#: templates/js/modals.js:931 +#: templates/js/modals.js:951 msgid "Error 404: Resource Not Found" msgstr "Fehler 404: Ressource nicht gefunden" -#: templates/js/modals.js:932 +#: templates/js/modals.js:952 msgid "The requested resource could not be located on the server" msgstr "Die angefragte Ressource kann auf diesem Server nicht gefunden werden" -#: templates/js/modals.js:936 +#: templates/js/modals.js:956 msgid "Error 408: Timeout" msgstr "Fehler 408: Zeitüberschreitung" -#: templates/js/modals.js:937 +#: templates/js/modals.js:957 msgid "Connection timeout while requesting data from server" msgstr "Verbindungszeitüberschreitung bei der Datenanforderung" -#: templates/js/modals.js:940 +#: templates/js/modals.js:960 msgid "Error requesting form data" msgstr "Fehler bei Formulardaten-Anfrage" @@ -6799,6 +6939,10 @@ msgstr "Bestellung überfällig" msgid "No sales orders found" msgstr "Keine Aufträge gefunden" +#: templates/js/order.js:343 +msgid "No sales order allocations found" +msgstr "" + #: templates/js/part.js:10 msgid "YES" msgstr "JA" @@ -6827,39 +6971,39 @@ msgstr "Verkäufliches Teil" msgid "No variants found" msgstr "Keine Varianten gefunden" -#: templates/js/part.js:280 templates/js/part.js:518 +#: templates/js/part.js:280 templates/js/part.js:519 msgid "No parts found" msgstr "Keine Teile gefunden" -#: templates/js/part.js:457 +#: templates/js/part.js:458 msgid "No category" msgstr "Keine Kategorie" -#: templates/js/part.js:475 templates/js/table_filters.js:323 +#: templates/js/part.js:476 templates/js/table_filters.js:323 msgid "Low stock" msgstr "Bestand niedrig" -#: templates/js/part.js:659 templates/js/stock.js:965 +#: templates/js/part.js:660 templates/js/stock.js:990 msgid "Path" msgstr "Pfad" -#: templates/js/part.js:702 +#: templates/js/part.js:703 msgid "No test templates matching query" msgstr "Keine zur Anfrage passenden Testvorlagen" -#: templates/js/part.js:753 templates/js/stock.js:75 +#: templates/js/part.js:754 templates/js/stock.js:75 msgid "Edit test result" msgstr "Testergebnis bearbeiten" -#: templates/js/part.js:754 templates/js/stock.js:76 +#: templates/js/part.js:755 templates/js/stock.js:76 msgid "Delete test result" msgstr "Testergebnis löschen" -#: templates/js/part.js:760 +#: templates/js/part.js:761 msgid "This test is defined for a parent part" msgstr "Dieses Testergebnis ist für ein Hauptteil" -#: templates/js/part.js:805 +#: templates/js/part.js:806 msgid "Single Price Difference" msgstr "Einzelpreisdifferenz" @@ -6957,155 +7101,155 @@ msgstr "Keine Testergebnisse gefunden" msgid "Test Date" msgstr "Testdatum" -#: templates/js/stock.js:290 +#: templates/js/stock.js:295 msgid "In production" msgstr "In Arbeit" -#: templates/js/stock.js:294 +#: templates/js/stock.js:299 msgid "Installed in Stock Item" msgstr "In BestandsObjekt installiert" -#: templates/js/stock.js:302 +#: templates/js/stock.js:307 msgid "Assigned to Sales Order" msgstr "Auftrag zugewiesen" -#: templates/js/stock.js:334 +#: templates/js/stock.js:339 msgid "No stock items matching query" msgstr "Keine zur Anfrage passenden BestandsObjekte" -#: templates/js/stock.js:355 +#: templates/js/stock.js:360 msgid "items" msgstr "Teile" -#: templates/js/stock.js:447 +#: templates/js/stock.js:452 msgid "batches" msgstr "lose" -#: templates/js/stock.js:474 +#: templates/js/stock.js:479 msgid "locations" msgstr "Lagerorte" -#: templates/js/stock.js:476 +#: templates/js/stock.js:481 msgid "Undefined location" msgstr "unbekannter Lagerort" -#: templates/js/stock.js:577 +#: templates/js/stock.js:582 msgid "Stock item is in production" msgstr "BestandsObjekt wird produziert" -#: templates/js/stock.js:582 +#: templates/js/stock.js:587 msgid "Stock item assigned to sales order" msgstr "BestandsObjekt wurde Auftrag zugewiesen" -#: templates/js/stock.js:585 +#: templates/js/stock.js:590 msgid "Stock item assigned to customer" msgstr "BestandsObjekt wurde Kunden zugewiesen" -#: templates/js/stock.js:589 +#: templates/js/stock.js:594 msgid "Stock item has expired" msgstr "BestandsObjekt ist abgelaufen" -#: templates/js/stock.js:591 +#: templates/js/stock.js:596 msgid "Stock item will expire soon" msgstr "BestandsObjekt läuft demnächst ab" -#: templates/js/stock.js:595 +#: templates/js/stock.js:600 msgid "Stock item has been allocated" msgstr "BestandsObjekt zugewiesen" -#: templates/js/stock.js:599 +#: templates/js/stock.js:604 msgid "Stock item has been installed in another item" msgstr "BestandsObjekt in anderem Element verbaut" -#: templates/js/stock.js:607 +#: templates/js/stock.js:611 msgid "Stock item has been rejected" msgstr "BestandsObjekt abgewiesen" -#: templates/js/stock.js:611 +#: templates/js/stock.js:615 msgid "Stock item is lost" msgstr "BestandsObjekt verloren" -#: templates/js/stock.js:614 +#: templates/js/stock.js:618 msgid "Stock item is destroyed" msgstr "BestandsObjekt zerstört" -#: templates/js/stock.js:618 templates/js/table_filters.js:143 +#: templates/js/stock.js:622 templates/js/table_filters.js:143 msgid "Depleted" msgstr "gelöscht" -#: templates/js/stock.js:647 +#: templates/js/stock.js:651 msgid "Stocktake" msgstr "Inventur" -#: templates/js/stock.js:828 +#: templates/js/stock.js:853 msgid "Stock Status" msgstr "Status" -#: templates/js/stock.js:843 +#: templates/js/stock.js:868 msgid "Set Stock Status" msgstr "Status setzen" -#: templates/js/stock.js:857 +#: templates/js/stock.js:882 msgid "Select Status Code" msgstr "Status Code setzen" -#: templates/js/stock.js:858 +#: templates/js/stock.js:883 msgid "Status code must be selected" msgstr "Status Code muss ausgewählt werden" -#: templates/js/stock.js:997 +#: templates/js/stock.js:1022 msgid "Invalid date" msgstr "Ungültiges Datum" -#: templates/js/stock.js:1044 +#: templates/js/stock.js:1069 msgid "Location no longer exists" msgstr "Standort nicht mehr vorhanden" -#: templates/js/stock.js:1063 +#: templates/js/stock.js:1088 msgid "Purchase order no longer exists" msgstr "Bestellung existiert nicht mehr" -#: templates/js/stock.js:1082 +#: templates/js/stock.js:1107 msgid "Customer no longer exists" msgstr "Kunde existiert nicht mehr" -#: templates/js/stock.js:1100 +#: templates/js/stock.js:1125 msgid "Stock item no longer exists" msgstr "Lagerbestand existiert nicht mehr" -#: templates/js/stock.js:1123 +#: templates/js/stock.js:1148 msgid "Added" msgstr "Hinzugefügt" -#: templates/js/stock.js:1131 +#: templates/js/stock.js:1156 msgid "Removed" msgstr "Entfernt" -#: templates/js/stock.js:1163 +#: templates/js/stock.js:1188 msgid "No user information" msgstr "Keine Benutzerinformation" -#: templates/js/stock.js:1175 +#: templates/js/stock.js:1200 msgid "Edit tracking entry" msgstr "Tracking-Eintrag bearbeiten" -#: templates/js/stock.js:1176 +#: templates/js/stock.js:1201 msgid "Delete tracking entry" msgstr "Tracking-Eintrag löschen" -#: templates/js/stock.js:1300 +#: templates/js/stock.js:1325 msgid "Create New Location" msgstr "Neuen Lagerort anlegen" -#: templates/js/stock.js:1341 +#: templates/js/stock.js:1366 msgid "No installed items" msgstr "Keine installierten Elemente" -#: templates/js/stock.js:1364 +#: templates/js/stock.js:1389 msgid "Serial" msgstr "Seriennummer" -#: templates/js/stock.js:1392 +#: templates/js/stock.js:1417 msgid "Uninstall Stock Item" msgstr "Lagerbestand entfernen" @@ -7271,56 +7415,56 @@ msgstr "Favorit" msgid "Purchasable" msgstr "Käuflich" -#: templates/js/tables.js:321 +#: templates/js/tables.js:323 msgid "Loading data" msgstr "Lade Daten" -#: templates/js/tables.js:324 +#: templates/js/tables.js:326 msgid "rows per page" msgstr "Zeilen pro Seite" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "Showing" msgstr "zeige" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "to" msgstr "bis" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "of" msgstr "von" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "rows" msgstr "Zeilen" -#: templates/js/tables.js:330 templates/search_form.html:6 +#: templates/js/tables.js:332 templates/search_form.html:6 #: templates/search_form.html:8 msgid "Search" msgstr "Suche" -#: templates/js/tables.js:333 +#: templates/js/tables.js:335 msgid "No matching results" msgstr "Keine passenden Ergebnisse gefunden" -#: templates/js/tables.js:336 +#: templates/js/tables.js:338 msgid "Hide/Show pagination" msgstr "Zeige/Verstecke Pagination" -#: templates/js/tables.js:339 +#: templates/js/tables.js:341 msgid "Refresh" msgstr "Neu laden" -#: templates/js/tables.js:342 +#: templates/js/tables.js:344 msgid "Toggle" msgstr "umschalten" -#: templates/js/tables.js:345 +#: templates/js/tables.js:347 msgid "Columns" msgstr "Spalten" -#: templates/js/tables.js:348 +#: templates/js/tables.js:350 msgid "All" msgstr "Alle" @@ -7564,35 +7708,35 @@ msgstr "Berechtigungen" msgid "Important dates" msgstr "wichtige Daten" -#: users/models.py:170 +#: users/models.py:174 msgid "Permission set" msgstr "Berechtigung geändert" -#: users/models.py:178 +#: users/models.py:182 msgid "Group" msgstr "Gruppe" -#: users/models.py:181 +#: users/models.py:185 msgid "View" msgstr "Ansicht" -#: users/models.py:181 +#: users/models.py:185 msgid "Permission to view items" msgstr "Berechtigung Einträge anzuzeigen" -#: users/models.py:183 +#: users/models.py:187 msgid "Permission to add items" msgstr "Berechtigung Einträge zu erstellen" -#: users/models.py:185 +#: users/models.py:189 msgid "Change" msgstr "Ändern" -#: users/models.py:185 +#: users/models.py:189 msgid "Permissions to edit items" msgstr "Berechtigungen Einträge zu ändern" -#: users/models.py:187 +#: users/models.py:191 msgid "Permission to delete items" msgstr "Berechtigung Einträge zu löschen" diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po index ab3c93408d..792cf22fc2 100644 --- a/InvenTree/locale/en/LC_MESSAGES/django.po +++ b/InvenTree/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-06-16 22:40+0000\n" +"POT-Creation-Date: 2021-06-24 21:38+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -78,7 +78,7 @@ msgstr "" msgid "Duplicate serial: {n}" msgstr "" -#: InvenTree/helpers.py:384 order/models.py:247 order/models.py:357 +#: InvenTree/helpers.py:384 order/models.py:248 order/models.py:358 #: stock/views.py:1795 msgid "Invalid quantity provided" msgstr "" @@ -123,9 +123,9 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1999 +#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:2022 #: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/stock.js:1154 +#: templates/js/stock.js:1179 msgid "User" msgstr "" @@ -133,34 +133,35 @@ msgstr "" msgid "upload date" msgstr "" -#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102 -#: part/models.py:686 part/models.py:2140 part/templates/part/params.html:27 -#: report/models.py:179 templates/InvenTree/search.html:137 -#: templates/InvenTree/search.html:289 templates/js/part.js:118 -#: templates/js/part.js:641 templates/js/stock.js:947 +#: InvenTree/models.py:107 InvenTree/models.py:108 company/models.py:396 +#: label/models.py:102 part/models.py:671 part/models.py:2163 +#: part/templates/part/params.html:27 report/models.py:180 +#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289 +#: templates/js/company.js:235 templates/js/part.js:118 +#: templates/js/part.js:642 templates/js/stock.js:972 msgid "Name" msgstr "" #: InvenTree/models.py:114 build/models.py:135 #: build/templates/build/detail.html:21 company/models.py:339 -#: company/models.py:491 company/templates/company/detail.html:27 +#: company/models.py:532 company/templates/company/detail.html:27 #: company/templates/company/manufacturer_part_base.html:72 #: company/templates/company/supplier_part_base.html:71 #: company/templates/company/supplier_part_detail.html:31 label/models.py:109 -#: order/models.py:103 order/templates/order/purchase_order_detail.html:147 -#: part/models.py:710 part/templates/part/detail.html:54 -#: part/templates/part/set_category.html:14 report/models.py:192 -#: report/models.py:505 report/models.py:544 +#: order/models.py:104 order/templates/order/purchase_order_detail.html:147 +#: part/models.py:695 part/templates/part/detail.html:54 +#: part/templates/part/set_category.html:14 report/models.py:193 +#: report/models.py:530 report/models.py:569 #: report/templates/report/inventree_build_order_base.html:118 #: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224 #: templates/InvenTree/search.html:296 #: templates/InvenTree/settings/header.html:9 templates/js/bom.js:190 -#: templates/js/build.js:746 templates/js/build.js:1014 +#: templates/js/build.js:833 templates/js/build.js:1101 #: templates/js/company.js:56 templates/js/order.js:183 #: templates/js/order.js:280 templates/js/part.js:177 templates/js/part.js:260 -#: templates/js/part.js:437 templates/js/part.js:653 templates/js/part.js:721 -#: templates/js/stock.js:552 templates/js/stock.js:959 -#: templates/js/stock.js:1004 +#: templates/js/part.js:437 templates/js/part.js:654 templates/js/part.js:722 +#: templates/js/stock.js:557 templates/js/stock.js:984 +#: templates/js/stock.js:1029 msgid "Description" msgstr "" @@ -192,15 +193,15 @@ msgstr "" msgid "Turkish" msgstr "" -#: InvenTree/status.py:93 +#: InvenTree/status.py:94 msgid "Background worker check failed" msgstr "" -#: InvenTree/status.py:97 +#: InvenTree/status.py:98 msgid "Email backend not configured" msgstr "" -#: InvenTree/status.py:100 +#: InvenTree/status.py:101 msgid "InvenTree system health checks failed" msgstr "" @@ -373,27 +374,27 @@ msgstr "" msgid "Overage must be an integer value or a percentage" msgstr "" -#: InvenTree/views.py:605 +#: InvenTree/views.py:608 msgid "Delete Item" msgstr "" -#: InvenTree/views.py:654 +#: InvenTree/views.py:657 msgid "Check box to confirm item deletion" msgstr "" -#: InvenTree/views.py:669 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:672 templates/InvenTree/settings/user.html:18 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:683 templates/InvenTree/settings/user.html:22 msgid "Set Password" msgstr "" -#: InvenTree/views.py:699 +#: InvenTree/views.py:702 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:950 templates/navbar.html:95 +#: InvenTree/views.py:953 templates/navbar.html:95 msgid "System Information" msgstr "" @@ -446,11 +447,11 @@ msgid "Order target date" msgstr "" #: build/forms.py:42 build/templates/build/build_base.html:146 -#: build/templates/build/detail.html:121 order/forms.py:109 order/forms.py:144 +#: build/templates/build/detail.html:121 order/forms.py:114 order/forms.py:149 #: order/templates/order/order_base.html:124 #: order/templates/order/sales_order_base.html:119 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/build.js:793 templates/js/order.js:200 +#: templates/js/build.js:880 templates/js/order.js:200 #: templates/js/order.js:298 msgid "Target Date" msgstr "" @@ -463,22 +464,21 @@ msgstr "" #: build/templates/build/allocation_card.html:23 #: build/templates/build/auto_allocate.html:17 #: build/templates/build/build_base.html:133 -#: build/templates/build/detail.html:31 common/models.py:699 -#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77 -#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262 -#: order/forms.py:279 order/models.py:616 order/models.py:817 +#: build/templates/build/detail.html:31 common/models.py:720 +#: company/forms.py:191 company/templates/company/supplier_part_pricing.html:77 +#: order/forms.py:193 order/forms.py:211 order/forms.py:246 order/forms.py:268 +#: order/forms.py:285 order/models.py:617 order/models.py:841 #: order/templates/order/order_wizard/match_parts.html:29 -#: order/templates/order/order_wizard/select_parts.html:32 +#: order/templates/order/order_wizard/select_parts.html:34 #: order/templates/order/purchase_order_detail.html:179 #: order/templates/order/sales_order_detail.html:70 #: order/templates/order/sales_order_detail.html:77 #: order/templates/order/sales_order_detail.html:162 -#: order/templates/order/sales_order_detail.html:230 part/forms.py:342 -#: part/forms.py:372 part/forms.py:388 part/models.py:2270 -#: part/templates/part/allocation.html:19 -#: part/templates/part/allocation.html:53 -#: part/templates/part/order_prices.html:175 -#: part/templates/part/part_pricing.html:13 +#: order/templates/order/sales_order_detail.html:234 part/forms.py:342 +#: part/forms.py:372 part/forms.py:388 part/forms.py:404 part/models.py:2293 +#: part/templates/part/internal_prices.html:98 +#: part/templates/part/order_prices.html:202 +#: part/templates/part/part_pricing.html:16 #: part/templates/part/sale_prices.html:85 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -487,9 +487,10 @@ msgstr "" #: stock/forms.py:175 stock/forms.py:308 #: stock/templates/stock/item_base.html:255 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364 -#: templates/js/bom.js:205 templates/js/build.js:486 templates/js/build.js:1024 -#: templates/js/part.js:795 templates/js/stock.js:1139 -#: templates/js/stock.js:1358 +#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:571 +#: templates/js/build.js:1111 templates/js/order.js:393 +#: templates/js/part.js:796 templates/js/stock.js:1164 +#: templates/js/stock.js:1383 msgid "Quantity" msgstr "" @@ -501,7 +502,7 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/forms.py:95 order/forms.py:234 stock/forms.py:118 +#: build/forms.py:95 order/forms.py:240 stock/forms.py:118 msgid "Serial Numbers" msgstr "" @@ -530,12 +531,12 @@ msgid "Mark build as complete" msgstr "" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 -#: order/forms.py:82 stock/forms.py:347 -#: stock/templates/stock/item_base.html:285 +#: stock/forms.py:347 stock/templates/stock/item_base.html:285 #: stock/templates/stock/stock_adjust.html:17 #: templates/InvenTree/search.html:260 templates/js/barcode.js:363 -#: templates/js/barcode.js:531 templates/js/build.js:500 -#: templates/js/stock.js:639 templates/js/stock.js:1031 +#: templates/js/barcode.js:531 templates/js/build.js:218 +#: templates/js/build.js:585 templates/js/order.js:378 +#: templates/js/stock.js:643 templates/js/stock.js:1056 msgid "Location" msgstr "" @@ -544,13 +545,13 @@ msgid "Location of completed parts" msgstr "" #: build/forms.py:215 build/templates/build/build_base.html:138 -#: build/templates/build/detail.html:59 order/models.py:468 +#: build/templates/build/detail.html:59 order/models.py:469 #: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:403 templates/InvenTree/search.html:252 -#: templates/js/barcode.js:119 templates/js/build.js:780 +#: stock/templates/stock/item_base.html:408 templates/InvenTree/search.html:252 +#: templates/js/barcode.js:119 templates/js/build.js:867 #: templates/js/order.js:187 templates/js/order.js:285 -#: templates/js/stock.js:626 templates/js/stock.js:1108 -#: templates/js/stock.js:1374 +#: templates/js/stock.js:630 templates/js/stock.js:1133 +#: templates/js/stock.js:1399 msgid "Status" msgstr "" @@ -584,16 +585,16 @@ msgstr "" #: build/models.py:66 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:73 -#: part/templates/part/allocation.html:23 #: report/templates/report/inventree_build_order_base.html:106 +#: templates/js/build.js:195 msgid "Build Order" msgstr "" #: build/models.py:67 build/templates/build/index.html:8 #: build/templates/build/index.html:15 order/templates/order/so_builds.html:12 #: order/templates/order/so_navbar.html:19 -#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:55 -#: part/templates/part/navbar.html:58 templates/InvenTree/index.html:183 +#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:57 +#: part/templates/part/navbar.html:60 templates/InvenTree/index.html:183 #: templates/InvenTree/search.html:185 #: templates/InvenTree/settings/tabs.html:34 users/models.py:43 msgid "Build Orders" @@ -603,12 +604,12 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:128 order/models.py:101 order/models.py:618 +#: build/models.py:128 order/models.py:102 order/models.py:619 #: order/templates/order/purchase_order_detail.html:174 -#: order/templates/order/sales_order_detail.html:225 part/models.py:2279 +#: order/templates/order/sales_order_detail.html:229 part/models.py:2302 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197 -#: templates/js/build.js:575 templates/js/build.js:1018 +#: templates/js/build.js:660 templates/js/build.js:1105 msgid "Reference" msgstr "" @@ -627,27 +628,27 @@ msgstr "" #: build/models.py:153 build/templates/build/auto_allocate.html:16 #: build/templates/build/build_base.html:128 -#: build/templates/build/detail.html:26 company/models.py:622 -#: order/models.py:660 order/models.py:693 -#: order/templates/order/order_wizard/select_parts.html:30 +#: build/templates/build/detail.html:26 company/models.py:663 +#: order/models.py:661 order/models.py:717 +#: order/templates/order/order_wizard/select_parts.html:32 #: order/templates/order/purchase_order_detail.html:132 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:213 part/models.py:321 -#: part/models.py:1967 part/models.py:1979 part/models.py:1997 -#: part/models.py:2072 part/models.py:2168 part/models.py:2254 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29 +#: order/templates/order/sales_order_detail.html:214 part/models.py:321 +#: part/models.py:1975 part/models.py:1987 part/models.py:2002 +#: part/models.py:2020 part/models.py:2095 part/models.py:2191 +#: part/models.py:2277 part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 part/templates/part/related.html:29 #: part/templates/part/set_category.html:13 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 #: templates/InvenTree/search.html:112 templates/InvenTree/search.html:210 #: templates/js/barcode.js:362 templates/js/bom.js:163 -#: templates/js/build.js:466 templates/js/build.js:751 -#: templates/js/build.js:991 templates/js/company.js:140 -#: templates/js/company.js:238 templates/js/part.js:241 -#: templates/js/part.js:404 templates/js/stock.js:521 -#: templates/js/stock.js:1346 +#: templates/js/build.js:551 templates/js/build.js:838 +#: templates/js/build.js:1078 templates/js/company.js:140 +#: templates/js/company.js:339 templates/js/part.js:241 +#: templates/js/part.js:404 templates/js/stock.js:526 +#: templates/js/stock.js:1371 msgid "Part" msgstr "" @@ -711,16 +712,16 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:220 order/models.py:107 part/models.py:882 +#: build/models.py:220 order/models.py:108 part/models.py:867 #: part/templates/part/detail.html:126 templates/js/order.js:293 msgid "Creation Date" msgstr "" -#: build/models.py:224 order/models.py:474 +#: build/models.py:224 order/models.py:475 msgid "Target completion date" msgstr "" -#: build/models.py:228 order/models.py:220 templates/js/build.js:798 +#: build/models.py:228 order/models.py:221 templates/js/build.js:885 msgid "Completion Date" msgstr "" @@ -737,9 +738,9 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:251 build/templates/build/build_base.html:184 -#: build/templates/build/detail.html:105 order/models.py:121 +#: build/templates/build/detail.html:105 order/models.py:122 #: order/templates/order/order_base.html:138 -#: order/templates/order/sales_order_base.html:140 part/models.py:886 +#: order/templates/order/sales_order_base.html:140 part/models.py:871 #: report/templates/report/inventree_build_order_base.html:159 msgid "Responsible" msgstr "" @@ -758,26 +759,26 @@ msgstr "" msgid "External Link" msgstr "" -#: build/models.py:258 part/models.py:744 stock/models.py:462 +#: build/models.py:258 part/models.py:729 stock/models.py:462 msgid "Link to external URL" msgstr "" #: build/models.py:262 build/templates/build/navbar.html:53 -#: company/models.py:132 company/models.py:498 +#: company/models.py:132 company/models.py:539 #: company/templates/company/navbar.html:70 -#: company/templates/company/navbar.html:73 order/models.py:125 -#: order/models.py:620 order/templates/order/po_navbar.html:29 -#: order/templates/order/po_navbar.html:32 -#: order/templates/order/purchase_order_detail.html:239 -#: order/templates/order/sales_order_detail.html:278 +#: company/templates/company/navbar.html:73 order/models.py:126 +#: order/models.py:621 order/templates/order/po_navbar.html:38 +#: order/templates/order/po_navbar.html:41 +#: order/templates/order/purchase_order_detail.html:243 +#: order/templates/order/sales_order_detail.html:309 #: order/templates/order/so_navbar.html:33 -#: order/templates/order/so_navbar.html:36 part/models.py:871 -#: part/templates/part/navbar.html:134 +#: order/templates/order/so_navbar.html:36 part/models.py:856 +#: part/templates/part/navbar.html:142 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377 #: stock/models.py:532 stock/models.py:1667 stock/models.py:1769 #: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37 -#: templates/js/bom.js:356 templates/js/stock.js:141 templates/js/stock.js:674 +#: templates/js/bom.js:356 templates/js/stock.js:141 templates/js/stock.js:699 msgid "Notes" msgstr "" @@ -810,11 +811,11 @@ msgstr "" msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1188 order/models.py:791 +#: build/models.py:1188 order/models.py:815 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1192 order/models.py:794 +#: build/models.py:1192 order/models.py:818 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -828,7 +829,7 @@ msgid "Selected stock item not found in BOM for part '{p}'" msgstr "" #: build/models.py:1316 stock/templates/stock/item_base.html:317 -#: templates/InvenTree/search.html:183 templates/js/build.js:724 +#: templates/InvenTree/search.html:183 templates/js/build.js:811 #: templates/navbar.html:29 msgid "Build" msgstr "" @@ -837,15 +838,13 @@ msgstr "" msgid "Build to allocate parts" msgstr "" -#: build/models.py:1333 part/templates/part/allocation.html:18 -#: part/templates/part/allocation.html:24 -#: part/templates/part/allocation.html:31 -#: part/templates/part/allocation.html:49 -#: stock/templates/stock/item_base.html:8 +#: build/models.py:1333 stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:31 #: stock/templates/stock/item_base.html:339 -#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:841 -#: templates/js/stock.js:1090 +#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:206 +#: templates/js/build.js:211 templates/js/build.js:928 +#: templates/js/order.js:366 templates/js/order.js:371 +#: templates/js/stock.js:1115 msgid "Stock Item" msgstr "" @@ -881,7 +880,7 @@ msgstr "" msgid "Auto Allocate" msgstr "" -#: build/templates/build/allocate.html:25 templates/js/build.js:656 +#: build/templates/build/allocate.html:25 templates/js/build.js:743 msgid "Unallocate stock" msgstr "" @@ -918,15 +917,15 @@ msgstr "" #: order/templates/order/sales_order_detail.html:160 #: report/templates/report/inventree_test_report_base.html:75 #: stock/models.py:454 stock/templates/stock/item_base.html:249 -#: templates/js/build.js:484 +#: templates/js/build.js:569 msgid "Serial Number" msgstr "" #: build/templates/build/attachments.html:12 #: build/templates/build/navbar.html:43 build/templates/build/navbar.html:46 -#: order/templates/order/po_navbar.html:26 -#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:125 -#: part/templates/part/navbar.html:128 stock/templates/stock/navbar.html:47 +#: order/templates/order/po_navbar.html:35 +#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:133 +#: part/templates/part/navbar.html:136 stock/templates/stock/navbar.html:47 #: stock/templates/stock/navbar.html:50 msgid "Attachments" msgstr "" @@ -1038,11 +1037,10 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:170 -#: build/templates/build/detail.html:84 order/models.py:691 +#: build/templates/build/detail.html:84 order/models.py:715 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:35 #: order/templates/order/sales_order_ship.html:25 -#: part/templates/part/allocation.html:30 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 #: stock/templates/stock/item_base.html:279 templates/js/order.js:245 @@ -1186,7 +1184,10 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:46 stock/forms.py:169 stock/forms.py:375 +#: build/templates/build/detail.html:46 order/forms.py:85 order/models.py:678 +#: order/templates/order/purchase_order_detail.html:239 +#: order/templates/order/receive_parts.html:25 stock/forms.py:169 +#: stock/forms.py:375 msgid "Destination" msgstr "" @@ -1195,15 +1196,15 @@ msgid "Destination location not specified" msgstr "" #: build/templates/build/detail.html:70 -#: stock/templates/stock/item_base.html:303 templates/js/stock.js:634 -#: templates/js/stock.js:1381 templates/js/table_filters.js:112 +#: stock/templates/stock/item_base.html:303 templates/js/stock.js:638 +#: templates/js/stock.js:1406 templates/js/table_filters.js:112 #: templates/js/table_filters.js:206 msgid "Batch" msgstr "" #: build/templates/build/detail.html:116 #: order/templates/order/order_base.html:111 -#: order/templates/order/sales_order_base.html:113 templates/js/build.js:788 +#: order/templates/order/sales_order_base.html:113 templates/js/build.js:875 msgid "Created" msgstr "" @@ -1211,7 +1212,7 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:132 templates/js/build.js:766 +#: build/templates/build/detail.html:132 templates/js/build.js:853 msgid "Completed" msgstr "" @@ -1249,9 +1250,9 @@ msgstr "" #: build/templates/build/navbar.html:15 #: company/templates/company/navbar.html:15 -#: order/templates/order/po_navbar.html:14 -#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15 -#: templates/js/stock.js:1019 +#: order/templates/order/po_navbar.html:15 +#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:17 +#: templates/js/stock.js:1044 msgid "Details" msgstr "" @@ -1286,8 +1287,8 @@ msgstr "" #: build/templates/build/notes.html:26 company/templates/company/notes.html:24 #: order/templates/order/order_notes.html:27 #: order/templates/order/sales_order_notes.html:29 -#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:482 -#: stock/templates/stock/item_base.html:492 +#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:487 +#: stock/templates/stock/item_base.html:497 #: stock/templates/stock/item_notes.html:26 msgid "Save" msgstr "" @@ -1412,8 +1413,8 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:585 -#: templates/js/build.js:848 templates/js/build.js:1031 +#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:670 +#: templates/js/build.js:935 templates/js/build.js:1118 msgid "Available" msgstr "" @@ -1599,8 +1600,8 @@ msgstr "" msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:153 part/models.py:2170 part/templates/part/detail.html:160 -#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25 +#: common/models.py:153 part/models.py:2193 part/templates/part/detail.html:160 +#: report/models.py:186 stock/forms.py:259 templates/js/table_filters.js:25 #: templates/js/table_filters.js:315 msgid "Template" msgstr "" @@ -1609,7 +1610,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:160 part/models.py:834 part/templates/part/detail.html:170 +#: common/models.py:160 part/models.py:819 part/templates/part/detail.html:170 #: templates/js/table_filters.js:128 templates/js/table_filters.js:327 msgid "Assembly" msgstr "" @@ -1618,7 +1619,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:167 part/models.py:840 part/templates/part/detail.html:180 +#: common/models.py:167 part/models.py:825 part/templates/part/detail.html:180 #: templates/js/table_filters.js:331 msgid "Component" msgstr "" @@ -1627,7 +1628,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:174 part/models.py:851 part/templates/part/detail.html:200 +#: common/models.py:174 part/models.py:836 part/templates/part/detail.html:200 msgid "Purchaseable" msgstr "" @@ -1635,7 +1636,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:181 part/models.py:856 part/templates/part/detail.html:210 +#: common/models.py:181 part/models.py:841 part/templates/part/detail.html:210 #: templates/js/table_filters.js:339 msgid "Salable" msgstr "" @@ -1644,7 +1645,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:188 part/models.py:846 part/templates/part/detail.html:190 +#: common/models.py:188 part/models.py:831 part/templates/part/detail.html:190 #: templates/js/table_filters.js:33 templates/js/table_filters.js:343 msgid "Trackable" msgstr "" @@ -1653,7 +1654,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:195 part/models.py:866 part/templates/part/detail.html:150 +#: common/models.py:195 part/models.py:851 part/templates/part/detail.html:150 #: templates/js/table_filters.js:29 msgid "Virtual" msgstr "" @@ -1670,160 +1671,185 @@ msgstr "" msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:209 templates/stats.html:25 -msgid "Debug Mode" +#: common/models.py:209 +msgid "Show Price in Forms" msgstr "" #: common/models.py:210 -msgid "Generate reports in debug mode (HTML output)" +msgid "Display part price in some forms" msgstr "" #: common/models.py:216 -msgid "Page Size" +msgid "Internal Prices" msgstr "" #: common/models.py:217 +msgid "Enable internal prices for parts" +msgstr "" + +#: common/models.py:223 +msgid "Internal Price as BOM-Price" +msgstr "" + +#: common/models.py:224 +msgid "Use the internal price (if set) in BOM-price calculations" +msgstr "" + +#: common/models.py:230 templates/stats.html:25 +msgid "Debug Mode" +msgstr "" + +#: common/models.py:231 +msgid "Generate reports in debug mode (HTML output)" +msgstr "" + +#: common/models.py:237 +msgid "Page Size" +msgstr "" + +#: common/models.py:238 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:227 +#: common/models.py:248 msgid "Test Reports" msgstr "" -#: common/models.py:228 +#: common/models.py:249 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:234 +#: common/models.py:255 msgid "Stock Expiry" msgstr "" -#: common/models.py:235 +#: common/models.py:256 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:241 +#: common/models.py:262 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:242 +#: common/models.py:263 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:248 +#: common/models.py:269 msgid "Stock Stale Time" msgstr "" -#: common/models.py:249 +#: common/models.py:270 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:251 part/templates/part/detail.html:121 +#: common/models.py:272 part/templates/part/detail.html:121 msgid "days" msgstr "" -#: common/models.py:256 +#: common/models.py:277 msgid "Build Expired Stock" msgstr "" -#: common/models.py:257 +#: common/models.py:278 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:263 +#: common/models.py:284 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:264 +#: common/models.py:285 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:270 +#: common/models.py:291 msgid "Group by Part" msgstr "" -#: common/models.py:271 +#: common/models.py:292 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:277 +#: common/models.py:298 msgid "Recent Stock Count" msgstr "" -#: common/models.py:278 +#: common/models.py:299 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:284 +#: common/models.py:305 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:285 +#: common/models.py:306 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:290 +#: common/models.py:311 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:291 +#: common/models.py:312 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:295 +#: common/models.py:316 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:296 +#: common/models.py:317 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:301 +#: common/models.py:322 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:302 +#: common/models.py:323 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:525 +#: common/models.py:546 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:527 +#: common/models.py:548 msgid "Settings value" msgstr "" -#: common/models.py:562 +#: common/models.py:583 msgid "Must be an integer value" msgstr "" -#: common/models.py:585 +#: common/models.py:606 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:596 +#: common/models.py:617 msgid "Value must be an integer value" msgstr "" -#: common/models.py:619 +#: common/models.py:640 msgid "Key string must be unique" msgstr "" -#: common/models.py:700 company/forms.py:177 +#: common/models.py:721 company/forms.py:192 msgid "Price break quantity" msgstr "" -#: common/models.py:708 company/templates/company/supplier_part_pricing.html:82 +#: common/models.py:729 company/templates/company/supplier_part_pricing.html:82 +#: part/templates/part/internal_prices.html:103 #: part/templates/part/sale_prices.html:90 templates/js/bom.js:271 msgid "Price" msgstr "" -#: common/models.py:709 +#: common/models.py:730 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:798 +#: common/models.py:822 msgid "Default" msgstr "" @@ -1844,7 +1870,9 @@ msgid "Supplied value must be a boolean" msgstr "" #: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42 -#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27 +#: order/templates/order/po_navbar.html:19 +#: order/templates/order/po_navbar.html:22 order/views.py:582 +#: part/templates/part/bom_upload/upload_file.html:27 msgid "Upload File" msgstr "" @@ -1878,29 +1906,29 @@ msgstr "" msgid "Image URL" msgstr "" -#: company/forms.py:118 templates/js/part.js:786 +#: company/forms.py:133 templates/js/part.js:787 msgid "Single Price" msgstr "" -#: company/forms.py:120 +#: company/forms.py:135 msgid "Single quantity price" msgstr "" -#: company/forms.py:128 company/models.py:321 +#: company/forms.py:143 company/models.py:321 msgid "Select manufacturer" msgstr "" -#: company/forms.py:134 company/models.py:328 +#: company/forms.py:149 company/models.py:328 msgid "Manufacturer Part Number" msgstr "" -#: company/forms.py:136 company/models.py:327 +#: company/forms.py:151 company/models.py:327 #: company/templates/company/manufacturer_part_base.html:89 #: company/templates/company/manufacturer_part_detail.html:26 #: company/templates/company/supplier_part_base.html:102 #: company/templates/company/supplier_part_detail.html:35 #: order/templates/order/purchase_order_detail.html:162 part/bom.py:171 -#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307 +#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:408 msgid "MPN" msgstr "" @@ -1953,11 +1981,11 @@ msgstr "" msgid "Point of contact" msgstr "" -#: company/models.py:121 company/models.py:333 company/models.py:485 -#: order/models.py:105 part/models.py:743 +#: company/models.py:121 company/models.py:333 company/models.py:526 +#: order/models.py:106 part/models.py:728 #: report/templates/report/inventree_build_order_base.html:165 -#: templates/js/company.js:188 templates/js/company.js:318 -#: templates/js/part.js:497 +#: templates/js/company.js:188 templates/js/company.js:419 +#: templates/js/part.js:498 msgid "Link" msgstr "" @@ -1965,7 +1993,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:129 part/models.py:753 +#: company/models.py:129 part/models.py:738 msgid "Image" msgstr "" @@ -1993,12 +2021,12 @@ msgstr "" msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:305 company/models.py:456 stock/models.py:407 +#: company/models.py:305 company/models.py:497 stock/models.py:407 #: stock/templates/stock/item_base.html:235 msgid "Base Part" msgstr "" -#: company/models.py:309 company/models.py:460 order/views.py:1587 +#: company/models.py:309 company/models.py:501 order/views.py:1597 msgid "Select part" msgstr "" @@ -2009,7 +2037,7 @@ msgstr "" #: company/templates/company/supplier_part_detail.html:34 part/bom.py:170 #: part/bom.py:241 stock/templates/stock/item_base.html:352 #: templates/js/company.js:44 templates/js/company.js:165 -#: templates/js/company.js:289 +#: templates/js/company.js:390 msgid "Manufacturer" msgstr "" @@ -2021,87 +2049,112 @@ msgstr "" msgid "Manufacturer part description" msgstr "" -#: company/models.py:466 company/templates/company/detail.html:62 +#: company/models.py:390 company/models.py:520 +#: company/templates/company/manufacturer_part_base.html:6 +#: company/templates/company/manufacturer_part_base.html:19 +#: stock/templates/stock/item_base.html:362 +msgid "Manufacturer Part" +msgstr "" + +#: company/models.py:397 +msgid "Parameter name" +msgstr "" + +#: company/models.py:403 part/templates/part/params.html:28 +#: report/templates/report/inventree_test_report_base.html:90 +#: stock/models.py:1756 templates/InvenTree/settings/header.html:8 +#: templates/js/company.js:241 templates/js/stock.js:137 +msgid "Value" +msgstr "" + +#: company/models.py:404 +msgid "Parameter value" +msgstr "" + +#: company/models.py:410 part/models.py:813 part/models.py:2165 +#: part/templates/part/detail.html:106 part/templates/part/params.html:29 +#: templates/js/company.js:247 +msgid "Units" +msgstr "" + +#: company/models.py:411 +msgid "Parameter units" +msgstr "" + +#: company/models.py:507 company/templates/company/detail.html:62 #: company/templates/company/supplier_part_base.html:84 -#: company/templates/company/supplier_part_detail.html:25 order/models.py:192 +#: company/templates/company/supplier_part_detail.html:25 order/models.py:193 #: order/templates/order/order_base.html:92 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175 -#: part/bom.py:286 stock/templates/stock/item_base.html:364 -#: templates/js/company.js:48 templates/js/company.js:263 +#: part/bom.py:286 stock/templates/stock/item_base.html:369 +#: templates/js/company.js:48 templates/js/company.js:364 #: templates/js/order.js:170 msgid "Supplier" msgstr "" -#: company/models.py:467 +#: company/models.py:508 msgid "Select supplier" msgstr "" -#: company/models.py:472 company/templates/company/supplier_part_base.html:88 +#: company/models.py:513 company/templates/company/supplier_part_base.html:88 #: company/templates/company/supplier_part_detail.html:26 #: order/templates/order/purchase_order_detail.html:153 part/bom.py:176 #: part/bom.py:287 msgid "SKU" msgstr "" -#: company/models.py:473 +#: company/models.py:514 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:479 -#: company/templates/company/manufacturer_part_base.html:6 -#: company/templates/company/manufacturer_part_base.html:19 -#: stock/templates/stock/item_base.html:357 -msgid "Manufacturer Part" -msgstr "" - -#: company/models.py:480 +#: company/models.py:521 msgid "Select manufacturer part" msgstr "" -#: company/models.py:486 +#: company/models.py:527 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:492 +#: company/models.py:533 msgid "Supplier part description" msgstr "" -#: company/models.py:497 company/templates/company/supplier_part_base.html:116 -#: company/templates/company/supplier_part_detail.html:38 part/models.py:2282 +#: company/models.py:538 company/templates/company/supplier_part_base.html:116 +#: company/templates/company/supplier_part_detail.html:38 part/models.py:2305 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" -#: company/models.py:501 part/models.py:1614 +#: company/models.py:542 part/models.py:1606 msgid "base cost" msgstr "" -#: company/models.py:501 part/models.py:1614 +#: company/models.py:542 part/models.py:1606 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:503 company/templates/company/supplier_part_base.html:109 +#: company/models.py:544 company/templates/company/supplier_part_base.html:109 #: stock/models.py:431 stock/templates/stock/item_base.html:310 -#: templates/js/stock.js:670 +#: templates/js/stock.js:695 msgid "Packaging" msgstr "" -#: company/models.py:503 +#: company/models.py:544 msgid "Part packaging" msgstr "" -#: company/models.py:505 part/models.py:1616 +#: company/models.py:546 part/models.py:1608 msgid "multiple" msgstr "" -#: company/models.py:505 +#: company/models.py:546 msgid "Order multiple" msgstr "" #: company/templates/company/assigned_stock.html:10 #: company/templates/company/navbar.html:62 -#: company/templates/company/navbar.html:65 templates/js/build.js:477 +#: company/templates/company/navbar.html:65 templates/js/build.js:562 msgid "Assigned Stock" msgstr "" @@ -2167,11 +2220,11 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/detail.html:67 order/models.py:463 +#: company/templates/company/detail.html:67 order/models.py:464 #: order/templates/order/sales_order_base.html:94 stock/models.py:449 #: stock/models.py:450 stock/templates/stock/item_base.html:262 #: templates/js/company.js:40 templates/js/order.js:267 -#: templates/js/stock.js:1072 +#: templates/js/stock.js:1097 msgid "Customer" msgstr "" @@ -2217,7 +2270,7 @@ msgstr "" #: company/templates/company/detail_manufacturer_part.html:66 #: company/templates/company/detail_supplier_part.html:66 #: part/templates/part/bom.html:159 part/templates/part/category.html:118 -#: templates/js/stock.js:1287 +#: templates/js/stock.js:1312 msgid "New Part" msgstr "" @@ -2250,13 +2303,12 @@ msgstr "" #: company/templates/company/detail_supplier_part.html:11 #: company/templates/company/manufacturer_part_navbar.html:11 -#: company/templates/company/manufacturer_part_suppliers.html:10 #: templates/InvenTree/search.html:164 msgid "Supplier Parts" msgstr "" #: company/templates/company/detail_supplier_part.html:21 -#: order/templates/order/order_wizard/select_parts.html:42 +#: order/templates/order/order_wizard/select_parts.html:44 #: order/templates/order/purchase_order_detail.html:50 msgid "Create new supplier part" msgstr "" @@ -2264,12 +2316,12 @@ msgstr "" #: company/templates/company/detail_supplier_part.html:22 #: company/templates/company/manufacturer_part_suppliers.html:17 #: order/templates/order/purchase_order_detail.html:49 -#: part/templates/part/supplier.html:17 templates/js/stock.js:1293 +#: part/templates/part/supplier.html:17 templates/js/stock.js:1318 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail_supplier_part.html:72 -#: company/templates/company/manufacturer_part_suppliers.html:47 +#: company/templates/company/manufacturer_part_suppliers.html:82 #: company/views.py:64 order/templates/order/purchase_orders.html:185 #: part/templates/part/supplier.html:50 msgid "New Supplier" @@ -2321,8 +2373,9 @@ msgid "There are %(count)s suppliers defined for this manufacturer part. If you msgstr "" #: company/templates/company/manufacturer_part_navbar.html:14 -#: company/views.py:63 part/templates/part/navbar.html:84 -#: part/templates/part/navbar.html:87 templates/InvenTree/search.html:316 +#: company/templates/company/manufacturer_part_suppliers.html:10 +#: company/views.py:63 part/templates/part/navbar.html:86 +#: part/templates/part/navbar.html:89 templates/InvenTree/search.html:316 #: templates/navbar.html:35 msgid "Suppliers" msgstr "" @@ -2334,13 +2387,13 @@ msgstr "" #: company/templates/company/manufacturer_part_navbar.html:22 #: company/templates/company/navbar.html:41 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:36 stock/api.py:54 +#: part/templates/part/navbar.html:38 stock/api.py:54 #: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196 #: templates/InvenTree/search.html:232 #: templates/InvenTree/settings/tabs.html:31 templates/js/part.js:181 -#: templates/js/part.js:305 templates/js/part.js:464 templates/js/stock.js:561 +#: templates/js/part.js:305 templates/js/part.js:465 templates/js/stock.js:566 #: templates/navbar.html:26 msgid "Stock" msgstr "" @@ -2362,11 +2415,25 @@ msgstr "" #: company/templates/company/manufacturer_part_suppliers.html:22 #: part/templates/part/manufacturer.html:24 part/templates/part/params.html:44 #: part/templates/part/related.html:44 part/templates/part/supplier.html:22 -#: stock/views.py:1002 users/models.py:187 +#: stock/views.py:1002 users/models.py:191 msgid "Delete" msgstr "" -#: company/templates/company/manufacturer_part_suppliers.html:48 +#: company/templates/company/manufacturer_part_suppliers.html:37 +#: part/templates/part/category_navbar.html:34 +#: part/templates/part/category_navbar.html:37 +#: part/templates/part/navbar.html:24 +msgid "Parameters" +msgstr "" + +#: company/templates/company/manufacturer_part_suppliers.html:43 +#: part/templates/part/params.html:18 +#: templates/InvenTree/settings/category.html:29 +#: templates/InvenTree/settings/part.html:48 +msgid "New Parameter" +msgstr "" + +#: company/templates/company/manufacturer_part_suppliers.html:83 #: part/templates/part/supplier.html:51 msgid "Create new supplier" msgstr "" @@ -2381,13 +2448,13 @@ msgstr "" msgid "Supplied Parts" msgstr "" -#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:33 +#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:35 #: stock/templates/stock/location.html:107 #: stock/templates/stock/location.html:122 #: stock/templates/stock/location.html:136 #: stock/templates/stock/location_navbar.html:22 #: stock/templates/stock/location_navbar.html:29 -#: templates/InvenTree/search.html:198 templates/js/stock.js:971 +#: templates/InvenTree/search.html:198 templates/js/stock.js:996 #: templates/stats.html:93 templates/stats.html:102 users/models.py:42 msgid "Stock Items" msgstr "" @@ -2398,7 +2465,7 @@ msgstr "" #: company/templates/company/sales_orders.html:11 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:13 -#: part/templates/part/navbar.html:104 part/templates/part/navbar.html:107 +#: part/templates/part/navbar.html:112 part/templates/part/navbar.html:115 #: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228 #: templates/InvenTree/search.html:345 #: templates/InvenTree/settings/tabs.html:40 templates/navbar.html:46 @@ -2410,7 +2477,7 @@ msgstr "" #: company/templates/company/purchase_orders.html:10 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:13 -#: part/templates/part/navbar.html:90 part/templates/part/navbar.html:93 +#: part/templates/part/navbar.html:92 part/templates/part/navbar.html:95 #: part/templates/part/orders.html:10 templates/InvenTree/index.html:205 #: templates/InvenTree/search.html:325 #: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:37 @@ -2444,7 +2511,7 @@ msgstr "" #: company/templates/company/supplier_part_base.html:7 #: company/templates/company/supplier_part_base.html:20 stock/models.py:416 -#: stock/templates/stock/item_base.html:369 templates/js/company.js:279 +#: stock/templates/stock/item_base.html:374 templates/js/company.js:380 msgid "Supplier Part" msgstr "" @@ -2492,8 +2559,8 @@ msgstr "" msgid "Pricing Information" msgstr "" -#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794 -#: part/templates/part/sale_prices.html:17 part/views.py:2733 +#: company/templates/company/supplier_part_pricing.html:19 company/views.py:855 +#: part/templates/part/sale_prices.html:17 part/views.py:2751 msgid "Add Price Break" msgstr "" @@ -2512,8 +2579,8 @@ msgstr "" msgid "Delete price break" msgstr "" -#: company/views.py:70 part/templates/part/navbar.html:78 -#: part/templates/part/navbar.html:81 templates/InvenTree/search.html:306 +#: company/views.py:70 part/templates/part/navbar.html:80 +#: part/templates/part/navbar.html:83 templates/InvenTree/search.html:306 #: templates/navbar.html:36 msgid "Manufacturers" msgstr "" @@ -2535,20 +2602,20 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:169 part/views.py:937 +#: company/views.py:169 part/views.py:948 msgid "Download Image" msgstr "" -#: company/views.py:198 part/views.py:969 +#: company/views.py:198 part/views.py:980 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:205 part/views.py:976 +#: company/views.py:205 part/views.py:987 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:214 part/views.py:985 +#: company/views.py:214 part/views.py:996 msgid "Supplied URL is not a valid image file" msgstr "" @@ -2596,27 +2663,35 @@ msgstr "" msgid "Delete Manufacturer Part" msgstr "" -#: company/views.py:528 +#: company/views.py:514 +msgid "Add Manufacturer Part Parameter" +msgstr "" + +#: company/views.py:548 +msgid "Edit Manufacturer Part Parameter" +msgstr "" + +#: company/views.py:588 msgid "Edit Supplier Part" msgstr "" -#: company/views.py:578 templates/js/stock.js:1294 +#: company/views.py:639 templates/js/stock.js:1319 msgid "Create new Supplier Part" msgstr "" -#: company/views.py:722 +#: company/views.py:783 msgid "Delete Supplier Part" msgstr "" -#: company/views.py:799 part/views.py:2737 +#: company/views.py:860 part/views.py:2755 msgid "Added new price break" msgstr "" -#: company/views.py:855 part/views.py:2781 +#: company/views.py:916 part/views.py:2799 msgid "Edit Price Break" msgstr "" -#: company/views.py:870 part/views.py:2795 +#: company/views.py:931 part/views.py:2813 msgid "Delete Price Break" msgstr "" @@ -2640,7 +2715,7 @@ msgstr "" msgid "Label template file" msgstr "" -#: label/models.py:124 report/models.py:274 +#: label/models.py:124 report/models.py:297 msgid "Enabled" msgstr "" @@ -2664,7 +2739,7 @@ msgstr "" msgid "Label height, specified in mm" msgstr "" -#: label/models.py:144 +#: label/models.py:144 report/models.py:290 msgid "Filename Pattern" msgstr "" @@ -2676,8 +2751,8 @@ msgstr "" msgid "Query filters (comma-separated list of key=value pairs" msgstr "" -#: label/models.py:245 label/models.py:298 report/models.py:294 -#: report/models.py:415 report/models.py:449 +#: label/models.py:245 label/models.py:298 report/models.py:317 +#: report/models.py:440 report/models.py:474 msgid "Filters" msgstr "" @@ -2698,237 +2773,239 @@ msgstr "" msgid "Ship order" msgstr "" -#: order/forms.py:82 +#: order/forms.py:86 msgid "Receive parts to this location" msgstr "" -#: order/forms.py:103 +#: order/forms.py:108 msgid "Purchase Order reference" msgstr "" -#: order/forms.py:110 +#: order/forms.py:115 msgid "Target date for order delivery. Order will be overdue after this date." msgstr "" -#: order/forms.py:138 +#: order/forms.py:143 msgid "Enter sales order number" msgstr "" -#: order/forms.py:145 order/models.py:475 +#: order/forms.py:150 order/models.py:476 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/forms.py:236 +#: order/forms.py:242 msgid "Enter stock item serial numbers" msgstr "" -#: order/forms.py:242 +#: order/forms.py:248 msgid "Enter quantity of stock items" msgstr "" -#: order/models.py:101 +#: order/models.py:102 msgid "Order reference" msgstr "" -#: order/models.py:103 +#: order/models.py:104 msgid "Order description" msgstr "" -#: order/models.py:105 +#: order/models.py:106 msgid "Link to external page" msgstr "" -#: order/models.py:113 part/templates/part/detail.html:132 +#: order/models.py:114 part/templates/part/detail.html:132 msgid "Created By" msgstr "" -#: order/models.py:120 +#: order/models.py:121 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:125 +#: order/models.py:126 msgid "Order notes" msgstr "" -#: order/models.py:184 order/models.py:468 +#: order/models.py:185 order/models.py:469 msgid "Purchase order status" msgstr "" -#: order/models.py:193 +#: order/models.py:194 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:196 order/templates/order/order_base.html:98 +#: order/models.py:197 order/templates/order/order_base.html:98 #: templates/js/order.js:179 msgid "Supplier Reference" msgstr "" -#: order/models.py:196 +#: order/models.py:197 msgid "Supplier order reference code" msgstr "" -#: order/models.py:203 +#: order/models.py:204 msgid "received by" msgstr "" -#: order/models.py:208 +#: order/models.py:209 msgid "Issue Date" msgstr "" -#: order/models.py:209 +#: order/models.py:210 msgid "Date order was issued" msgstr "" -#: order/models.py:214 +#: order/models.py:215 msgid "Target Delivery Date" msgstr "" -#: order/models.py:215 +#: order/models.py:216 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:221 +#: order/models.py:222 msgid "Date order was completed" msgstr "" -#: order/models.py:245 part/views.py:1675 stock/models.py:304 +#: order/models.py:246 part/views.py:1686 stock/models.py:304 #: stock/models.py:1020 msgid "Quantity must be greater than zero" msgstr "" -#: order/models.py:250 +#: order/models.py:251 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:348 +#: order/models.py:349 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:352 +#: order/models.py:353 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:354 +#: order/models.py:355 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:464 +#: order/models.py:465 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:470 +#: order/models.py:471 msgid "Customer Reference " msgstr "" -#: order/models.py:470 +#: order/models.py:471 msgid "Customer order reference code" msgstr "" -#: order/models.py:478 templates/js/order.js:303 +#: order/models.py:479 templates/js/order.js:303 msgid "Shipment Date" msgstr "" -#: order/models.py:485 +#: order/models.py:486 msgid "shipped by" msgstr "" -#: order/models.py:529 +#: order/models.py:530 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:616 +#: order/models.py:617 msgid "Item quantity" msgstr "" -#: order/models.py:618 +#: order/models.py:619 msgid "Line item reference" msgstr "" -#: order/models.py:620 +#: order/models.py:621 msgid "Line item notes" msgstr "" -#: order/models.py:646 order/models.py:691 -#: part/templates/part/allocation.html:17 -#: part/templates/part/allocation.html:45 +#: order/models.py:647 order/models.py:715 templates/js/order.js:353 msgid "Order" msgstr "" -#: order/models.py:647 order/templates/order/order_base.html:9 +#: order/models.py:648 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:324 templates/js/order.js:148 -#: templates/js/stock.js:1053 +#: templates/js/stock.js:669 templates/js/stock.js:1078 msgid "Purchase Order" msgstr "" -#: order/models.py:661 +#: order/models.py:662 msgid "Supplier part" msgstr "" -#: order/models.py:664 order/templates/order/order_base.html:131 +#: order/models.py:665 order/templates/order/order_base.html:131 #: order/templates/order/purchase_order_detail.html:219 #: order/templates/order/receive_parts.html:22 #: order/templates/order/sales_order_base.html:133 msgid "Received" msgstr "" -#: order/models.py:664 +#: order/models.py:665 msgid "Number of items received" msgstr "" -#: order/models.py:671 stock/models.py:542 -#: stock/templates/stock/item_base.html:331 templates/js/stock.js:665 +#: order/models.py:672 stock/models.py:542 +#: stock/templates/stock/item_base.html:331 templates/js/stock.js:690 msgid "Purchase Price" msgstr "" -#: order/models.py:672 +#: order/models.py:673 msgid "Unit purchase price" msgstr "" -#: order/models.py:700 part/templates/part/navbar.html:101 -#: part/templates/part/order_prices.html:82 -#: part/templates/part/part_pricing.html:78 +#: order/models.py:681 +msgid "Where does the Purchaser want this item to be stored?" +msgstr "" + +#: order/models.py:724 part/templates/part/navbar.html:109 +#: part/templates/part/order_prices.html:107 +#: part/templates/part/part_pricing.html:97 msgid "Sale Price" msgstr "" -#: order/models.py:701 +#: order/models.py:725 msgid "Unit sale price" msgstr "" -#: order/models.py:776 order/models.py:778 +#: order/models.py:800 order/models.py:802 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:782 +#: order/models.py:806 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:784 +#: order/models.py:808 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:787 +#: order/models.py:811 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:797 +#: order/models.py:821 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:802 +#: order/models.py:826 msgid "Line" msgstr "" -#: order/models.py:813 +#: order/models.py:837 msgid "Item" msgstr "" -#: order/models.py:814 +#: order/models.py:838 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:817 +#: order/models.py:841 msgid "Enter stock allocation quantity" msgstr "" @@ -2957,7 +3034,7 @@ msgid "Export order to file" msgstr "" #: order/templates/order/order_base.html:72 -#: order/templates/order/po_navbar.html:11 +#: order/templates/order/po_navbar.html:12 msgid "Purchase Order Details" msgstr "" @@ -2979,8 +3056,8 @@ msgstr "" #: order/templates/order/order_base.html:180 #: order/templates/order/purchase_order_detail.html:100 #: part/templates/part/category.html:208 part/templates/part/category.html:250 -#: stock/templates/stock/location.html:191 templates/js/stock.js:711 -#: templates/js/stock.js:1299 +#: stock/templates/stock/location.html:191 templates/js/stock.js:736 +#: templates/js/stock.js:1324 msgid "New Location" msgstr "" @@ -3083,28 +3160,32 @@ msgstr "" msgid "Order is already processed. Files cannot be uploaded." msgstr "" -#: order/templates/order/order_wizard/select_parts.html:9 +#: order/templates/order/order_wizard/select_parts.html:11 msgid "Step 1 of 2 - Select Part Suppliers" msgstr "" -#: order/templates/order/order_wizard/select_parts.html:14 +#: order/templates/order/order_wizard/select_parts.html:16 msgid "Select suppliers" msgstr "" -#: order/templates/order/order_wizard/select_parts.html:18 +#: order/templates/order/order_wizard/select_parts.html:20 msgid "No purchaseable parts selected" msgstr "" -#: order/templates/order/order_wizard/select_parts.html:31 +#: order/templates/order/order_wizard/select_parts.html:33 msgid "Select Supplier" msgstr "" #: order/templates/order/order_wizard/select_parts.html:57 +msgid "No price" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:65 #, python-format msgid "Select a supplier for %(name)s" msgstr "" -#: order/templates/order/order_wizard/select_parts.html:69 +#: order/templates/order/order_wizard/select_parts.html:77 #: part/templates/part/set_category.html:32 msgid "Remove part" msgstr "" @@ -3137,15 +3218,20 @@ msgid "Select a purchase order for %(name)s" msgstr "" #: order/templates/order/po_attachments.html:12 -#: order/templates/order/po_navbar.html:23 +#: order/templates/order/po_navbar.html:32 msgid "Purchase Order Attachments" msgstr "" -#: order/templates/order/po_navbar.html:17 +#: order/templates/order/po_lineitem_delete.html:5 +#: order/templates/order/so_lineitem_delete.html:5 +msgid "Are you sure you wish to delete this line item?" +msgstr "" + +#: order/templates/order/po_navbar.html:26 msgid "Received Stock Items" msgstr "" -#: order/templates/order/po_navbar.html:20 +#: order/templates/order/po_navbar.html:29 #: order/templates/order/po_received_items.html:12 msgid "Received Items" msgstr "" @@ -3155,8 +3241,8 @@ msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:24 -#: order/templates/order/sales_order_detail.html:22 order/views.py:1311 -#: order/views.py:1394 +#: order/templates/order/sales_order_detail.html:22 order/views.py:1321 +#: order/views.py:1404 msgid "Add Line Item" msgstr "" @@ -3164,25 +3250,31 @@ msgstr "" msgid "No line items found" msgstr "" +#: order/templates/order/purchase_order_detail.html:142 +#: order/templates/order/sales_order_detail.html:223 +msgid "Total" +msgstr "" + #: order/templates/order/purchase_order_detail.html:191 -#: order/templates/order/sales_order_detail.html:235 +#: order/templates/order/sales_order_detail.html:246 msgid "Unit Price" msgstr "" #: order/templates/order/purchase_order_detail.html:198 +#: order/templates/order/sales_order_detail.html:253 msgid "Total price" msgstr "" -#: order/templates/order/purchase_order_detail.html:251 -#: order/templates/order/sales_order_detail.html:328 +#: order/templates/order/purchase_order_detail.html:255 +#: order/templates/order/sales_order_detail.html:359 msgid "Edit line item" msgstr "" -#: order/templates/order/purchase_order_detail.html:252 +#: order/templates/order/purchase_order_detail.html:256 msgid "Delete line item" msgstr "" -#: order/templates/order/purchase_order_detail.html:257 +#: order/templates/order/purchase_order_detail.html:261 msgid "Receive line item" msgstr "" @@ -3203,7 +3295,7 @@ msgstr "" #: part/templates/part/category_navbar.html:29 #: part/templates/part/category_partlist.html:10 #: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114 -#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:665 +#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:666 #: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89 #: users/models.py:40 msgid "Parts" @@ -3218,7 +3310,7 @@ msgid "Order Code" msgstr "" #: order/templates/order/receive_parts.html:21 -#: part/templates/part/part_base.html:136 templates/js/part.js:480 +#: part/templates/part/part_base.html:136 templates/js/part.js:481 msgid "On Order" msgstr "" @@ -3226,11 +3318,11 @@ msgstr "" msgid "Receive" msgstr "" -#: order/templates/order/receive_parts.html:36 +#: order/templates/order/receive_parts.html:37 msgid "Error: Referenced part has been removed" msgstr "" -#: order/templates/order/receive_parts.html:57 +#: order/templates/order/receive_parts.html:61 msgid "Remove line" msgstr "" @@ -3267,17 +3359,17 @@ msgid "Sales Order Items" msgstr "" #: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:365 -#: templates/js/build.js:637 templates/js/build.js:1054 +#: templates/js/build.js:724 templates/js/build.js:1141 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:525 -#: templates/js/build.js:859 +#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:610 +#: templates/js/build.js:946 msgid "Edit stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:527 -#: templates/js/build.js:860 +#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:612 +#: templates/js/build.js:947 msgid "Delete stock allocation" msgstr "" @@ -3285,50 +3377,50 @@ msgstr "" msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:205 +#: order/templates/order/sales_order_detail.html:206 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:589 -#: templates/js/build.js:855 +#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:675 +#: templates/js/build.js:942 msgid "Allocated" msgstr "" -#: order/templates/order/sales_order_detail.html:245 +#: order/templates/order/sales_order_detail.html:276 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:282 +#: order/templates/order/sales_order_detail.html:313 msgid "PO" msgstr "" -#: order/templates/order/sales_order_detail.html:312 +#: order/templates/order/sales_order_detail.html:343 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:651 +#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:738 msgid "Allocate stock" msgstr "" -#: order/templates/order/sales_order_detail.html:318 +#: order/templates/order/sales_order_detail.html:349 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:644 -#: templates/js/build.js:1062 +#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:731 +#: templates/js/build.js:1149 msgid "Build stock" msgstr "" -#: order/templates/order/sales_order_detail.html:325 -#: order/templates/order/sales_order_detail.html:434 +#: order/templates/order/sales_order_detail.html:356 +#: order/templates/order/sales_order_detail.html:465 msgid "Calculate price" msgstr "" -#: order/templates/order/sales_order_detail.html:329 +#: order/templates/order/sales_order_detail.html:360 msgid "Delete line item " msgstr "" -#: order/templates/order/sales_order_detail.html:440 +#: order/templates/order/sales_order_detail.html:471 msgid "Update Unit Price" msgstr "" @@ -3369,10 +3461,6 @@ msgstr "" msgid "Sales Order Attachments" msgstr "" -#: order/templates/order/so_lineitem_delete.html:5 -msgid "Are you sure you wish to delete this line item?" -msgstr "" - #: order/views.py:104 msgid "Add Purchase Order Attachment" msgstr "" @@ -3473,90 +3561,94 @@ msgstr "" msgid "No lines specified" msgstr "" -#: order/views.py:1260 +#: order/views.py:1012 +msgid "Update prices" +msgstr "" + +#: order/views.py:1270 #, python-brace-format msgid "Ordered {n} parts" msgstr "" -#: order/views.py:1320 +#: order/views.py:1330 msgid "Supplier part must be specified" msgstr "" -#: order/views.py:1326 +#: order/views.py:1336 msgid "Supplier must match for Part and Order" msgstr "" -#: order/views.py:1457 order/views.py:1475 +#: order/views.py:1467 order/views.py:1485 msgid "Edit Line Item" msgstr "" -#: order/views.py:1491 order/views.py:1503 +#: order/views.py:1501 order/views.py:1513 msgid "Delete Line Item" msgstr "" -#: order/views.py:1496 order/views.py:1508 +#: order/views.py:1506 order/views.py:1518 msgid "Deleted line item" msgstr "" -#: order/views.py:1521 +#: order/views.py:1531 msgid "Allocate Serial Numbers" msgstr "" -#: order/views.py:1566 +#: order/views.py:1576 #, python-brace-format msgid "Allocated {n} items" msgstr "" -#: order/views.py:1582 +#: order/views.py:1592 msgid "Select line item" msgstr "" -#: order/views.py:1613 -#, python-brace-format -msgid "No matching item for serial {serial}" -msgstr "" - #: order/views.py:1623 #, python-brace-format +msgid "No matching item for serial {serial}" +msgstr "" + +#: order/views.py:1633 +#, python-brace-format msgid "{serial} is not in stock" msgstr "" -#: order/views.py:1631 +#: order/views.py:1641 #, python-brace-format msgid "{serial} already allocated to an order" msgstr "" -#: order/views.py:1685 +#: order/views.py:1695 msgid "Allocate Stock to Order" msgstr "" -#: order/views.py:1759 +#: order/views.py:1769 msgid "Edit Allocation Quantity" msgstr "" -#: order/views.py:1774 +#: order/views.py:1784 msgid "Remove allocation" msgstr "" -#: order/views.py:1846 +#: order/views.py:1856 msgid "Sales order not found" msgstr "" -#: order/views.py:1852 +#: order/views.py:1862 msgid "Price not found" msgstr "" -#: order/views.py:1855 +#: order/views.py:1865 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:1860 +#: order/views.py:1870 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/bom.py:138 part/models.py:72 part/models.py:762 +#: part/bom.py:138 part/models.py:72 part/models.py:747 #: part/templates/part/category.html:66 part/templates/part/detail.html:90 msgid "Default Location" msgstr "" @@ -3634,7 +3726,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:122 part/models.py:2168 +#: part/forms.py:122 part/models.py:2191 msgid "Parent Part" msgstr "" @@ -3710,7 +3802,7 @@ msgstr "" msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:344 part/models.py:2263 +#: part/forms.py:344 part/models.py:2286 msgid "Sub part" msgstr "" @@ -3730,7 +3822,7 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:82 part/models.py:2214 +#: part/models.py:82 part/models.py:2237 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -3741,365 +3833,360 @@ msgstr "" msgid "Part Categories" msgstr "" -#: part/models.py:446 part/models.py:458 +#: part/models.py:448 part/models.py:460 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:555 +#: part/models.py:557 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:559 +#: part/models.py:561 msgid "Next available serial number is" msgstr "" -#: part/models.py:564 +#: part/models.py:566 msgid "Most recent serial number is" msgstr "" -#: part/models.py:643 +#: part/models.py:645 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:654 -msgid "Part must be unique for name, IPN and revision" -msgstr "" - -#: part/models.py:685 part/templates/part/detail.html:22 +#: part/models.py:670 part/templates/part/detail.html:22 msgid "Part name" msgstr "" -#: part/models.py:692 +#: part/models.py:677 msgid "Is Template" msgstr "" -#: part/models.py:693 +#: part/models.py:678 msgid "Is this part a template part?" msgstr "" -#: part/models.py:704 +#: part/models.py:689 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:705 part/templates/part/detail.html:60 +#: part/models.py:690 part/templates/part/detail.html:60 msgid "Variant Of" msgstr "" -#: part/models.py:711 +#: part/models.py:696 msgid "Part description" msgstr "" -#: part/models.py:716 part/templates/part/category.html:73 +#: part/models.py:701 part/templates/part/category.html:73 #: part/templates/part/detail.html:67 msgid "Keywords" msgstr "" -#: part/models.py:717 +#: part/models.py:702 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:724 part/models.py:2213 part/templates/part/detail.html:73 -#: part/templates/part/set_category.html:15 templates/js/part.js:451 +#: part/models.py:709 part/models.py:2236 part/templates/part/detail.html:73 +#: part/templates/part/set_category.html:15 templates/js/part.js:452 msgid "Category" msgstr "" -#: part/models.py:725 +#: part/models.py:710 msgid "Part category" msgstr "" -#: part/models.py:730 part/templates/part/detail.html:28 +#: part/models.py:715 part/templates/part/detail.html:28 #: part/templates/part/part_base.html:87 templates/js/part.js:169 #: templates/js/part.js:296 msgid "IPN" msgstr "" -#: part/models.py:731 +#: part/models.py:716 msgid "Internal Part Number" msgstr "" -#: part/models.py:737 +#: part/models.py:722 msgid "Part revision or version number" msgstr "" -#: part/models.py:738 part/templates/part/detail.html:35 report/models.py:198 +#: part/models.py:723 part/templates/part/detail.html:35 report/models.py:199 #: templates/js/part.js:173 msgid "Revision" msgstr "" -#: part/models.py:760 +#: part/models.py:745 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:807 part/templates/part/detail.html:97 +#: part/models.py:792 part/templates/part/detail.html:97 msgid "Default Supplier" msgstr "" -#: part/models.py:808 +#: part/models.py:793 msgid "Default supplier part" msgstr "" -#: part/models.py:815 +#: part/models.py:800 msgid "Default Expiry" msgstr "" -#: part/models.py:816 +#: part/models.py:801 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:821 part/templates/part/detail.html:113 +#: part/models.py:806 part/templates/part/detail.html:113 msgid "Minimum Stock" msgstr "" -#: part/models.py:822 +#: part/models.py:807 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:828 part/models.py:2142 part/templates/part/detail.html:106 -#: part/templates/part/params.html:29 -msgid "Units" -msgstr "" - -#: part/models.py:829 +#: part/models.py:814 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:835 +#: part/models.py:820 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:841 +#: part/models.py:826 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:847 +#: part/models.py:832 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:852 +#: part/models.py:837 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:857 +#: part/models.py:842 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:861 part/templates/part/detail.html:227 +#: part/models.py:846 part/templates/part/detail.html:227 #: templates/js/table_filters.js:21 templates/js/table_filters.js:65 #: templates/js/table_filters.js:241 templates/js/table_filters.js:310 msgid "Active" msgstr "" -#: part/models.py:862 +#: part/models.py:847 msgid "Is this part active?" msgstr "" -#: part/models.py:867 +#: part/models.py:852 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:872 +#: part/models.py:857 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:875 +#: part/models.py:860 msgid "BOM checksum" msgstr "" -#: part/models.py:875 +#: part/models.py:860 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:878 +#: part/models.py:863 msgid "BOM checked by" msgstr "" -#: part/models.py:880 +#: part/models.py:865 msgid "BOM checked date" msgstr "" -#: part/models.py:884 +#: part/models.py:869 msgid "Creation User" msgstr "" -#: part/models.py:1616 +#: part/models.py:1608 msgid "Sell multiple" msgstr "" -#: part/models.py:2040 +#: part/models.py:2063 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2057 +#: part/models.py:2080 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2077 templates/js/part.js:716 templates/js/stock.js:117 +#: part/models.py:2100 templates/js/part.js:717 templates/js/stock.js:117 msgid "Test Name" msgstr "" -#: part/models.py:2078 +#: part/models.py:2101 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2083 +#: part/models.py:2106 msgid "Test Description" msgstr "" -#: part/models.py:2084 +#: part/models.py:2107 msgid "Enter description for this test" msgstr "" -#: part/models.py:2089 templates/js/part.js:725 +#: part/models.py:2112 templates/js/part.js:726 #: templates/js/table_filters.js:227 msgid "Required" msgstr "" -#: part/models.py:2090 +#: part/models.py:2113 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2095 templates/js/part.js:733 +#: part/models.py:2118 templates/js/part.js:734 msgid "Requires Value" msgstr "" -#: part/models.py:2096 +#: part/models.py:2119 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2101 templates/js/part.js:740 +#: part/models.py:2124 templates/js/part.js:741 msgid "Requires Attachment" msgstr "" -#: part/models.py:2102 +#: part/models.py:2125 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2135 +#: part/models.py:2158 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2140 +#: part/models.py:2163 msgid "Parameter Name" msgstr "" -#: part/models.py:2142 +#: part/models.py:2165 msgid "Parameter Units" msgstr "" -#: part/models.py:2170 part/models.py:2219 part/models.py:2220 +#: part/models.py:2193 part/models.py:2242 part/models.py:2243 #: templates/InvenTree/settings/category.html:62 msgid "Parameter Template" msgstr "" -#: part/models.py:2172 +#: part/models.py:2195 msgid "Data" msgstr "" -#: part/models.py:2172 +#: part/models.py:2195 msgid "Parameter Value" msgstr "" -#: part/models.py:2224 templates/InvenTree/settings/category.html:67 +#: part/models.py:2247 templates/InvenTree/settings/category.html:67 msgid "Default Value" msgstr "" -#: part/models.py:2225 +#: part/models.py:2248 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2255 +#: part/models.py:2278 msgid "Select parent part" msgstr "" -#: part/models.py:2264 +#: part/models.py:2287 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2270 +#: part/models.py:2293 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2272 templates/js/bom.js:216 templates/js/bom.js:285 +#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:285 msgid "Optional" msgstr "" -#: part/models.py:2272 +#: part/models.py:2295 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2275 +#: part/models.py:2298 msgid "Overage" msgstr "" -#: part/models.py:2276 +#: part/models.py:2299 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2279 +#: part/models.py:2302 msgid "BOM item reference" msgstr "" -#: part/models.py:2282 +#: part/models.py:2305 msgid "BOM item notes" msgstr "" -#: part/models.py:2284 +#: part/models.py:2307 msgid "Checksum" msgstr "" -#: part/models.py:2284 +#: part/models.py:2307 msgid "BOM line checksum" msgstr "" -#: part/models.py:2288 templates/js/bom.js:302 templates/js/bom.js:309 +#: part/models.py:2311 templates/js/bom.js:302 templates/js/bom.js:309 #: templates/js/table_filters.js:51 msgid "Inherited" msgstr "" -#: part/models.py:2289 +#: part/models.py:2312 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2294 templates/js/bom.js:294 +#: part/models.py:2317 templates/js/bom.js:294 msgid "Allow Variants" msgstr "" -#: part/models.py:2295 +#: part/models.py:2318 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2371 part/views.py:1681 part/views.py:1733 +#: part/models.py:2394 part/views.py:1692 part/views.py:1744 #: stock/models.py:294 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2380 part/models.py:2382 +#: part/models.py:2403 part/models.py:2405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2385 +#: part/models.py:2408 msgid "BOM Item" msgstr "" -#: part/models.py:2502 +#: part/models.py:2527 msgid "Part 1" msgstr "" -#: part/models.py:2506 +#: part/models.py:2531 msgid "Part 2" msgstr "" -#: part/models.py:2506 +#: part/models.py:2531 msgid "Select Related Part" msgstr "" -#: part/models.py:2538 +#: part/models.py:2563 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" #: part/templates/part/allocation.html:11 -msgid "Part Stock Allocations" +msgid "Build Order Allocations" +msgstr "" + +#: part/templates/part/allocation.html:24 +msgid "Sales Order Allocations" msgstr "" #: part/templates/part/attachments.html:10 @@ -4114,8 +4201,8 @@ msgstr "" msgid "Deleting this entry will remove the BOM row from the following part" msgstr "" -#: part/templates/part/bom.html:10 part/templates/part/navbar.html:48 -#: part/templates/part/navbar.html:51 +#: part/templates/part/bom.html:10 part/templates/part/navbar.html:50 +#: part/templates/part/navbar.html:53 msgid "Bill of Materials" msgstr "" @@ -4162,7 +4249,7 @@ msgstr "" msgid "Validate Bill of Materials" msgstr "" -#: part/templates/part/bom.html:61 part/views.py:1976 +#: part/templates/part/bom.html:61 part/views.py:1987 msgid "Export Bill of Materials" msgstr "" @@ -4179,7 +4266,7 @@ msgid "All selected BOM items will be deleted" msgstr "" #: part/templates/part/bom.html:160 part/views.py:585 -#: templates/js/stock.js:1288 +#: templates/js/stock.js:1313 msgid "Create New Part" msgstr "" @@ -4260,7 +4347,7 @@ msgstr "" msgid "All parts" msgstr "" -#: part/templates/part/category.html:29 part/views.py:2379 +#: part/templates/part/category.html:29 part/views.py:2397 msgid "Create new part category" msgstr "" @@ -4320,7 +4407,7 @@ msgid "View grid display" msgstr "" #: part/templates/part/category.html:209 -#: stock/templates/stock/location.html:192 templates/js/stock.js:712 +#: stock/templates/stock/location.html:192 templates/js/stock.js:737 msgid "Create new location" msgstr "" @@ -4375,14 +4462,8 @@ msgstr "" msgid "If this category is deleted, these parts will be moved to the top-level category Teile" msgstr "" -#: part/templates/part/category_navbar.html:34 -#: part/templates/part/category_navbar.html:37 -#: part/templates/part/navbar.html:22 -msgid "Parameters" -msgstr "" - #: part/templates/part/category_parametric.html:10 -#: part/templates/part/navbar.html:19 part/templates/part/params.html:10 +#: part/templates/part/navbar.html:21 part/templates/part/params.html:10 msgid "Part Parameters" msgstr "" @@ -4410,7 +4491,7 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:11 part/templates/part/navbar.html:11 +#: part/templates/part/detail.html:11 part/templates/part/navbar.html:13 msgid "Part Details" msgstr "" @@ -4490,6 +4571,36 @@ msgstr "" msgid "Part is not active" msgstr "" +#: part/templates/part/internal_prices.html:11 +#: part/templates/part/navbar.html:100 +msgid "Internal Price Information" +msgstr "" + +#: part/templates/part/internal_prices.html:19 part/views.py:2822 +msgid "Add Internal Price Break" +msgstr "" + +#: part/templates/part/internal_prices.html:28 templates/403.html:5 +#: templates/403.html:11 +msgid "Permission Denied" +msgstr "" + +#: part/templates/part/internal_prices.html:31 templates/403.html:14 +msgid "You do not have permission to view this page." +msgstr "" + +#: part/templates/part/internal_prices.html:59 +msgid "No internal price break information found" +msgstr "" + +#: part/templates/part/internal_prices.html:110 +msgid "Edit internal price break" +msgstr "" + +#: part/templates/part/internal_prices.html:111 +msgid "Delete internal price break" +msgstr "" + #: part/templates/part/manufacturer.html:11 msgid "Part Manufacturers" msgstr "" @@ -4503,127 +4614,141 @@ msgstr "" msgid "Create new manufacturer" msgstr "" -#: part/templates/part/navbar.html:26 part/templates/part/variants.html:11 +#: part/templates/part/navbar.html:28 part/templates/part/variants.html:11 msgid "Part Variants" msgstr "" -#: part/templates/part/navbar.html:29 +#: part/templates/part/navbar.html:31 msgid "Variants" msgstr "" -#: part/templates/part/navbar.html:40 +#: part/templates/part/navbar.html:42 msgid "Allocated Stock" msgstr "" -#: part/templates/part/navbar.html:43 +#: part/templates/part/navbar.html:45 msgid "Allocations" msgstr "" -#: part/templates/part/navbar.html:64 part/templates/part/navbar.html:67 +#: part/templates/part/navbar.html:66 part/templates/part/navbar.html:69 msgid "Used In" msgstr "" -#: part/templates/part/navbar.html:72 part/templates/part/order_prices.html:12 +#: part/templates/part/navbar.html:74 part/templates/part/order_prices.html:12 msgid "Order Price Information" msgstr "" -#: part/templates/part/navbar.html:75 +#: part/templates/part/navbar.html:77 msgid "Order Price" msgstr "" -#: part/templates/part/navbar.html:98 +#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:93 +#: part/templates/part/part_pricing.html:82 +msgid "Internal Price" +msgstr "" + +#: part/templates/part/navbar.html:106 msgid "Sales Price Information" msgstr "" -#: part/templates/part/navbar.html:112 part/templates/part/part_tests.html:10 +#: part/templates/part/navbar.html:120 part/templates/part/part_tests.html:10 msgid "Part Test Templates" msgstr "" -#: part/templates/part/navbar.html:115 stock/templates/stock/item_base.html:409 +#: part/templates/part/navbar.html:123 stock/templates/stock/item_base.html:414 msgid "Tests" msgstr "" -#: part/templates/part/navbar.html:119 part/templates/part/navbar.html:122 +#: part/templates/part/navbar.html:127 part/templates/part/navbar.html:130 #: part/templates/part/related.html:10 msgid "Related Parts" msgstr "" -#: part/templates/part/navbar.html:131 part/templates/part/notes.html:12 +#: part/templates/part/navbar.html:139 part/templates/part/notes.html:12 msgid "Part Notes" msgstr "" -#: part/templates/part/order_prices.html:21 +#: part/templates/part/order_prices.html:24 +#: part/templates/part/part_base.html:282 +msgid "Calculate" +msgstr "" + +#: part/templates/part/order_prices.html:31 msgid "Pricing ranges" msgstr "" -#: part/templates/part/order_prices.html:26 -#: part/templates/part/part_pricing.html:19 +#: part/templates/part/order_prices.html:36 +#: part/templates/part/part_pricing.html:22 msgid "Supplier Pricing" msgstr "" -#: part/templates/part/order_prices.html:27 -#: part/templates/part/order_prices.html:52 -#: part/templates/part/order_prices.html:83 -#: part/templates/part/part_pricing.html:23 -#: part/templates/part/part_pricing.html:49 -#: part/templates/part/part_pricing.html:81 +#: part/templates/part/order_prices.html:37 +#: part/templates/part/order_prices.html:62 +#: part/templates/part/order_prices.html:94 +#: part/templates/part/order_prices.html:108 +#: part/templates/part/part_pricing.html:26 +#: part/templates/part/part_pricing.html:52 +#: part/templates/part/part_pricing.html:85 +#: part/templates/part/part_pricing.html:100 msgid "Unit Cost" msgstr "" -#: part/templates/part/order_prices.html:34 -#: part/templates/part/order_prices.html:59 -#: part/templates/part/order_prices.html:88 -#: part/templates/part/part_pricing.html:29 -#: part/templates/part/part_pricing.html:55 -#: part/templates/part/part_pricing.html:85 +#: part/templates/part/order_prices.html:44 +#: part/templates/part/order_prices.html:69 +#: part/templates/part/order_prices.html:99 +#: part/templates/part/order_prices.html:113 +#: part/templates/part/part_pricing.html:32 +#: part/templates/part/part_pricing.html:58 +#: part/templates/part/part_pricing.html:89 +#: part/templates/part/part_pricing.html:104 msgid "Total Cost" msgstr "" -#: part/templates/part/order_prices.html:42 -#: part/templates/part/part_pricing.html:37 +#: part/templates/part/order_prices.html:52 +#: part/templates/part/part_pricing.html:40 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/order_prices.html:51 -#: part/templates/part/order_prices.html:103 -#: part/templates/part/part_pricing.html:45 +#: part/templates/part/order_prices.html:61 +#: part/templates/part/order_prices.html:128 +#: part/templates/part/part_pricing.html:48 msgid "BOM Pricing" msgstr "" -#: part/templates/part/order_prices.html:67 -#: part/templates/part/part_pricing.html:63 +#: part/templates/part/order_prices.html:77 +#: part/templates/part/part_pricing.html:66 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/order_prices.html:74 -#: part/templates/part/part_pricing.html:70 +#: part/templates/part/order_prices.html:84 +#: part/templates/part/part_pricing.html:73 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/order_prices.html:97 -#: part/templates/part/part_pricing.html:94 +#: part/templates/part/order_prices.html:122 +#: part/templates/part/part_pricing.html:113 msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/order_prices.html:113 +#: part/templates/part/order_prices.html:138 msgid "Stock Pricing" msgstr "" -#: part/templates/part/order_prices.html:121 +#: part/templates/part/order_prices.html:146 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/order_prices.html:140 +#: part/templates/part/order_prices.html:165 #, python-format msgid "Single Price - %(currency)s" msgstr "" -#: part/templates/part/order_prices.html:152 +#: part/templates/part/order_prices.html:177 #, python-format msgid "Single Price Difference - %(currency)s" msgstr "" -#: part/templates/part/order_prices.html:163 +#: part/templates/part/order_prices.html:189 #, python-format msgid "Part Single Price - %(currency)s" msgstr "" @@ -4632,19 +4757,6 @@ msgstr "" msgid "Add new parameter" msgstr "" -#: part/templates/part/params.html:18 -#: templates/InvenTree/settings/category.html:29 -#: templates/InvenTree/settings/part.html:44 -msgid "New Parameter" -msgstr "" - -#: part/templates/part/params.html:28 -#: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1756 templates/InvenTree/settings/header.html:8 -#: templates/js/stock.js:137 -msgid "Value" -msgstr "" - #: part/templates/part/params.html:41 templates/InvenTree/settings/user.html:19 msgid "Edit" msgstr "" @@ -4662,7 +4774,7 @@ msgid "Part List" msgstr "" #: part/templates/part/part_base.html:26 templates/js/company.js:156 -#: templates/js/company.js:254 templates/js/part.js:84 templates/js/part.js:161 +#: templates/js/company.js:355 templates/js/part.js:84 templates/js/part.js:161 msgid "Inactive" msgstr "" @@ -4742,14 +4854,10 @@ msgid "Can Build" msgstr "" #: part/templates/part/part_base.html:178 templates/js/part.js:312 -#: templates/js/part.js:484 +#: templates/js/part.js:485 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:265 -msgid "Calculate" -msgstr "" - #: part/templates/part/part_tests.html:17 msgid "Add Test Template" msgstr "" @@ -4818,7 +4926,7 @@ msgid "Showing stock for all variants of %(full_name)s" msgstr "" #: part/templates/part/stock_count.html:7 templates/js/bom.js:239 -#: templates/js/part.js:302 templates/js/part.js:488 +#: templates/js/part.js:302 templates/js/part.js:489 msgid "No Stock" msgstr "" @@ -4855,7 +4963,7 @@ msgstr "" msgid "New Variant" msgstr "" -#: part/templatetags/inventree_extras.py:98 +#: part/templatetags/inventree_extras.py:99 msgid "Unknown database" msgstr "" @@ -4924,227 +5032,239 @@ msgstr "" msgid "Created new part" msgstr "" -#: part/views.py:914 +#: part/views.py:925 msgid "Part QR Code" msgstr "" -#: part/views.py:1016 +#: part/views.py:1027 msgid "Upload Part Image" msgstr "" -#: part/views.py:1022 part/views.py:1057 +#: part/views.py:1033 part/views.py:1068 msgid "Updated part image" msgstr "" -#: part/views.py:1031 +#: part/views.py:1042 msgid "Select Part Image" msgstr "" -#: part/views.py:1060 +#: part/views.py:1071 msgid "Part image not found" msgstr "" -#: part/views.py:1071 +#: part/views.py:1082 msgid "Edit Part Properties" msgstr "" -#: part/views.py:1106 +#: part/views.py:1117 msgid "Duplicate BOM" msgstr "" -#: part/views.py:1136 +#: part/views.py:1147 msgid "Confirm duplication of BOM from parent" msgstr "" -#: part/views.py:1157 +#: part/views.py:1168 msgid "Validate BOM" msgstr "" -#: part/views.py:1178 +#: part/views.py:1189 msgid "Confirm that the BOM is valid" msgstr "" -#: part/views.py:1189 +#: part/views.py:1200 msgid "Validated Bill of Materials" msgstr "" -#: part/views.py:1323 +#: part/views.py:1334 msgid "No BOM file provided" msgstr "" -#: part/views.py:1684 +#: part/views.py:1695 msgid "Enter a valid quantity" msgstr "" -#: part/views.py:1709 part/views.py:1712 +#: part/views.py:1720 part/views.py:1723 msgid "Select valid part" msgstr "" -#: part/views.py:1718 +#: part/views.py:1729 msgid "Duplicate part selected" msgstr "" -#: part/views.py:1756 +#: part/views.py:1767 msgid "Select a part" msgstr "" -#: part/views.py:1762 +#: part/views.py:1773 msgid "Selected part creates a circular BOM" msgstr "" -#: part/views.py:1766 +#: part/views.py:1777 msgid "Specify quantity" msgstr "" -#: part/views.py:2028 +#: part/views.py:2039 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:2035 +#: part/views.py:2046 msgid "Part was deleted" msgstr "" -#: part/views.py:2044 +#: part/views.py:2055 msgid "Part Pricing" msgstr "" -#: part/views.py:2178 +#: part/views.py:2196 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:2188 +#: part/views.py:2206 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:2195 +#: part/views.py:2213 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:2203 +#: part/views.py:2221 msgid "Create Part Parameter" msgstr "" -#: part/views.py:2253 +#: part/views.py:2271 msgid "Edit Part Parameter" msgstr "" -#: part/views.py:2267 +#: part/views.py:2285 msgid "Delete Part Parameter" msgstr "" -#: part/views.py:2327 +#: part/views.py:2345 msgid "Edit Part Category" msgstr "" -#: part/views.py:2365 +#: part/views.py:2383 msgid "Delete Part Category" msgstr "" -#: part/views.py:2371 +#: part/views.py:2389 msgid "Part category was deleted" msgstr "" -#: part/views.py:2423 +#: part/views.py:2441 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:2524 +#: part/views.py:2542 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:2580 +#: part/views.py:2598 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:2599 +#: part/views.py:2617 msgid "Create BOM Item" msgstr "" -#: part/views.py:2669 +#: part/views.py:2687 msgid "Edit BOM item" msgstr "" -#: part/views.py:2725 +#: part/views.py:2743 msgid "Confim BOM item deletion" msgstr "" -#: report/models.py:180 +#: part/views.py:2831 +msgid "Edit Internal Price Break" +msgstr "" + +#: part/views.py:2839 +msgid "Delete Internal Price Break" +msgstr "" + +#: report/models.py:181 msgid "Template name" msgstr "" -#: report/models.py:186 +#: report/models.py:187 msgid "Report template file" msgstr "" -#: report/models.py:193 +#: report/models.py:194 msgid "Report template description" msgstr "" -#: report/models.py:199 +#: report/models.py:200 msgid "Report revision number (auto-increments)" msgstr "" -#: report/models.py:275 +#: report/models.py:291 +msgid "Pattern for generating report filenames" +msgstr "" + +#: report/models.py:298 msgid "Report template is enabled" msgstr "" -#: report/models.py:295 +#: report/models.py:318 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:303 +#: report/models.py:326 msgid "Include Installed Tests" msgstr "" -#: report/models.py:304 +#: report/models.py:327 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:347 +#: report/models.py:371 msgid "Build Filters" msgstr "" -#: report/models.py:348 +#: report/models.py:372 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:385 +#: report/models.py:410 msgid "Part Filters" msgstr "" -#: report/models.py:386 +#: report/models.py:411 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:416 +#: report/models.py:441 msgid "Purchase order query filters" msgstr "" -#: report/models.py:450 +#: report/models.py:475 msgid "Sales order query filters" msgstr "" -#: report/models.py:500 +#: report/models.py:525 msgid "Snippet" msgstr "" -#: report/models.py:501 +#: report/models.py:526 msgid "Report snippet file" msgstr "" -#: report/models.py:505 +#: report/models.py:530 msgid "Snippet file description" msgstr "" -#: report/models.py:540 +#: report/models.py:565 msgid "Asset" msgstr "" -#: report/models.py:541 +#: report/models.py:566 msgid "Report asset file" msgstr "" -#: report/models.py:544 +#: report/models.py:569 msgid "Asset file description" msgstr "" @@ -5176,7 +5296,7 @@ msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/order.js:195 templates/js/stock.js:987 +#: templates/js/order.js:195 templates/js/stock.js:1012 msgid "Date" msgstr "" @@ -5199,7 +5319,7 @@ msgid "Moved {n} parts to {loc}" msgstr "" #: stock/forms.py:114 stock/forms.py:418 stock/models.py:509 -#: stock/templates/stock/item_base.html:376 templates/js/stock.js:654 +#: stock/templates/stock/item_base.html:381 templates/js/stock.js:658 msgid "Expiry Date" msgstr "" @@ -5485,12 +5605,12 @@ msgid "Stock Item Attachments" msgstr "" #: stock/templates/stock/item_base.html:33 -#: stock/templates/stock/item_base.html:380 templates/js/table_filters.js:150 +#: stock/templates/stock/item_base.html:385 templates/js/table_filters.js:150 msgid "Expired" msgstr "" #: stock/templates/stock/item_base.html:43 -#: stock/templates/stock/item_base.html:382 templates/js/table_filters.js:155 +#: stock/templates/stock/item_base.html:387 templates/js/table_filters.js:155 msgid "Stale" msgstr "" @@ -5620,7 +5740,7 @@ msgstr "" msgid "Stock Item Details" msgstr "" -#: stock/templates/stock/item_base.html:289 templates/js/build.js:508 +#: stock/templates/stock/item_base.html:289 templates/js/build.js:593 msgid "No location set" msgstr "" @@ -5632,25 +5752,29 @@ msgstr "" msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:380 +#: stock/templates/stock/item_base.html:356 +msgid "No manufacturer set" +msgstr "" + +#: stock/templates/stock/item_base.html:385 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:382 +#: stock/templates/stock/item_base.html:387 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:389 templates/js/stock.js:660 +#: stock/templates/stock/item_base.html:394 templates/js/stock.js:664 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:394 +#: stock/templates/stock/item_base.html:399 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:398 +#: stock/templates/stock/item_base.html:403 msgid "No stocktake performed" msgstr "" @@ -5947,7 +6071,7 @@ msgstr "" msgid "Add Stock Items" msgstr "" -#: stock/views.py:1001 users/models.py:183 +#: stock/views.py:1001 users/models.py:187 msgid "Add" msgstr "" @@ -6013,7 +6137,7 @@ msgstr "" msgid "Serialize Stock" msgstr "" -#: stock/views.py:1575 templates/js/build.js:244 +#: stock/views.py:1575 templates/js/build.js:326 msgid "Create new Stock Item" msgstr "" @@ -6045,14 +6169,6 @@ msgstr "" msgid "Add Stock Tracking Entry" msgstr "" -#: templates/403.html:5 templates/403.html:11 -msgid "Permission Denied" -msgstr "" - -#: templates/403.html:14 -msgid "You do not have permission to view this page." -msgstr "" - #: templates/404.html:5 templates/404.html:11 msgid "Page Not Found" msgstr "" @@ -6121,11 +6237,11 @@ msgstr "" msgid "Enter a search query" msgstr "" -#: templates/InvenTree/search.html:268 templates/js/stock.js:298 +#: templates/InvenTree/search.html:268 templates/js/stock.js:303 msgid "Shipped to customer" msgstr "" -#: templates/InvenTree/search.html:271 templates/js/stock.js:308 +#: templates/InvenTree/search.html:271 templates/js/stock.js:313 msgid "No stock location set" msgstr "" @@ -6171,12 +6287,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/category.html:70 -#: templates/InvenTree/settings/part.html:81 +#: templates/InvenTree/settings/part.html:85 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/category.html:71 -#: templates/InvenTree/settings/part.html:82 +#: templates/InvenTree/settings/part.html:86 msgid "Delete Template" msgstr "" @@ -6224,11 +6340,11 @@ msgstr "" msgid "Part Options" msgstr "" -#: templates/InvenTree/settings/part.html:40 +#: templates/InvenTree/settings/part.html:44 msgid "Part Parameter Templates" msgstr "" -#: templates/InvenTree/settings/part.html:61 +#: templates/InvenTree/settings/part.html:65 msgid "No part parameter templates found" msgstr "" @@ -6344,47 +6460,51 @@ msgid "API Version" msgstr "" #: templates/about.html:39 +msgid "Python Version" +msgstr "" + +#: templates/about.html:44 msgid "Django Version" msgstr "" -#: templates/about.html:46 +#: templates/about.html:51 msgid "Commit Hash" msgstr "" -#: templates/about.html:53 +#: templates/about.html:58 msgid "Commit Date" msgstr "" -#: templates/about.html:58 +#: templates/about.html:63 msgid "InvenTree Documentation" msgstr "" -#: templates/about.html:63 +#: templates/about.html:68 msgid "View Code on GitHub" msgstr "" -#: templates/about.html:68 +#: templates/about.html:73 msgid "Credits" msgstr "" -#: templates/about.html:73 +#: templates/about.html:78 msgid "Mobile App" msgstr "" -#: templates/about.html:78 +#: templates/about.html:83 msgid "Submit Bug Report" msgstr "" -#: templates/about.html:85 templates/clip.html:4 +#: templates/about.html:90 templates/clip.html:4 msgid "copy to clipboard" msgstr "" -#: templates/about.html:85 +#: templates/about.html:90 msgid "copy version information" msgstr "" -#: templates/about.html:95 templates/js/modals.js:568 -#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54 +#: templates/about.html:100 templates/js/modals.js:568 +#: templates/js/modals.js:861 templates/modals.html:29 templates/modals.html:54 #: templates/modals.html:97 msgid "Close" msgstr "" @@ -6445,7 +6565,7 @@ msgstr "" msgid "Unknown response from server" msgstr "" -#: templates/js/barcode.js:119 templates/js/modals.js:901 +#: templates/js/barcode.js:119 templates/js/modals.js:921 msgid "Invalid server response" msgstr "" @@ -6509,7 +6629,7 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/bom.js:175 templates/js/build.js:1004 +#: templates/js/bom.js:175 templates/js/build.js:1091 msgid "Open subassembly" msgstr "" @@ -6545,7 +6665,7 @@ msgstr "" msgid "Delete BOM Item" msgstr "" -#: templates/js/bom.js:470 templates/js/build.js:340 templates/js/build.js:1102 +#: templates/js/bom.js:470 templates/js/build.js:423 templates/js/build.js:1189 msgid "No BOM items found" msgstr "" @@ -6565,37 +6685,45 @@ msgstr "" msgid "Delete build output" msgstr "" -#: templates/js/build.js:243 templates/stock_table.html:20 +#: templates/js/build.js:184 +msgid "No build order allocations found" +msgstr "" + +#: templates/js/build.js:222 templates/js/order.js:382 +msgid "Location not specified" +msgstr "" + +#: templates/js/build.js:325 templates/stock_table.html:20 msgid "New Stock Item" msgstr "" -#: templates/js/build.js:559 +#: templates/js/build.js:644 msgid "Required Part" msgstr "" -#: templates/js/build.js:580 +#: templates/js/build.js:665 msgid "Quantity Per" msgstr "" -#: templates/js/build.js:648 templates/js/build.js:1066 +#: templates/js/build.js:735 templates/js/build.js:1153 #: templates/stock_table.html:59 msgid "Order stock" msgstr "" -#: templates/js/build.js:701 +#: templates/js/build.js:788 msgid "No builds matching query" msgstr "" -#: templates/js/build.js:718 templates/js/part.js:390 templates/js/part.js:634 -#: templates/js/stock.js:509 templates/js/stock.js:941 +#: templates/js/build.js:805 templates/js/part.js:390 templates/js/part.js:635 +#: templates/js/stock.js:514 templates/js/stock.js:966 msgid "Select" msgstr "" -#: templates/js/build.js:738 +#: templates/js/build.js:825 msgid "Build order is overdue" msgstr "" -#: templates/js/build.js:837 +#: templates/js/build.js:924 msgid "No parts allocated for" msgstr "" @@ -6615,17 +6743,29 @@ msgstr "" msgid "No manufacturer parts found" msgstr "" -#: templates/js/company.js:148 templates/js/company.js:246 +#: templates/js/company.js:148 templates/js/company.js:347 #: templates/js/part.js:68 templates/js/part.js:153 msgid "Template part" msgstr "" -#: templates/js/company.js:152 templates/js/company.js:250 +#: templates/js/company.js:152 templates/js/company.js:351 #: templates/js/part.js:72 templates/js/part.js:157 msgid "Assembled part" msgstr "" -#: templates/js/company.js:227 +#: templates/js/company.js:226 +msgid "No parameters found" +msgstr "" + +#: templates/js/company.js:262 +msgid "Edit parameter" +msgstr "" + +#: templates/js/company.js:263 +msgid "Delete parameter" +msgstr "" + +#: templates/js/company.js:328 msgid "No supplier parts found" msgstr "" @@ -6713,76 +6853,76 @@ msgstr "" msgid "Loading Data" msgstr "" -#: templates/js/modals.js:567 templates/js/modals.js:845 +#: templates/js/modals.js:567 templates/js/modals.js:860 #: templates/modals.html:30 templates/modals.html:55 msgid "Submit" msgstr "" -#: templates/js/modals.js:797 +#: templates/js/modals.js:811 msgid "Invalid response from server" msgstr "" -#: templates/js/modals.js:797 +#: templates/js/modals.js:811 msgid "Form data missing from server response" msgstr "" -#: templates/js/modals.js:810 +#: templates/js/modals.js:824 msgid "Error posting form data" msgstr "" -#: templates/js/modals.js:901 +#: templates/js/modals.js:921 msgid "JSON response missing form data" msgstr "" -#: templates/js/modals.js:911 +#: templates/js/modals.js:931 msgid "No Response" msgstr "" -#: templates/js/modals.js:912 +#: templates/js/modals.js:932 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/modals.js:916 +#: templates/js/modals.js:936 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/modals.js:917 +#: templates/js/modals.js:937 msgid "Server returned error code 400" msgstr "" -#: templates/js/modals.js:921 +#: templates/js/modals.js:941 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/modals.js:922 +#: templates/js/modals.js:942 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/modals.js:926 +#: templates/js/modals.js:946 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/modals.js:927 +#: templates/js/modals.js:947 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/modals.js:931 +#: templates/js/modals.js:951 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/modals.js:932 +#: templates/js/modals.js:952 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/modals.js:936 +#: templates/js/modals.js:956 msgid "Error 408: Timeout" msgstr "" -#: templates/js/modals.js:937 +#: templates/js/modals.js:957 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/modals.js:940 +#: templates/js/modals.js:960 msgid "Error requesting form data" msgstr "" @@ -6798,6 +6938,10 @@ msgstr "" msgid "No sales orders found" msgstr "" +#: templates/js/order.js:343 +msgid "No sales order allocations found" +msgstr "" + #: templates/js/part.js:10 msgid "YES" msgstr "" @@ -6826,39 +6970,39 @@ msgstr "" msgid "No variants found" msgstr "" -#: templates/js/part.js:280 templates/js/part.js:518 +#: templates/js/part.js:280 templates/js/part.js:519 msgid "No parts found" msgstr "" -#: templates/js/part.js:457 +#: templates/js/part.js:458 msgid "No category" msgstr "" -#: templates/js/part.js:475 templates/js/table_filters.js:323 +#: templates/js/part.js:476 templates/js/table_filters.js:323 msgid "Low stock" msgstr "" -#: templates/js/part.js:659 templates/js/stock.js:965 +#: templates/js/part.js:660 templates/js/stock.js:990 msgid "Path" msgstr "" -#: templates/js/part.js:702 +#: templates/js/part.js:703 msgid "No test templates matching query" msgstr "" -#: templates/js/part.js:753 templates/js/stock.js:75 +#: templates/js/part.js:754 templates/js/stock.js:75 msgid "Edit test result" msgstr "" -#: templates/js/part.js:754 templates/js/stock.js:76 +#: templates/js/part.js:755 templates/js/stock.js:76 msgid "Delete test result" msgstr "" -#: templates/js/part.js:760 +#: templates/js/part.js:761 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/part.js:805 +#: templates/js/part.js:806 msgid "Single Price Difference" msgstr "" @@ -6956,155 +7100,155 @@ msgstr "" msgid "Test Date" msgstr "" -#: templates/js/stock.js:290 +#: templates/js/stock.js:295 msgid "In production" msgstr "" -#: templates/js/stock.js:294 +#: templates/js/stock.js:299 msgid "Installed in Stock Item" msgstr "" -#: templates/js/stock.js:302 +#: templates/js/stock.js:307 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/stock.js:334 +#: templates/js/stock.js:339 msgid "No stock items matching query" msgstr "" -#: templates/js/stock.js:355 +#: templates/js/stock.js:360 msgid "items" msgstr "" -#: templates/js/stock.js:447 +#: templates/js/stock.js:452 msgid "batches" msgstr "" -#: templates/js/stock.js:474 +#: templates/js/stock.js:479 msgid "locations" msgstr "" -#: templates/js/stock.js:476 +#: templates/js/stock.js:481 msgid "Undefined location" msgstr "" -#: templates/js/stock.js:577 +#: templates/js/stock.js:582 msgid "Stock item is in production" msgstr "" -#: templates/js/stock.js:582 +#: templates/js/stock.js:587 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/stock.js:585 +#: templates/js/stock.js:590 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/stock.js:589 +#: templates/js/stock.js:594 msgid "Stock item has expired" msgstr "" -#: templates/js/stock.js:591 +#: templates/js/stock.js:596 msgid "Stock item will expire soon" msgstr "" -#: templates/js/stock.js:595 +#: templates/js/stock.js:600 msgid "Stock item has been allocated" msgstr "" -#: templates/js/stock.js:599 +#: templates/js/stock.js:604 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/stock.js:607 +#: templates/js/stock.js:611 msgid "Stock item has been rejected" msgstr "" -#: templates/js/stock.js:611 +#: templates/js/stock.js:615 msgid "Stock item is lost" msgstr "" -#: templates/js/stock.js:614 +#: templates/js/stock.js:618 msgid "Stock item is destroyed" msgstr "" -#: templates/js/stock.js:618 templates/js/table_filters.js:143 +#: templates/js/stock.js:622 templates/js/table_filters.js:143 msgid "Depleted" msgstr "" -#: templates/js/stock.js:647 +#: templates/js/stock.js:651 msgid "Stocktake" msgstr "" -#: templates/js/stock.js:828 +#: templates/js/stock.js:853 msgid "Stock Status" msgstr "" -#: templates/js/stock.js:843 +#: templates/js/stock.js:868 msgid "Set Stock Status" msgstr "" -#: templates/js/stock.js:857 +#: templates/js/stock.js:882 msgid "Select Status Code" msgstr "" -#: templates/js/stock.js:858 +#: templates/js/stock.js:883 msgid "Status code must be selected" msgstr "" -#: templates/js/stock.js:997 +#: templates/js/stock.js:1022 msgid "Invalid date" msgstr "" -#: templates/js/stock.js:1044 +#: templates/js/stock.js:1069 msgid "Location no longer exists" msgstr "" -#: templates/js/stock.js:1063 +#: templates/js/stock.js:1088 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/stock.js:1082 +#: templates/js/stock.js:1107 msgid "Customer no longer exists" msgstr "" -#: templates/js/stock.js:1100 +#: templates/js/stock.js:1125 msgid "Stock item no longer exists" msgstr "" -#: templates/js/stock.js:1123 +#: templates/js/stock.js:1148 msgid "Added" msgstr "" -#: templates/js/stock.js:1131 +#: templates/js/stock.js:1156 msgid "Removed" msgstr "" -#: templates/js/stock.js:1163 +#: templates/js/stock.js:1188 msgid "No user information" msgstr "" -#: templates/js/stock.js:1175 +#: templates/js/stock.js:1200 msgid "Edit tracking entry" msgstr "" -#: templates/js/stock.js:1176 +#: templates/js/stock.js:1201 msgid "Delete tracking entry" msgstr "" -#: templates/js/stock.js:1300 +#: templates/js/stock.js:1325 msgid "Create New Location" msgstr "" -#: templates/js/stock.js:1341 +#: templates/js/stock.js:1366 msgid "No installed items" msgstr "" -#: templates/js/stock.js:1364 +#: templates/js/stock.js:1389 msgid "Serial" msgstr "" -#: templates/js/stock.js:1392 +#: templates/js/stock.js:1417 msgid "Uninstall Stock Item" msgstr "" @@ -7270,56 +7414,56 @@ msgstr "" msgid "Purchasable" msgstr "" -#: templates/js/tables.js:321 +#: templates/js/tables.js:323 msgid "Loading data" msgstr "" -#: templates/js/tables.js:324 +#: templates/js/tables.js:326 msgid "rows per page" msgstr "" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "Showing" msgstr "" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "to" msgstr "" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "of" msgstr "" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "rows" msgstr "" -#: templates/js/tables.js:330 templates/search_form.html:6 +#: templates/js/tables.js:332 templates/search_form.html:6 #: templates/search_form.html:8 msgid "Search" msgstr "" -#: templates/js/tables.js:333 +#: templates/js/tables.js:335 msgid "No matching results" msgstr "" -#: templates/js/tables.js:336 +#: templates/js/tables.js:338 msgid "Hide/Show pagination" msgstr "" -#: templates/js/tables.js:339 +#: templates/js/tables.js:341 msgid "Refresh" msgstr "" -#: templates/js/tables.js:342 +#: templates/js/tables.js:344 msgid "Toggle" msgstr "" -#: templates/js/tables.js:345 +#: templates/js/tables.js:347 msgid "Columns" msgstr "" -#: templates/js/tables.js:348 +#: templates/js/tables.js:350 msgid "All" msgstr "" @@ -7563,34 +7707,34 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:170 +#: users/models.py:174 msgid "Permission set" msgstr "" -#: users/models.py:178 +#: users/models.py:182 msgid "Group" msgstr "" -#: users/models.py:181 +#: users/models.py:185 msgid "View" msgstr "" -#: users/models.py:181 +#: users/models.py:185 msgid "Permission to view items" msgstr "" -#: users/models.py:183 +#: users/models.py:187 msgid "Permission to add items" msgstr "" -#: users/models.py:185 +#: users/models.py:189 msgid "Change" msgstr "" -#: users/models.py:185 +#: users/models.py:189 msgid "Permissions to edit items" msgstr "" -#: users/models.py:187 +#: users/models.py:191 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po index 6d0f3375c4..1bbb282835 100644 --- a/InvenTree/locale/es/LC_MESSAGES/django.po +++ b/InvenTree/locale/es/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-06-16 22:40+0000\n" -"PO-Revision-Date: 2021-06-16 22:40\n" +"POT-Creation-Date: 2021-06-24 21:38+0000\n" +"PO-Revision-Date: 2021-06-25 14:06\n" "Last-Translator: \n" "Language-Team: Spanish\n" "Language: es_ES\n" @@ -19,19 +19,19 @@ msgstr "" #: InvenTree/api.py:64 msgid "API endpoint not found" -msgstr "" +msgstr "endpoint API no encontrado" #: InvenTree/api.py:110 msgid "No action specified" -msgstr "" +msgstr "No se especificó ninguna acción" #: InvenTree/api.py:124 msgid "No matching action found" -msgstr "" +msgstr "No se encontró ninguna acción coincidente" #: InvenTree/fields.py:44 msgid "Enter date" -msgstr "" +msgstr "Ingrese la fecha" #: InvenTree/forms.py:112 build/forms.py:102 build/forms.py:123 #: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227 @@ -42,19 +42,19 @@ msgstr "Confirmar" #: InvenTree/forms.py:128 msgid "Confirm delete" -msgstr "" +msgstr "Confirmar eliminación" #: InvenTree/forms.py:129 msgid "Confirm item deletion" -msgstr "" +msgstr "Confirmar borrado de artículo" #: InvenTree/forms.py:161 templates/registration/login.html:76 msgid "Enter password" -msgstr "" +msgstr "Introduzca contraseña" #: InvenTree/forms.py:162 msgid "Enter new password" -msgstr "" +msgstr "Ingrese su nueva contraseña" #: InvenTree/forms.py:169 msgid "Confirm password" @@ -66,21 +66,21 @@ msgstr "Confirmar contraseña nueva" #: InvenTree/forms.py:205 msgid "Apply Theme" -msgstr "" +msgstr "Aplicar tema" #: InvenTree/forms.py:235 msgid "Select Category" -msgstr "" +msgstr "Seleccionar Categoría" #: InvenTree/helpers.py:377 #, python-brace-format msgid "Duplicate serial: {n}" msgstr "" -#: InvenTree/helpers.py:384 order/models.py:247 order/models.py:357 +#: InvenTree/helpers.py:384 order/models.py:248 order/models.py:358 #: stock/views.py:1795 msgid "Invalid quantity provided" -msgstr "" +msgstr "Cantidad proporcionada no válida" #: InvenTree/helpers.py:387 msgid "Empty serial number string" @@ -90,7 +90,7 @@ msgstr "" #: InvenTree/helpers.py:440 #, python-brace-format msgid "Invalid group: {g}" -msgstr "" +msgstr "Grupo no válido: un {g}" #: InvenTree/helpers.py:445 #, python-brace-format @@ -99,7 +99,7 @@ msgstr "" #: InvenTree/helpers.py:453 msgid "No serial numbers found" -msgstr "" +msgstr "Numeros de serie no encontrados" #: InvenTree/helpers.py:457 #, python-brace-format @@ -122,9 +122,9 @@ msgstr "Comentario" msgid "File comment" msgstr "" -#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1999 +#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:2022 #: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/stock.js:1154 +#: templates/js/stock.js:1179 msgid "User" msgstr "Usuario" @@ -132,34 +132,35 @@ msgstr "Usuario" msgid "upload date" msgstr "" -#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102 -#: part/models.py:686 part/models.py:2140 part/templates/part/params.html:27 -#: report/models.py:179 templates/InvenTree/search.html:137 -#: templates/InvenTree/search.html:289 templates/js/part.js:118 -#: templates/js/part.js:641 templates/js/stock.js:947 +#: InvenTree/models.py:107 InvenTree/models.py:108 company/models.py:396 +#: label/models.py:102 part/models.py:671 part/models.py:2163 +#: part/templates/part/params.html:27 report/models.py:180 +#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289 +#: templates/js/company.js:235 templates/js/part.js:118 +#: templates/js/part.js:642 templates/js/stock.js:972 msgid "Name" msgstr "Nombre" #: InvenTree/models.py:114 build/models.py:135 #: build/templates/build/detail.html:21 company/models.py:339 -#: company/models.py:491 company/templates/company/detail.html:27 +#: company/models.py:532 company/templates/company/detail.html:27 #: company/templates/company/manufacturer_part_base.html:72 #: company/templates/company/supplier_part_base.html:71 #: company/templates/company/supplier_part_detail.html:31 label/models.py:109 -#: order/models.py:103 order/templates/order/purchase_order_detail.html:147 -#: part/models.py:710 part/templates/part/detail.html:54 -#: part/templates/part/set_category.html:14 report/models.py:192 -#: report/models.py:505 report/models.py:544 +#: order/models.py:104 order/templates/order/purchase_order_detail.html:147 +#: part/models.py:695 part/templates/part/detail.html:54 +#: part/templates/part/set_category.html:14 report/models.py:193 +#: report/models.py:530 report/models.py:569 #: report/templates/report/inventree_build_order_base.html:118 #: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224 #: templates/InvenTree/search.html:296 #: templates/InvenTree/settings/header.html:9 templates/js/bom.js:190 -#: templates/js/build.js:746 templates/js/build.js:1014 +#: templates/js/build.js:833 templates/js/build.js:1101 #: templates/js/company.js:56 templates/js/order.js:183 #: templates/js/order.js:280 templates/js/part.js:177 templates/js/part.js:260 -#: templates/js/part.js:437 templates/js/part.js:653 templates/js/part.js:721 -#: templates/js/stock.js:552 templates/js/stock.js:959 -#: templates/js/stock.js:1004 +#: templates/js/part.js:437 templates/js/part.js:654 templates/js/part.js:722 +#: templates/js/stock.js:557 templates/js/stock.js:984 +#: templates/js/stock.js:1029 msgid "Description" msgstr "Descripción" @@ -191,26 +192,26 @@ msgstr "Polaco" msgid "Turkish" msgstr "Turco" -#: InvenTree/status.py:93 +#: InvenTree/status.py:94 msgid "Background worker check failed" msgstr "" -#: InvenTree/status.py:97 +#: InvenTree/status.py:98 msgid "Email backend not configured" msgstr "" -#: InvenTree/status.py:100 +#: InvenTree/status.py:101 msgid "InvenTree system health checks failed" msgstr "" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145 #: InvenTree/status_codes.py:314 msgid "Pending" -msgstr "" +msgstr "Pendiente" #: InvenTree/status_codes.py:105 msgid "Placed" -msgstr "" +msgstr "Colocado" #: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317 msgid "Complete" @@ -234,7 +235,7 @@ msgstr "" #: InvenTree/status_codes.py:146 #: order/templates/order/sales_order_base.html:126 msgid "Shipped" -msgstr "" +msgstr "Enviado" #: InvenTree/status_codes.py:186 msgid "OK" @@ -254,7 +255,7 @@ msgstr "Destruido" #: InvenTree/status_codes.py:191 msgid "Rejected" -msgstr "" +msgstr "Rechazado" #: InvenTree/status_codes.py:272 msgid "Legacy stock tracking entry" @@ -262,31 +263,31 @@ msgstr "" #: InvenTree/status_codes.py:274 msgid "Stock item created" -msgstr "" +msgstr "Artículo de stock creado" #: InvenTree/status_codes.py:276 msgid "Edited stock item" -msgstr "" +msgstr "Elemento de stock editado" #: InvenTree/status_codes.py:277 msgid "Assigned serial number" -msgstr "" +msgstr "Número de serie asignado" #: InvenTree/status_codes.py:279 msgid "Stock counted" -msgstr "" +msgstr "Stock contado" #: InvenTree/status_codes.py:280 msgid "Stock manually added" -msgstr "" +msgstr "Stock añadido manualmente" #: InvenTree/status_codes.py:281 msgid "Stock manually removed" -msgstr "" +msgstr "Stock eliminado manualmente" #: InvenTree/status_codes.py:283 msgid "Location changed" -msgstr "" +msgstr "Ubicación cambiada" #: InvenTree/status_codes.py:285 msgid "Installed into assembly" @@ -326,11 +327,11 @@ msgstr "" #: InvenTree/status_codes.py:298 msgid "Build order output completed" -msgstr "" +msgstr "Construir orden de salida completado" #: InvenTree/status_codes.py:300 msgid "Received against purchase order" -msgstr "" +msgstr "Recibido contra la orden de compra" #: InvenTree/status_codes.py:315 msgid "Production" @@ -372,27 +373,27 @@ msgstr "" msgid "Overage must be an integer value or a percentage" msgstr "" -#: InvenTree/views.py:605 +#: InvenTree/views.py:608 msgid "Delete Item" msgstr "Eliminar elemento" -#: InvenTree/views.py:654 +#: InvenTree/views.py:657 msgid "Check box to confirm item deletion" msgstr "" -#: InvenTree/views.py:669 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:672 templates/InvenTree/settings/user.html:18 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:683 templates/InvenTree/settings/user.html:22 msgid "Set Password" msgstr "Configurar Contraseña" -#: InvenTree/views.py:699 +#: InvenTree/views.py:702 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:950 templates/navbar.html:95 +#: InvenTree/views.py:953 templates/navbar.html:95 msgid "System Information" msgstr "Información del sistema" @@ -445,11 +446,11 @@ msgid "Order target date" msgstr "" #: build/forms.py:42 build/templates/build/build_base.html:146 -#: build/templates/build/detail.html:121 order/forms.py:109 order/forms.py:144 +#: build/templates/build/detail.html:121 order/forms.py:114 order/forms.py:149 #: order/templates/order/order_base.html:124 #: order/templates/order/sales_order_base.html:119 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/build.js:793 templates/js/order.js:200 +#: templates/js/build.js:880 templates/js/order.js:200 #: templates/js/order.js:298 msgid "Target Date" msgstr "" @@ -462,22 +463,21 @@ msgstr "" #: build/templates/build/allocation_card.html:23 #: build/templates/build/auto_allocate.html:17 #: build/templates/build/build_base.html:133 -#: build/templates/build/detail.html:31 common/models.py:699 -#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77 -#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262 -#: order/forms.py:279 order/models.py:616 order/models.py:817 +#: build/templates/build/detail.html:31 common/models.py:720 +#: company/forms.py:191 company/templates/company/supplier_part_pricing.html:77 +#: order/forms.py:193 order/forms.py:211 order/forms.py:246 order/forms.py:268 +#: order/forms.py:285 order/models.py:617 order/models.py:841 #: order/templates/order/order_wizard/match_parts.html:29 -#: order/templates/order/order_wizard/select_parts.html:32 +#: order/templates/order/order_wizard/select_parts.html:34 #: order/templates/order/purchase_order_detail.html:179 #: order/templates/order/sales_order_detail.html:70 #: order/templates/order/sales_order_detail.html:77 #: order/templates/order/sales_order_detail.html:162 -#: order/templates/order/sales_order_detail.html:230 part/forms.py:342 -#: part/forms.py:372 part/forms.py:388 part/models.py:2270 -#: part/templates/part/allocation.html:19 -#: part/templates/part/allocation.html:53 -#: part/templates/part/order_prices.html:175 -#: part/templates/part/part_pricing.html:13 +#: order/templates/order/sales_order_detail.html:234 part/forms.py:342 +#: part/forms.py:372 part/forms.py:388 part/forms.py:404 part/models.py:2293 +#: part/templates/part/internal_prices.html:98 +#: part/templates/part/order_prices.html:202 +#: part/templates/part/part_pricing.html:16 #: part/templates/part/sale_prices.html:85 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -486,9 +486,10 @@ msgstr "" #: stock/forms.py:175 stock/forms.py:308 #: stock/templates/stock/item_base.html:255 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364 -#: templates/js/bom.js:205 templates/js/build.js:486 templates/js/build.js:1024 -#: templates/js/part.js:795 templates/js/stock.js:1139 -#: templates/js/stock.js:1358 +#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:571 +#: templates/js/build.js:1111 templates/js/order.js:393 +#: templates/js/part.js:796 templates/js/stock.js:1164 +#: templates/js/stock.js:1383 msgid "Quantity" msgstr "Cantidad" @@ -500,7 +501,7 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/forms.py:95 order/forms.py:234 stock/forms.py:118 +#: build/forms.py:95 order/forms.py:240 stock/forms.py:118 msgid "Serial Numbers" msgstr "Números de serie" @@ -529,12 +530,12 @@ msgid "Mark build as complete" msgstr "" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 -#: order/forms.py:82 stock/forms.py:347 -#: stock/templates/stock/item_base.html:285 +#: stock/forms.py:347 stock/templates/stock/item_base.html:285 #: stock/templates/stock/stock_adjust.html:17 #: templates/InvenTree/search.html:260 templates/js/barcode.js:363 -#: templates/js/barcode.js:531 templates/js/build.js:500 -#: templates/js/stock.js:639 templates/js/stock.js:1031 +#: templates/js/barcode.js:531 templates/js/build.js:218 +#: templates/js/build.js:585 templates/js/order.js:378 +#: templates/js/stock.js:643 templates/js/stock.js:1056 msgid "Location" msgstr "Unicación" @@ -543,13 +544,13 @@ msgid "Location of completed parts" msgstr "" #: build/forms.py:215 build/templates/build/build_base.html:138 -#: build/templates/build/detail.html:59 order/models.py:468 +#: build/templates/build/detail.html:59 order/models.py:469 #: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:403 templates/InvenTree/search.html:252 -#: templates/js/barcode.js:119 templates/js/build.js:780 +#: stock/templates/stock/item_base.html:408 templates/InvenTree/search.html:252 +#: templates/js/barcode.js:119 templates/js/build.js:867 #: templates/js/order.js:187 templates/js/order.js:285 -#: templates/js/stock.js:626 templates/js/stock.js:1108 -#: templates/js/stock.js:1374 +#: templates/js/stock.js:630 templates/js/stock.js:1133 +#: templates/js/stock.js:1399 msgid "Status" msgstr "Estado" @@ -583,16 +584,16 @@ msgstr "" #: build/models.py:66 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:73 -#: part/templates/part/allocation.html:23 #: report/templates/report/inventree_build_order_base.html:106 +#: templates/js/build.js:195 msgid "Build Order" msgstr "" #: build/models.py:67 build/templates/build/index.html:8 #: build/templates/build/index.html:15 order/templates/order/so_builds.html:12 #: order/templates/order/so_navbar.html:19 -#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:55 -#: part/templates/part/navbar.html:58 templates/InvenTree/index.html:183 +#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:57 +#: part/templates/part/navbar.html:60 templates/InvenTree/index.html:183 #: templates/InvenTree/search.html:185 #: templates/InvenTree/settings/tabs.html:34 users/models.py:43 msgid "Build Orders" @@ -602,12 +603,12 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:128 order/models.py:101 order/models.py:618 +#: build/models.py:128 order/models.py:102 order/models.py:619 #: order/templates/order/purchase_order_detail.html:174 -#: order/templates/order/sales_order_detail.html:225 part/models.py:2279 +#: order/templates/order/sales_order_detail.html:229 part/models.py:2302 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197 -#: templates/js/build.js:575 templates/js/build.js:1018 +#: templates/js/build.js:660 templates/js/build.js:1105 msgid "Reference" msgstr "Referencia" @@ -626,27 +627,27 @@ msgstr "" #: build/models.py:153 build/templates/build/auto_allocate.html:16 #: build/templates/build/build_base.html:128 -#: build/templates/build/detail.html:26 company/models.py:622 -#: order/models.py:660 order/models.py:693 -#: order/templates/order/order_wizard/select_parts.html:30 +#: build/templates/build/detail.html:26 company/models.py:663 +#: order/models.py:661 order/models.py:717 +#: order/templates/order/order_wizard/select_parts.html:32 #: order/templates/order/purchase_order_detail.html:132 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:213 part/models.py:321 -#: part/models.py:1967 part/models.py:1979 part/models.py:1997 -#: part/models.py:2072 part/models.py:2168 part/models.py:2254 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29 +#: order/templates/order/sales_order_detail.html:214 part/models.py:321 +#: part/models.py:1975 part/models.py:1987 part/models.py:2002 +#: part/models.py:2020 part/models.py:2095 part/models.py:2191 +#: part/models.py:2277 part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 part/templates/part/related.html:29 #: part/templates/part/set_category.html:13 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 #: templates/InvenTree/search.html:112 templates/InvenTree/search.html:210 #: templates/js/barcode.js:362 templates/js/bom.js:163 -#: templates/js/build.js:466 templates/js/build.js:751 -#: templates/js/build.js:991 templates/js/company.js:140 -#: templates/js/company.js:238 templates/js/part.js:241 -#: templates/js/part.js:404 templates/js/stock.js:521 -#: templates/js/stock.js:1346 +#: templates/js/build.js:551 templates/js/build.js:838 +#: templates/js/build.js:1078 templates/js/company.js:140 +#: templates/js/company.js:339 templates/js/part.js:241 +#: templates/js/part.js:404 templates/js/stock.js:526 +#: templates/js/stock.js:1371 msgid "Part" msgstr "Parte" @@ -710,16 +711,16 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:220 order/models.py:107 part/models.py:882 +#: build/models.py:220 order/models.py:108 part/models.py:867 #: part/templates/part/detail.html:126 templates/js/order.js:293 msgid "Creation Date" msgstr "" -#: build/models.py:224 order/models.py:474 +#: build/models.py:224 order/models.py:475 msgid "Target completion date" msgstr "" -#: build/models.py:228 order/models.py:220 templates/js/build.js:798 +#: build/models.py:228 order/models.py:221 templates/js/build.js:885 msgid "Completion Date" msgstr "" @@ -736,9 +737,9 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:251 build/templates/build/build_base.html:184 -#: build/templates/build/detail.html:105 order/models.py:121 +#: build/templates/build/detail.html:105 order/models.py:122 #: order/templates/order/order_base.html:138 -#: order/templates/order/sales_order_base.html:140 part/models.py:886 +#: order/templates/order/sales_order_base.html:140 part/models.py:871 #: report/templates/report/inventree_build_order_base.html:159 msgid "Responsible" msgstr "Responsable" @@ -757,26 +758,26 @@ msgstr "" msgid "External Link" msgstr "" -#: build/models.py:258 part/models.py:744 stock/models.py:462 +#: build/models.py:258 part/models.py:729 stock/models.py:462 msgid "Link to external URL" msgstr "" #: build/models.py:262 build/templates/build/navbar.html:53 -#: company/models.py:132 company/models.py:498 +#: company/models.py:132 company/models.py:539 #: company/templates/company/navbar.html:70 -#: company/templates/company/navbar.html:73 order/models.py:125 -#: order/models.py:620 order/templates/order/po_navbar.html:29 -#: order/templates/order/po_navbar.html:32 -#: order/templates/order/purchase_order_detail.html:239 -#: order/templates/order/sales_order_detail.html:278 +#: company/templates/company/navbar.html:73 order/models.py:126 +#: order/models.py:621 order/templates/order/po_navbar.html:38 +#: order/templates/order/po_navbar.html:41 +#: order/templates/order/purchase_order_detail.html:243 +#: order/templates/order/sales_order_detail.html:309 #: order/templates/order/so_navbar.html:33 -#: order/templates/order/so_navbar.html:36 part/models.py:871 -#: part/templates/part/navbar.html:134 +#: order/templates/order/so_navbar.html:36 part/models.py:856 +#: part/templates/part/navbar.html:142 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377 #: stock/models.py:532 stock/models.py:1667 stock/models.py:1769 #: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37 -#: templates/js/bom.js:356 templates/js/stock.js:141 templates/js/stock.js:674 +#: templates/js/bom.js:356 templates/js/stock.js:141 templates/js/stock.js:699 msgid "Notes" msgstr "Notas" @@ -809,11 +810,11 @@ msgstr "" msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1188 order/models.py:791 +#: build/models.py:1188 order/models.py:815 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1192 order/models.py:794 +#: build/models.py:1192 order/models.py:818 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -827,7 +828,7 @@ msgid "Selected stock item not found in BOM for part '{p}'" msgstr "" #: build/models.py:1316 stock/templates/stock/item_base.html:317 -#: templates/InvenTree/search.html:183 templates/js/build.js:724 +#: templates/InvenTree/search.html:183 templates/js/build.js:811 #: templates/navbar.html:29 msgid "Build" msgstr "" @@ -836,15 +837,13 @@ msgstr "" msgid "Build to allocate parts" msgstr "" -#: build/models.py:1333 part/templates/part/allocation.html:18 -#: part/templates/part/allocation.html:24 -#: part/templates/part/allocation.html:31 -#: part/templates/part/allocation.html:49 -#: stock/templates/stock/item_base.html:8 +#: build/models.py:1333 stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:31 #: stock/templates/stock/item_base.html:339 -#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:841 -#: templates/js/stock.js:1090 +#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:206 +#: templates/js/build.js:211 templates/js/build.js:928 +#: templates/js/order.js:366 templates/js/order.js:371 +#: templates/js/stock.js:1115 msgid "Stock Item" msgstr "" @@ -880,7 +879,7 @@ msgstr "" msgid "Auto Allocate" msgstr "" -#: build/templates/build/allocate.html:25 templates/js/build.js:656 +#: build/templates/build/allocate.html:25 templates/js/build.js:743 msgid "Unallocate stock" msgstr "" @@ -917,15 +916,15 @@ msgstr "" #: order/templates/order/sales_order_detail.html:160 #: report/templates/report/inventree_test_report_base.html:75 #: stock/models.py:454 stock/templates/stock/item_base.html:249 -#: templates/js/build.js:484 +#: templates/js/build.js:569 msgid "Serial Number" msgstr "Número de serie" #: build/templates/build/attachments.html:12 #: build/templates/build/navbar.html:43 build/templates/build/navbar.html:46 -#: order/templates/order/po_navbar.html:26 -#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:125 -#: part/templates/part/navbar.html:128 stock/templates/stock/navbar.html:47 +#: order/templates/order/po_navbar.html:35 +#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:133 +#: part/templates/part/navbar.html:136 stock/templates/stock/navbar.html:47 #: stock/templates/stock/navbar.html:50 msgid "Attachments" msgstr "" @@ -1037,11 +1036,10 @@ msgid "Progress" msgstr "Progreso" #: build/templates/build/build_base.html:170 -#: build/templates/build/detail.html:84 order/models.py:691 +#: build/templates/build/detail.html:84 order/models.py:715 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:35 #: order/templates/order/sales_order_ship.html:25 -#: part/templates/part/allocation.html:30 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 #: stock/templates/stock/item_base.html:279 templates/js/order.js:245 @@ -1185,7 +1183,10 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:46 stock/forms.py:169 stock/forms.py:375 +#: build/templates/build/detail.html:46 order/forms.py:85 order/models.py:678 +#: order/templates/order/purchase_order_detail.html:239 +#: order/templates/order/receive_parts.html:25 stock/forms.py:169 +#: stock/forms.py:375 msgid "Destination" msgstr "Destinación" @@ -1194,15 +1195,15 @@ msgid "Destination location not specified" msgstr "" #: build/templates/build/detail.html:70 -#: stock/templates/stock/item_base.html:303 templates/js/stock.js:634 -#: templates/js/stock.js:1381 templates/js/table_filters.js:112 +#: stock/templates/stock/item_base.html:303 templates/js/stock.js:638 +#: templates/js/stock.js:1406 templates/js/table_filters.js:112 #: templates/js/table_filters.js:206 msgid "Batch" msgstr "Lote" #: build/templates/build/detail.html:116 #: order/templates/order/order_base.html:111 -#: order/templates/order/sales_order_base.html:113 templates/js/build.js:788 +#: order/templates/order/sales_order_base.html:113 templates/js/build.js:875 msgid "Created" msgstr "" @@ -1210,7 +1211,7 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:132 templates/js/build.js:766 +#: build/templates/build/detail.html:132 templates/js/build.js:853 msgid "Completed" msgstr "Completados" @@ -1248,9 +1249,9 @@ msgstr "" #: build/templates/build/navbar.html:15 #: company/templates/company/navbar.html:15 -#: order/templates/order/po_navbar.html:14 -#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15 -#: templates/js/stock.js:1019 +#: order/templates/order/po_navbar.html:15 +#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:17 +#: templates/js/stock.js:1044 msgid "Details" msgstr "Detalles" @@ -1285,8 +1286,8 @@ msgstr "" #: build/templates/build/notes.html:26 company/templates/company/notes.html:24 #: order/templates/order/order_notes.html:27 #: order/templates/order/sales_order_notes.html:29 -#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:482 -#: stock/templates/stock/item_base.html:492 +#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:487 +#: stock/templates/stock/item_base.html:497 #: stock/templates/stock/item_notes.html:26 msgid "Save" msgstr "Guardar" @@ -1411,8 +1412,8 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:585 -#: templates/js/build.js:848 templates/js/build.js:1031 +#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:670 +#: templates/js/build.js:935 templates/js/build.js:1118 msgid "Available" msgstr "" @@ -1598,8 +1599,8 @@ msgstr "" msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:153 part/models.py:2170 part/templates/part/detail.html:160 -#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25 +#: common/models.py:153 part/models.py:2193 part/templates/part/detail.html:160 +#: report/models.py:186 stock/forms.py:259 templates/js/table_filters.js:25 #: templates/js/table_filters.js:315 msgid "Template" msgstr "" @@ -1608,7 +1609,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:160 part/models.py:834 part/templates/part/detail.html:170 +#: common/models.py:160 part/models.py:819 part/templates/part/detail.html:170 #: templates/js/table_filters.js:128 templates/js/table_filters.js:327 msgid "Assembly" msgstr "" @@ -1617,7 +1618,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:167 part/models.py:840 part/templates/part/detail.html:180 +#: common/models.py:167 part/models.py:825 part/templates/part/detail.html:180 #: templates/js/table_filters.js:331 msgid "Component" msgstr "" @@ -1626,7 +1627,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:174 part/models.py:851 part/templates/part/detail.html:200 +#: common/models.py:174 part/models.py:836 part/templates/part/detail.html:200 msgid "Purchaseable" msgstr "" @@ -1634,7 +1635,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:181 part/models.py:856 part/templates/part/detail.html:210 +#: common/models.py:181 part/models.py:841 part/templates/part/detail.html:210 #: templates/js/table_filters.js:339 msgid "Salable" msgstr "" @@ -1643,7 +1644,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:188 part/models.py:846 part/templates/part/detail.html:190 +#: common/models.py:188 part/models.py:831 part/templates/part/detail.html:190 #: templates/js/table_filters.js:33 templates/js/table_filters.js:343 msgid "Trackable" msgstr "" @@ -1652,7 +1653,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:195 part/models.py:866 part/templates/part/detail.html:150 +#: common/models.py:195 part/models.py:851 part/templates/part/detail.html:150 #: templates/js/table_filters.js:29 msgid "Virtual" msgstr "" @@ -1669,160 +1670,185 @@ msgstr "" msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:209 templates/stats.html:25 -msgid "Debug Mode" +#: common/models.py:209 +msgid "Show Price in Forms" msgstr "" #: common/models.py:210 -msgid "Generate reports in debug mode (HTML output)" +msgid "Display part price in some forms" msgstr "" #: common/models.py:216 -msgid "Page Size" +msgid "Internal Prices" msgstr "" #: common/models.py:217 +msgid "Enable internal prices for parts" +msgstr "" + +#: common/models.py:223 +msgid "Internal Price as BOM-Price" +msgstr "" + +#: common/models.py:224 +msgid "Use the internal price (if set) in BOM-price calculations" +msgstr "" + +#: common/models.py:230 templates/stats.html:25 +msgid "Debug Mode" +msgstr "" + +#: common/models.py:231 +msgid "Generate reports in debug mode (HTML output)" +msgstr "" + +#: common/models.py:237 +msgid "Page Size" +msgstr "" + +#: common/models.py:238 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:227 +#: common/models.py:248 msgid "Test Reports" msgstr "" -#: common/models.py:228 +#: common/models.py:249 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:234 +#: common/models.py:255 msgid "Stock Expiry" msgstr "" -#: common/models.py:235 +#: common/models.py:256 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:241 +#: common/models.py:262 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:242 +#: common/models.py:263 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:248 +#: common/models.py:269 msgid "Stock Stale Time" msgstr "" -#: common/models.py:249 +#: common/models.py:270 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:251 part/templates/part/detail.html:121 +#: common/models.py:272 part/templates/part/detail.html:121 msgid "days" msgstr "días" -#: common/models.py:256 +#: common/models.py:277 msgid "Build Expired Stock" msgstr "" -#: common/models.py:257 +#: common/models.py:278 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:263 +#: common/models.py:284 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:264 +#: common/models.py:285 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:270 +#: common/models.py:291 msgid "Group by Part" msgstr "" -#: common/models.py:271 +#: common/models.py:292 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:277 +#: common/models.py:298 msgid "Recent Stock Count" msgstr "" -#: common/models.py:278 +#: common/models.py:299 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:284 +#: common/models.py:305 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:285 +#: common/models.py:306 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:290 +#: common/models.py:311 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:291 +#: common/models.py:312 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:295 +#: common/models.py:316 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:296 +#: common/models.py:317 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:301 +#: common/models.py:322 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:302 +#: common/models.py:323 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:525 +#: common/models.py:546 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:527 +#: common/models.py:548 msgid "Settings value" msgstr "" -#: common/models.py:562 +#: common/models.py:583 msgid "Must be an integer value" msgstr "" -#: common/models.py:585 +#: common/models.py:606 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:596 +#: common/models.py:617 msgid "Value must be an integer value" msgstr "" -#: common/models.py:619 +#: common/models.py:640 msgid "Key string must be unique" msgstr "" -#: common/models.py:700 company/forms.py:177 +#: common/models.py:721 company/forms.py:192 msgid "Price break quantity" msgstr "" -#: common/models.py:708 company/templates/company/supplier_part_pricing.html:82 +#: common/models.py:729 company/templates/company/supplier_part_pricing.html:82 +#: part/templates/part/internal_prices.html:103 #: part/templates/part/sale_prices.html:90 templates/js/bom.js:271 msgid "Price" msgstr "" -#: common/models.py:709 +#: common/models.py:730 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:798 +#: common/models.py:822 msgid "Default" msgstr "" @@ -1843,7 +1869,9 @@ msgid "Supplied value must be a boolean" msgstr "" #: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42 -#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27 +#: order/templates/order/po_navbar.html:19 +#: order/templates/order/po_navbar.html:22 order/views.py:582 +#: part/templates/part/bom_upload/upload_file.html:27 msgid "Upload File" msgstr "" @@ -1877,29 +1905,29 @@ msgstr "" msgid "Image URL" msgstr "" -#: company/forms.py:118 templates/js/part.js:786 +#: company/forms.py:133 templates/js/part.js:787 msgid "Single Price" msgstr "" -#: company/forms.py:120 +#: company/forms.py:135 msgid "Single quantity price" msgstr "" -#: company/forms.py:128 company/models.py:321 +#: company/forms.py:143 company/models.py:321 msgid "Select manufacturer" msgstr "" -#: company/forms.py:134 company/models.py:328 +#: company/forms.py:149 company/models.py:328 msgid "Manufacturer Part Number" msgstr "" -#: company/forms.py:136 company/models.py:327 +#: company/forms.py:151 company/models.py:327 #: company/templates/company/manufacturer_part_base.html:89 #: company/templates/company/manufacturer_part_detail.html:26 #: company/templates/company/supplier_part_base.html:102 #: company/templates/company/supplier_part_detail.html:35 #: order/templates/order/purchase_order_detail.html:162 part/bom.py:171 -#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307 +#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:408 msgid "MPN" msgstr "" @@ -1952,11 +1980,11 @@ msgstr "Contacto" msgid "Point of contact" msgstr "" -#: company/models.py:121 company/models.py:333 company/models.py:485 -#: order/models.py:105 part/models.py:743 +#: company/models.py:121 company/models.py:333 company/models.py:526 +#: order/models.py:106 part/models.py:728 #: report/templates/report/inventree_build_order_base.html:165 -#: templates/js/company.js:188 templates/js/company.js:318 -#: templates/js/part.js:497 +#: templates/js/company.js:188 templates/js/company.js:419 +#: templates/js/part.js:498 msgid "Link" msgstr "" @@ -1964,7 +1992,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:129 part/models.py:753 +#: company/models.py:129 part/models.py:738 msgid "Image" msgstr "" @@ -1992,12 +2020,12 @@ msgstr "" msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:305 company/models.py:456 stock/models.py:407 +#: company/models.py:305 company/models.py:497 stock/models.py:407 #: stock/templates/stock/item_base.html:235 msgid "Base Part" msgstr "" -#: company/models.py:309 company/models.py:460 order/views.py:1587 +#: company/models.py:309 company/models.py:501 order/views.py:1597 msgid "Select part" msgstr "" @@ -2008,7 +2036,7 @@ msgstr "" #: company/templates/company/supplier_part_detail.html:34 part/bom.py:170 #: part/bom.py:241 stock/templates/stock/item_base.html:352 #: templates/js/company.js:44 templates/js/company.js:165 -#: templates/js/company.js:289 +#: templates/js/company.js:390 msgid "Manufacturer" msgstr "Fabricante" @@ -2020,87 +2048,112 @@ msgstr "" msgid "Manufacturer part description" msgstr "" -#: company/models.py:466 company/templates/company/detail.html:62 +#: company/models.py:390 company/models.py:520 +#: company/templates/company/manufacturer_part_base.html:6 +#: company/templates/company/manufacturer_part_base.html:19 +#: stock/templates/stock/item_base.html:362 +msgid "Manufacturer Part" +msgstr "" + +#: company/models.py:397 +msgid "Parameter name" +msgstr "" + +#: company/models.py:403 part/templates/part/params.html:28 +#: report/templates/report/inventree_test_report_base.html:90 +#: stock/models.py:1756 templates/InvenTree/settings/header.html:8 +#: templates/js/company.js:241 templates/js/stock.js:137 +msgid "Value" +msgstr "" + +#: company/models.py:404 +msgid "Parameter value" +msgstr "" + +#: company/models.py:410 part/models.py:813 part/models.py:2165 +#: part/templates/part/detail.html:106 part/templates/part/params.html:29 +#: templates/js/company.js:247 +msgid "Units" +msgstr "" + +#: company/models.py:411 +msgid "Parameter units" +msgstr "" + +#: company/models.py:507 company/templates/company/detail.html:62 #: company/templates/company/supplier_part_base.html:84 -#: company/templates/company/supplier_part_detail.html:25 order/models.py:192 +#: company/templates/company/supplier_part_detail.html:25 order/models.py:193 #: order/templates/order/order_base.html:92 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175 -#: part/bom.py:286 stock/templates/stock/item_base.html:364 -#: templates/js/company.js:48 templates/js/company.js:263 +#: part/bom.py:286 stock/templates/stock/item_base.html:369 +#: templates/js/company.js:48 templates/js/company.js:364 #: templates/js/order.js:170 msgid "Supplier" msgstr "Proveedor" -#: company/models.py:467 +#: company/models.py:508 msgid "Select supplier" msgstr "" -#: company/models.py:472 company/templates/company/supplier_part_base.html:88 +#: company/models.py:513 company/templates/company/supplier_part_base.html:88 #: company/templates/company/supplier_part_detail.html:26 #: order/templates/order/purchase_order_detail.html:153 part/bom.py:176 #: part/bom.py:287 msgid "SKU" msgstr "" -#: company/models.py:473 +#: company/models.py:514 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:479 -#: company/templates/company/manufacturer_part_base.html:6 -#: company/templates/company/manufacturer_part_base.html:19 -#: stock/templates/stock/item_base.html:357 -msgid "Manufacturer Part" -msgstr "" - -#: company/models.py:480 +#: company/models.py:521 msgid "Select manufacturer part" msgstr "" -#: company/models.py:486 +#: company/models.py:527 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:492 +#: company/models.py:533 msgid "Supplier part description" msgstr "" -#: company/models.py:497 company/templates/company/supplier_part_base.html:116 -#: company/templates/company/supplier_part_detail.html:38 part/models.py:2282 +#: company/models.py:538 company/templates/company/supplier_part_base.html:116 +#: company/templates/company/supplier_part_detail.html:38 part/models.py:2305 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "Nota" -#: company/models.py:501 part/models.py:1614 +#: company/models.py:542 part/models.py:1606 msgid "base cost" msgstr "" -#: company/models.py:501 part/models.py:1614 +#: company/models.py:542 part/models.py:1606 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:503 company/templates/company/supplier_part_base.html:109 +#: company/models.py:544 company/templates/company/supplier_part_base.html:109 #: stock/models.py:431 stock/templates/stock/item_base.html:310 -#: templates/js/stock.js:670 +#: templates/js/stock.js:695 msgid "Packaging" msgstr "" -#: company/models.py:503 +#: company/models.py:544 msgid "Part packaging" msgstr "" -#: company/models.py:505 part/models.py:1616 +#: company/models.py:546 part/models.py:1608 msgid "multiple" msgstr "" -#: company/models.py:505 +#: company/models.py:546 msgid "Order multiple" msgstr "" #: company/templates/company/assigned_stock.html:10 #: company/templates/company/navbar.html:62 -#: company/templates/company/navbar.html:65 templates/js/build.js:477 +#: company/templates/company/navbar.html:65 templates/js/build.js:562 msgid "Assigned Stock" msgstr "" @@ -2165,11 +2218,11 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/detail.html:67 order/models.py:463 +#: company/templates/company/detail.html:67 order/models.py:464 #: order/templates/order/sales_order_base.html:94 stock/models.py:449 #: stock/models.py:450 stock/templates/stock/item_base.html:262 #: templates/js/company.js:40 templates/js/order.js:267 -#: templates/js/stock.js:1072 +#: templates/js/stock.js:1097 msgid "Customer" msgstr "Cliente" @@ -2215,7 +2268,7 @@ msgstr "" #: company/templates/company/detail_manufacturer_part.html:66 #: company/templates/company/detail_supplier_part.html:66 #: part/templates/part/bom.html:159 part/templates/part/category.html:118 -#: templates/js/stock.js:1287 +#: templates/js/stock.js:1312 msgid "New Part" msgstr "" @@ -2248,13 +2301,12 @@ msgstr "Exportar" #: company/templates/company/detail_supplier_part.html:11 #: company/templates/company/manufacturer_part_navbar.html:11 -#: company/templates/company/manufacturer_part_suppliers.html:10 #: templates/InvenTree/search.html:164 msgid "Supplier Parts" msgstr "" #: company/templates/company/detail_supplier_part.html:21 -#: order/templates/order/order_wizard/select_parts.html:42 +#: order/templates/order/order_wizard/select_parts.html:44 #: order/templates/order/purchase_order_detail.html:50 msgid "Create new supplier part" msgstr "" @@ -2262,12 +2314,12 @@ msgstr "" #: company/templates/company/detail_supplier_part.html:22 #: company/templates/company/manufacturer_part_suppliers.html:17 #: order/templates/order/purchase_order_detail.html:49 -#: part/templates/part/supplier.html:17 templates/js/stock.js:1293 +#: part/templates/part/supplier.html:17 templates/js/stock.js:1318 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail_supplier_part.html:72 -#: company/templates/company/manufacturer_part_suppliers.html:47 +#: company/templates/company/manufacturer_part_suppliers.html:82 #: company/views.py:64 order/templates/order/purchase_orders.html:185 #: part/templates/part/supplier.html:50 msgid "New Supplier" @@ -2319,8 +2371,9 @@ msgid "There are %(count)s suppliers defined for this manufacturer part. If you msgstr "" #: company/templates/company/manufacturer_part_navbar.html:14 -#: company/views.py:63 part/templates/part/navbar.html:84 -#: part/templates/part/navbar.html:87 templates/InvenTree/search.html:316 +#: company/templates/company/manufacturer_part_suppliers.html:10 +#: company/views.py:63 part/templates/part/navbar.html:86 +#: part/templates/part/navbar.html:89 templates/InvenTree/search.html:316 #: templates/navbar.html:35 msgid "Suppliers" msgstr "" @@ -2332,13 +2385,13 @@ msgstr "" #: company/templates/company/manufacturer_part_navbar.html:22 #: company/templates/company/navbar.html:41 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:36 stock/api.py:54 +#: part/templates/part/navbar.html:38 stock/api.py:54 #: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196 #: templates/InvenTree/search.html:232 #: templates/InvenTree/settings/tabs.html:31 templates/js/part.js:181 -#: templates/js/part.js:305 templates/js/part.js:464 templates/js/stock.js:561 +#: templates/js/part.js:305 templates/js/part.js:465 templates/js/stock.js:566 #: templates/navbar.html:26 msgid "Stock" msgstr "" @@ -2360,11 +2413,25 @@ msgstr "" #: company/templates/company/manufacturer_part_suppliers.html:22 #: part/templates/part/manufacturer.html:24 part/templates/part/params.html:44 #: part/templates/part/related.html:44 part/templates/part/supplier.html:22 -#: stock/views.py:1002 users/models.py:187 +#: stock/views.py:1002 users/models.py:191 msgid "Delete" msgstr "Eliminar" -#: company/templates/company/manufacturer_part_suppliers.html:48 +#: company/templates/company/manufacturer_part_suppliers.html:37 +#: part/templates/part/category_navbar.html:34 +#: part/templates/part/category_navbar.html:37 +#: part/templates/part/navbar.html:24 +msgid "Parameters" +msgstr "" + +#: company/templates/company/manufacturer_part_suppliers.html:43 +#: part/templates/part/params.html:18 +#: templates/InvenTree/settings/category.html:29 +#: templates/InvenTree/settings/part.html:48 +msgid "New Parameter" +msgstr "" + +#: company/templates/company/manufacturer_part_suppliers.html:83 #: part/templates/part/supplier.html:51 msgid "Create new supplier" msgstr "" @@ -2379,13 +2446,13 @@ msgstr "" msgid "Supplied Parts" msgstr "" -#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:33 +#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:35 #: stock/templates/stock/location.html:107 #: stock/templates/stock/location.html:122 #: stock/templates/stock/location.html:136 #: stock/templates/stock/location_navbar.html:22 #: stock/templates/stock/location_navbar.html:29 -#: templates/InvenTree/search.html:198 templates/js/stock.js:971 +#: templates/InvenTree/search.html:198 templates/js/stock.js:996 #: templates/stats.html:93 templates/stats.html:102 users/models.py:42 msgid "Stock Items" msgstr "" @@ -2396,7 +2463,7 @@ msgstr "" #: company/templates/company/sales_orders.html:11 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:13 -#: part/templates/part/navbar.html:104 part/templates/part/navbar.html:107 +#: part/templates/part/navbar.html:112 part/templates/part/navbar.html:115 #: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228 #: templates/InvenTree/search.html:345 #: templates/InvenTree/settings/tabs.html:40 templates/navbar.html:46 @@ -2408,7 +2475,7 @@ msgstr "" #: company/templates/company/purchase_orders.html:10 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:13 -#: part/templates/part/navbar.html:90 part/templates/part/navbar.html:93 +#: part/templates/part/navbar.html:92 part/templates/part/navbar.html:95 #: part/templates/part/orders.html:10 templates/InvenTree/index.html:205 #: templates/InvenTree/search.html:325 #: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:37 @@ -2442,7 +2509,7 @@ msgstr "" #: company/templates/company/supplier_part_base.html:7 #: company/templates/company/supplier_part_base.html:20 stock/models.py:416 -#: stock/templates/stock/item_base.html:369 templates/js/company.js:279 +#: stock/templates/stock/item_base.html:374 templates/js/company.js:380 msgid "Supplier Part" msgstr "" @@ -2490,8 +2557,8 @@ msgstr "" msgid "Pricing Information" msgstr "" -#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794 -#: part/templates/part/sale_prices.html:17 part/views.py:2733 +#: company/templates/company/supplier_part_pricing.html:19 company/views.py:855 +#: part/templates/part/sale_prices.html:17 part/views.py:2751 msgid "Add Price Break" msgstr "" @@ -2510,8 +2577,8 @@ msgstr "" msgid "Delete price break" msgstr "" -#: company/views.py:70 part/templates/part/navbar.html:78 -#: part/templates/part/navbar.html:81 templates/InvenTree/search.html:306 +#: company/views.py:70 part/templates/part/navbar.html:80 +#: part/templates/part/navbar.html:83 templates/InvenTree/search.html:306 #: templates/navbar.html:36 msgid "Manufacturers" msgstr "Fabricantes" @@ -2533,20 +2600,20 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:169 part/views.py:937 +#: company/views.py:169 part/views.py:948 msgid "Download Image" msgstr "" -#: company/views.py:198 part/views.py:969 +#: company/views.py:198 part/views.py:980 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:205 part/views.py:976 +#: company/views.py:205 part/views.py:987 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:214 part/views.py:985 +#: company/views.py:214 part/views.py:996 msgid "Supplied URL is not a valid image file" msgstr "" @@ -2594,27 +2661,35 @@ msgstr "" msgid "Delete Manufacturer Part" msgstr "" -#: company/views.py:528 +#: company/views.py:514 +msgid "Add Manufacturer Part Parameter" +msgstr "" + +#: company/views.py:548 +msgid "Edit Manufacturer Part Parameter" +msgstr "" + +#: company/views.py:588 msgid "Edit Supplier Part" msgstr "" -#: company/views.py:578 templates/js/stock.js:1294 +#: company/views.py:639 templates/js/stock.js:1319 msgid "Create new Supplier Part" msgstr "" -#: company/views.py:722 +#: company/views.py:783 msgid "Delete Supplier Part" msgstr "" -#: company/views.py:799 part/views.py:2737 +#: company/views.py:860 part/views.py:2755 msgid "Added new price break" msgstr "" -#: company/views.py:855 part/views.py:2781 +#: company/views.py:916 part/views.py:2799 msgid "Edit Price Break" msgstr "" -#: company/views.py:870 part/views.py:2795 +#: company/views.py:931 part/views.py:2813 msgid "Delete Price Break" msgstr "" @@ -2638,7 +2713,7 @@ msgstr "" msgid "Label template file" msgstr "" -#: label/models.py:124 report/models.py:274 +#: label/models.py:124 report/models.py:297 msgid "Enabled" msgstr "" @@ -2662,7 +2737,7 @@ msgstr "" msgid "Label height, specified in mm" msgstr "" -#: label/models.py:144 +#: label/models.py:144 report/models.py:290 msgid "Filename Pattern" msgstr "" @@ -2674,8 +2749,8 @@ msgstr "" msgid "Query filters (comma-separated list of key=value pairs" msgstr "" -#: label/models.py:245 label/models.py:298 report/models.py:294 -#: report/models.py:415 report/models.py:449 +#: label/models.py:245 label/models.py:298 report/models.py:317 +#: report/models.py:440 report/models.py:474 msgid "Filters" msgstr "" @@ -2696,237 +2771,239 @@ msgstr "" msgid "Ship order" msgstr "" -#: order/forms.py:82 +#: order/forms.py:86 msgid "Receive parts to this location" msgstr "" -#: order/forms.py:103 +#: order/forms.py:108 msgid "Purchase Order reference" msgstr "" -#: order/forms.py:110 +#: order/forms.py:115 msgid "Target date for order delivery. Order will be overdue after this date." msgstr "" -#: order/forms.py:138 +#: order/forms.py:143 msgid "Enter sales order number" msgstr "" -#: order/forms.py:145 order/models.py:475 +#: order/forms.py:150 order/models.py:476 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/forms.py:236 +#: order/forms.py:242 msgid "Enter stock item serial numbers" msgstr "" -#: order/forms.py:242 +#: order/forms.py:248 msgid "Enter quantity of stock items" msgstr "" -#: order/models.py:101 +#: order/models.py:102 msgid "Order reference" msgstr "" -#: order/models.py:103 +#: order/models.py:104 msgid "Order description" msgstr "" -#: order/models.py:105 +#: order/models.py:106 msgid "Link to external page" msgstr "" -#: order/models.py:113 part/templates/part/detail.html:132 +#: order/models.py:114 part/templates/part/detail.html:132 msgid "Created By" msgstr "" -#: order/models.py:120 +#: order/models.py:121 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:125 +#: order/models.py:126 msgid "Order notes" msgstr "" -#: order/models.py:184 order/models.py:468 +#: order/models.py:185 order/models.py:469 msgid "Purchase order status" msgstr "" -#: order/models.py:193 +#: order/models.py:194 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:196 order/templates/order/order_base.html:98 +#: order/models.py:197 order/templates/order/order_base.html:98 #: templates/js/order.js:179 msgid "Supplier Reference" msgstr "" -#: order/models.py:196 +#: order/models.py:197 msgid "Supplier order reference code" msgstr "" -#: order/models.py:203 +#: order/models.py:204 msgid "received by" msgstr "" -#: order/models.py:208 +#: order/models.py:209 msgid "Issue Date" msgstr "" -#: order/models.py:209 +#: order/models.py:210 msgid "Date order was issued" msgstr "" -#: order/models.py:214 +#: order/models.py:215 msgid "Target Delivery Date" msgstr "" -#: order/models.py:215 +#: order/models.py:216 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:221 +#: order/models.py:222 msgid "Date order was completed" msgstr "" -#: order/models.py:245 part/views.py:1675 stock/models.py:304 +#: order/models.py:246 part/views.py:1686 stock/models.py:304 #: stock/models.py:1020 msgid "Quantity must be greater than zero" msgstr "" -#: order/models.py:250 +#: order/models.py:251 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:348 +#: order/models.py:349 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:352 +#: order/models.py:353 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:354 +#: order/models.py:355 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:464 +#: order/models.py:465 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:470 +#: order/models.py:471 msgid "Customer Reference " msgstr "" -#: order/models.py:470 +#: order/models.py:471 msgid "Customer order reference code" msgstr "" -#: order/models.py:478 templates/js/order.js:303 +#: order/models.py:479 templates/js/order.js:303 msgid "Shipment Date" msgstr "" -#: order/models.py:485 +#: order/models.py:486 msgid "shipped by" msgstr "" -#: order/models.py:529 +#: order/models.py:530 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:616 +#: order/models.py:617 msgid "Item quantity" msgstr "" -#: order/models.py:618 +#: order/models.py:619 msgid "Line item reference" msgstr "" -#: order/models.py:620 +#: order/models.py:621 msgid "Line item notes" msgstr "" -#: order/models.py:646 order/models.py:691 -#: part/templates/part/allocation.html:17 -#: part/templates/part/allocation.html:45 +#: order/models.py:647 order/models.py:715 templates/js/order.js:353 msgid "Order" msgstr "" -#: order/models.py:647 order/templates/order/order_base.html:9 +#: order/models.py:648 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:324 templates/js/order.js:148 -#: templates/js/stock.js:1053 +#: templates/js/stock.js:669 templates/js/stock.js:1078 msgid "Purchase Order" msgstr "" -#: order/models.py:661 +#: order/models.py:662 msgid "Supplier part" msgstr "" -#: order/models.py:664 order/templates/order/order_base.html:131 +#: order/models.py:665 order/templates/order/order_base.html:131 #: order/templates/order/purchase_order_detail.html:219 #: order/templates/order/receive_parts.html:22 #: order/templates/order/sales_order_base.html:133 msgid "Received" msgstr "" -#: order/models.py:664 +#: order/models.py:665 msgid "Number of items received" msgstr "" -#: order/models.py:671 stock/models.py:542 -#: stock/templates/stock/item_base.html:331 templates/js/stock.js:665 +#: order/models.py:672 stock/models.py:542 +#: stock/templates/stock/item_base.html:331 templates/js/stock.js:690 msgid "Purchase Price" msgstr "" -#: order/models.py:672 +#: order/models.py:673 msgid "Unit purchase price" msgstr "" -#: order/models.py:700 part/templates/part/navbar.html:101 -#: part/templates/part/order_prices.html:82 -#: part/templates/part/part_pricing.html:78 +#: order/models.py:681 +msgid "Where does the Purchaser want this item to be stored?" +msgstr "" + +#: order/models.py:724 part/templates/part/navbar.html:109 +#: part/templates/part/order_prices.html:107 +#: part/templates/part/part_pricing.html:97 msgid "Sale Price" msgstr "" -#: order/models.py:701 +#: order/models.py:725 msgid "Unit sale price" msgstr "" -#: order/models.py:776 order/models.py:778 +#: order/models.py:800 order/models.py:802 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:782 +#: order/models.py:806 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:784 +#: order/models.py:808 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:787 +#: order/models.py:811 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:797 +#: order/models.py:821 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:802 +#: order/models.py:826 msgid "Line" msgstr "" -#: order/models.py:813 +#: order/models.py:837 msgid "Item" msgstr "" -#: order/models.py:814 +#: order/models.py:838 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:817 +#: order/models.py:841 msgid "Enter stock allocation quantity" msgstr "" @@ -2955,7 +3032,7 @@ msgid "Export order to file" msgstr "" #: order/templates/order/order_base.html:72 -#: order/templates/order/po_navbar.html:11 +#: order/templates/order/po_navbar.html:12 msgid "Purchase Order Details" msgstr "" @@ -2977,8 +3054,8 @@ msgstr "" #: order/templates/order/order_base.html:180 #: order/templates/order/purchase_order_detail.html:100 #: part/templates/part/category.html:208 part/templates/part/category.html:250 -#: stock/templates/stock/location.html:191 templates/js/stock.js:711 -#: templates/js/stock.js:1299 +#: stock/templates/stock/location.html:191 templates/js/stock.js:736 +#: templates/js/stock.js:1324 msgid "New Location" msgstr "" @@ -3081,28 +3158,32 @@ msgstr "" msgid "Order is already processed. Files cannot be uploaded." msgstr "" -#: order/templates/order/order_wizard/select_parts.html:9 +#: order/templates/order/order_wizard/select_parts.html:11 msgid "Step 1 of 2 - Select Part Suppliers" msgstr "" -#: order/templates/order/order_wizard/select_parts.html:14 +#: order/templates/order/order_wizard/select_parts.html:16 msgid "Select suppliers" msgstr "" -#: order/templates/order/order_wizard/select_parts.html:18 +#: order/templates/order/order_wizard/select_parts.html:20 msgid "No purchaseable parts selected" msgstr "" -#: order/templates/order/order_wizard/select_parts.html:31 +#: order/templates/order/order_wizard/select_parts.html:33 msgid "Select Supplier" msgstr "" #: order/templates/order/order_wizard/select_parts.html:57 +msgid "No price" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:65 #, python-format msgid "Select a supplier for %(name)s" msgstr "" -#: order/templates/order/order_wizard/select_parts.html:69 +#: order/templates/order/order_wizard/select_parts.html:77 #: part/templates/part/set_category.html:32 msgid "Remove part" msgstr "" @@ -3135,15 +3216,20 @@ msgid "Select a purchase order for %(name)s" msgstr "" #: order/templates/order/po_attachments.html:12 -#: order/templates/order/po_navbar.html:23 +#: order/templates/order/po_navbar.html:32 msgid "Purchase Order Attachments" msgstr "" -#: order/templates/order/po_navbar.html:17 +#: order/templates/order/po_lineitem_delete.html:5 +#: order/templates/order/so_lineitem_delete.html:5 +msgid "Are you sure you wish to delete this line item?" +msgstr "" + +#: order/templates/order/po_navbar.html:26 msgid "Received Stock Items" msgstr "" -#: order/templates/order/po_navbar.html:20 +#: order/templates/order/po_navbar.html:29 #: order/templates/order/po_received_items.html:12 msgid "Received Items" msgstr "" @@ -3153,8 +3239,8 @@ msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:24 -#: order/templates/order/sales_order_detail.html:22 order/views.py:1311 -#: order/views.py:1394 +#: order/templates/order/sales_order_detail.html:22 order/views.py:1321 +#: order/views.py:1404 msgid "Add Line Item" msgstr "" @@ -3162,25 +3248,31 @@ msgstr "" msgid "No line items found" msgstr "" +#: order/templates/order/purchase_order_detail.html:142 +#: order/templates/order/sales_order_detail.html:223 +msgid "Total" +msgstr "" + #: order/templates/order/purchase_order_detail.html:191 -#: order/templates/order/sales_order_detail.html:235 +#: order/templates/order/sales_order_detail.html:246 msgid "Unit Price" msgstr "" #: order/templates/order/purchase_order_detail.html:198 +#: order/templates/order/sales_order_detail.html:253 msgid "Total price" msgstr "" -#: order/templates/order/purchase_order_detail.html:251 -#: order/templates/order/sales_order_detail.html:328 +#: order/templates/order/purchase_order_detail.html:255 +#: order/templates/order/sales_order_detail.html:359 msgid "Edit line item" msgstr "" -#: order/templates/order/purchase_order_detail.html:252 +#: order/templates/order/purchase_order_detail.html:256 msgid "Delete line item" msgstr "" -#: order/templates/order/purchase_order_detail.html:257 +#: order/templates/order/purchase_order_detail.html:261 msgid "Receive line item" msgstr "" @@ -3201,7 +3293,7 @@ msgstr "" #: part/templates/part/category_navbar.html:29 #: part/templates/part/category_partlist.html:10 #: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114 -#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:665 +#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:666 #: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89 #: users/models.py:40 msgid "Parts" @@ -3216,7 +3308,7 @@ msgid "Order Code" msgstr "" #: order/templates/order/receive_parts.html:21 -#: part/templates/part/part_base.html:136 templates/js/part.js:480 +#: part/templates/part/part_base.html:136 templates/js/part.js:481 msgid "On Order" msgstr "" @@ -3224,11 +3316,11 @@ msgstr "" msgid "Receive" msgstr "" -#: order/templates/order/receive_parts.html:36 +#: order/templates/order/receive_parts.html:37 msgid "Error: Referenced part has been removed" msgstr "" -#: order/templates/order/receive_parts.html:57 +#: order/templates/order/receive_parts.html:61 msgid "Remove line" msgstr "" @@ -3265,17 +3357,17 @@ msgid "Sales Order Items" msgstr "" #: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:365 -#: templates/js/build.js:637 templates/js/build.js:1054 +#: templates/js/build.js:724 templates/js/build.js:1141 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:525 -#: templates/js/build.js:859 +#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:610 +#: templates/js/build.js:946 msgid "Edit stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:527 -#: templates/js/build.js:860 +#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:612 +#: templates/js/build.js:947 msgid "Delete stock allocation" msgstr "" @@ -3283,50 +3375,50 @@ msgstr "" msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:205 +#: order/templates/order/sales_order_detail.html:206 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:589 -#: templates/js/build.js:855 +#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:675 +#: templates/js/build.js:942 msgid "Allocated" msgstr "" -#: order/templates/order/sales_order_detail.html:245 +#: order/templates/order/sales_order_detail.html:276 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:282 +#: order/templates/order/sales_order_detail.html:313 msgid "PO" msgstr "" -#: order/templates/order/sales_order_detail.html:312 +#: order/templates/order/sales_order_detail.html:343 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:651 +#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:738 msgid "Allocate stock" msgstr "" -#: order/templates/order/sales_order_detail.html:318 +#: order/templates/order/sales_order_detail.html:349 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:644 -#: templates/js/build.js:1062 +#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:731 +#: templates/js/build.js:1149 msgid "Build stock" msgstr "" -#: order/templates/order/sales_order_detail.html:325 -#: order/templates/order/sales_order_detail.html:434 +#: order/templates/order/sales_order_detail.html:356 +#: order/templates/order/sales_order_detail.html:465 msgid "Calculate price" msgstr "" -#: order/templates/order/sales_order_detail.html:329 +#: order/templates/order/sales_order_detail.html:360 msgid "Delete line item " msgstr "" -#: order/templates/order/sales_order_detail.html:440 +#: order/templates/order/sales_order_detail.html:471 msgid "Update Unit Price" msgstr "" @@ -3367,10 +3459,6 @@ msgstr "" msgid "Sales Order Attachments" msgstr "" -#: order/templates/order/so_lineitem_delete.html:5 -msgid "Are you sure you wish to delete this line item?" -msgstr "" - #: order/views.py:104 msgid "Add Purchase Order Attachment" msgstr "" @@ -3471,90 +3559,94 @@ msgstr "" msgid "No lines specified" msgstr "" -#: order/views.py:1260 +#: order/views.py:1012 +msgid "Update prices" +msgstr "" + +#: order/views.py:1270 #, python-brace-format msgid "Ordered {n} parts" msgstr "" -#: order/views.py:1320 +#: order/views.py:1330 msgid "Supplier part must be specified" msgstr "" -#: order/views.py:1326 +#: order/views.py:1336 msgid "Supplier must match for Part and Order" msgstr "" -#: order/views.py:1457 order/views.py:1475 +#: order/views.py:1467 order/views.py:1485 msgid "Edit Line Item" msgstr "" -#: order/views.py:1491 order/views.py:1503 +#: order/views.py:1501 order/views.py:1513 msgid "Delete Line Item" msgstr "" -#: order/views.py:1496 order/views.py:1508 +#: order/views.py:1506 order/views.py:1518 msgid "Deleted line item" msgstr "" -#: order/views.py:1521 +#: order/views.py:1531 msgid "Allocate Serial Numbers" msgstr "" -#: order/views.py:1566 +#: order/views.py:1576 #, python-brace-format msgid "Allocated {n} items" msgstr "" -#: order/views.py:1582 +#: order/views.py:1592 msgid "Select line item" msgstr "" -#: order/views.py:1613 -#, python-brace-format -msgid "No matching item for serial {serial}" -msgstr "" - #: order/views.py:1623 #, python-brace-format +msgid "No matching item for serial {serial}" +msgstr "" + +#: order/views.py:1633 +#, python-brace-format msgid "{serial} is not in stock" msgstr "" -#: order/views.py:1631 +#: order/views.py:1641 #, python-brace-format msgid "{serial} already allocated to an order" msgstr "" -#: order/views.py:1685 +#: order/views.py:1695 msgid "Allocate Stock to Order" msgstr "" -#: order/views.py:1759 +#: order/views.py:1769 msgid "Edit Allocation Quantity" msgstr "" -#: order/views.py:1774 +#: order/views.py:1784 msgid "Remove allocation" msgstr "" -#: order/views.py:1846 +#: order/views.py:1856 msgid "Sales order not found" msgstr "" -#: order/views.py:1852 +#: order/views.py:1862 msgid "Price not found" msgstr "" -#: order/views.py:1855 +#: order/views.py:1865 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:1860 +#: order/views.py:1870 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/bom.py:138 part/models.py:72 part/models.py:762 +#: part/bom.py:138 part/models.py:72 part/models.py:747 #: part/templates/part/category.html:66 part/templates/part/detail.html:90 msgid "Default Location" msgstr "" @@ -3632,7 +3724,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:122 part/models.py:2168 +#: part/forms.py:122 part/models.py:2191 msgid "Parent Part" msgstr "" @@ -3708,7 +3800,7 @@ msgstr "" msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:344 part/models.py:2263 +#: part/forms.py:344 part/models.py:2286 msgid "Sub part" msgstr "" @@ -3728,7 +3820,7 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:82 part/models.py:2214 +#: part/models.py:82 part/models.py:2237 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -3739,365 +3831,360 @@ msgstr "" msgid "Part Categories" msgstr "" -#: part/models.py:446 part/models.py:458 +#: part/models.py:448 part/models.py:460 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:555 +#: part/models.py:557 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:559 +#: part/models.py:561 msgid "Next available serial number is" msgstr "" -#: part/models.py:564 +#: part/models.py:566 msgid "Most recent serial number is" msgstr "" -#: part/models.py:643 +#: part/models.py:645 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:654 -msgid "Part must be unique for name, IPN and revision" -msgstr "" - -#: part/models.py:685 part/templates/part/detail.html:22 +#: part/models.py:670 part/templates/part/detail.html:22 msgid "Part name" msgstr "" -#: part/models.py:692 +#: part/models.py:677 msgid "Is Template" msgstr "" -#: part/models.py:693 +#: part/models.py:678 msgid "Is this part a template part?" msgstr "" -#: part/models.py:704 +#: part/models.py:689 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:705 part/templates/part/detail.html:60 +#: part/models.py:690 part/templates/part/detail.html:60 msgid "Variant Of" msgstr "" -#: part/models.py:711 +#: part/models.py:696 msgid "Part description" msgstr "" -#: part/models.py:716 part/templates/part/category.html:73 +#: part/models.py:701 part/templates/part/category.html:73 #: part/templates/part/detail.html:67 msgid "Keywords" msgstr "" -#: part/models.py:717 +#: part/models.py:702 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:724 part/models.py:2213 part/templates/part/detail.html:73 -#: part/templates/part/set_category.html:15 templates/js/part.js:451 +#: part/models.py:709 part/models.py:2236 part/templates/part/detail.html:73 +#: part/templates/part/set_category.html:15 templates/js/part.js:452 msgid "Category" msgstr "" -#: part/models.py:725 +#: part/models.py:710 msgid "Part category" msgstr "" -#: part/models.py:730 part/templates/part/detail.html:28 +#: part/models.py:715 part/templates/part/detail.html:28 #: part/templates/part/part_base.html:87 templates/js/part.js:169 #: templates/js/part.js:296 msgid "IPN" msgstr "" -#: part/models.py:731 +#: part/models.py:716 msgid "Internal Part Number" msgstr "" -#: part/models.py:737 +#: part/models.py:722 msgid "Part revision or version number" msgstr "" -#: part/models.py:738 part/templates/part/detail.html:35 report/models.py:198 +#: part/models.py:723 part/templates/part/detail.html:35 report/models.py:199 #: templates/js/part.js:173 msgid "Revision" msgstr "" -#: part/models.py:760 +#: part/models.py:745 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:807 part/templates/part/detail.html:97 +#: part/models.py:792 part/templates/part/detail.html:97 msgid "Default Supplier" msgstr "" -#: part/models.py:808 +#: part/models.py:793 msgid "Default supplier part" msgstr "" -#: part/models.py:815 +#: part/models.py:800 msgid "Default Expiry" msgstr "" -#: part/models.py:816 +#: part/models.py:801 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:821 part/templates/part/detail.html:113 +#: part/models.py:806 part/templates/part/detail.html:113 msgid "Minimum Stock" msgstr "" -#: part/models.py:822 +#: part/models.py:807 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:828 part/models.py:2142 part/templates/part/detail.html:106 -#: part/templates/part/params.html:29 -msgid "Units" -msgstr "" - -#: part/models.py:829 +#: part/models.py:814 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:835 +#: part/models.py:820 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:841 +#: part/models.py:826 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:847 +#: part/models.py:832 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:852 +#: part/models.py:837 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:857 +#: part/models.py:842 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:861 part/templates/part/detail.html:227 +#: part/models.py:846 part/templates/part/detail.html:227 #: templates/js/table_filters.js:21 templates/js/table_filters.js:65 #: templates/js/table_filters.js:241 templates/js/table_filters.js:310 msgid "Active" msgstr "" -#: part/models.py:862 +#: part/models.py:847 msgid "Is this part active?" msgstr "" -#: part/models.py:867 +#: part/models.py:852 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:872 +#: part/models.py:857 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:875 +#: part/models.py:860 msgid "BOM checksum" msgstr "" -#: part/models.py:875 +#: part/models.py:860 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:878 +#: part/models.py:863 msgid "BOM checked by" msgstr "" -#: part/models.py:880 +#: part/models.py:865 msgid "BOM checked date" msgstr "" -#: part/models.py:884 +#: part/models.py:869 msgid "Creation User" msgstr "" -#: part/models.py:1616 +#: part/models.py:1608 msgid "Sell multiple" msgstr "" -#: part/models.py:2040 +#: part/models.py:2063 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2057 +#: part/models.py:2080 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2077 templates/js/part.js:716 templates/js/stock.js:117 +#: part/models.py:2100 templates/js/part.js:717 templates/js/stock.js:117 msgid "Test Name" msgstr "" -#: part/models.py:2078 +#: part/models.py:2101 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2083 +#: part/models.py:2106 msgid "Test Description" msgstr "" -#: part/models.py:2084 +#: part/models.py:2107 msgid "Enter description for this test" msgstr "" -#: part/models.py:2089 templates/js/part.js:725 +#: part/models.py:2112 templates/js/part.js:726 #: templates/js/table_filters.js:227 msgid "Required" msgstr "" -#: part/models.py:2090 +#: part/models.py:2113 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2095 templates/js/part.js:733 +#: part/models.py:2118 templates/js/part.js:734 msgid "Requires Value" msgstr "" -#: part/models.py:2096 +#: part/models.py:2119 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2101 templates/js/part.js:740 +#: part/models.py:2124 templates/js/part.js:741 msgid "Requires Attachment" msgstr "" -#: part/models.py:2102 +#: part/models.py:2125 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2135 +#: part/models.py:2158 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2140 +#: part/models.py:2163 msgid "Parameter Name" msgstr "" -#: part/models.py:2142 +#: part/models.py:2165 msgid "Parameter Units" msgstr "" -#: part/models.py:2170 part/models.py:2219 part/models.py:2220 +#: part/models.py:2193 part/models.py:2242 part/models.py:2243 #: templates/InvenTree/settings/category.html:62 msgid "Parameter Template" msgstr "" -#: part/models.py:2172 +#: part/models.py:2195 msgid "Data" msgstr "" -#: part/models.py:2172 +#: part/models.py:2195 msgid "Parameter Value" msgstr "" -#: part/models.py:2224 templates/InvenTree/settings/category.html:67 +#: part/models.py:2247 templates/InvenTree/settings/category.html:67 msgid "Default Value" msgstr "" -#: part/models.py:2225 +#: part/models.py:2248 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2255 +#: part/models.py:2278 msgid "Select parent part" msgstr "" -#: part/models.py:2264 +#: part/models.py:2287 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2270 +#: part/models.py:2293 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2272 templates/js/bom.js:216 templates/js/bom.js:285 +#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:285 msgid "Optional" msgstr "" -#: part/models.py:2272 +#: part/models.py:2295 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2275 +#: part/models.py:2298 msgid "Overage" msgstr "" -#: part/models.py:2276 +#: part/models.py:2299 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2279 +#: part/models.py:2302 msgid "BOM item reference" msgstr "" -#: part/models.py:2282 +#: part/models.py:2305 msgid "BOM item notes" msgstr "" -#: part/models.py:2284 +#: part/models.py:2307 msgid "Checksum" msgstr "" -#: part/models.py:2284 +#: part/models.py:2307 msgid "BOM line checksum" msgstr "" -#: part/models.py:2288 templates/js/bom.js:302 templates/js/bom.js:309 +#: part/models.py:2311 templates/js/bom.js:302 templates/js/bom.js:309 #: templates/js/table_filters.js:51 msgid "Inherited" msgstr "" -#: part/models.py:2289 +#: part/models.py:2312 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2294 templates/js/bom.js:294 +#: part/models.py:2317 templates/js/bom.js:294 msgid "Allow Variants" msgstr "" -#: part/models.py:2295 +#: part/models.py:2318 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2371 part/views.py:1681 part/views.py:1733 +#: part/models.py:2394 part/views.py:1692 part/views.py:1744 #: stock/models.py:294 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2380 part/models.py:2382 +#: part/models.py:2403 part/models.py:2405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2385 +#: part/models.py:2408 msgid "BOM Item" msgstr "" -#: part/models.py:2502 +#: part/models.py:2527 msgid "Part 1" msgstr "" -#: part/models.py:2506 +#: part/models.py:2531 msgid "Part 2" msgstr "" -#: part/models.py:2506 +#: part/models.py:2531 msgid "Select Related Part" msgstr "" -#: part/models.py:2538 +#: part/models.py:2563 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" #: part/templates/part/allocation.html:11 -msgid "Part Stock Allocations" +msgid "Build Order Allocations" +msgstr "" + +#: part/templates/part/allocation.html:24 +msgid "Sales Order Allocations" msgstr "" #: part/templates/part/attachments.html:10 @@ -4112,8 +4199,8 @@ msgstr "" msgid "Deleting this entry will remove the BOM row from the following part" msgstr "" -#: part/templates/part/bom.html:10 part/templates/part/navbar.html:48 -#: part/templates/part/navbar.html:51 +#: part/templates/part/bom.html:10 part/templates/part/navbar.html:50 +#: part/templates/part/navbar.html:53 msgid "Bill of Materials" msgstr "" @@ -4160,7 +4247,7 @@ msgstr "" msgid "Validate Bill of Materials" msgstr "" -#: part/templates/part/bom.html:61 part/views.py:1976 +#: part/templates/part/bom.html:61 part/views.py:1987 msgid "Export Bill of Materials" msgstr "" @@ -4177,7 +4264,7 @@ msgid "All selected BOM items will be deleted" msgstr "" #: part/templates/part/bom.html:160 part/views.py:585 -#: templates/js/stock.js:1288 +#: templates/js/stock.js:1313 msgid "Create New Part" msgstr "" @@ -4258,7 +4345,7 @@ msgstr "" msgid "All parts" msgstr "" -#: part/templates/part/category.html:29 part/views.py:2379 +#: part/templates/part/category.html:29 part/views.py:2397 msgid "Create new part category" msgstr "" @@ -4318,7 +4405,7 @@ msgid "View grid display" msgstr "" #: part/templates/part/category.html:209 -#: stock/templates/stock/location.html:192 templates/js/stock.js:712 +#: stock/templates/stock/location.html:192 templates/js/stock.js:737 msgid "Create new location" msgstr "" @@ -4373,14 +4460,8 @@ msgstr "" msgid "If this category is deleted, these parts will be moved to the top-level category Teile" msgstr "" -#: part/templates/part/category_navbar.html:34 -#: part/templates/part/category_navbar.html:37 -#: part/templates/part/navbar.html:22 -msgid "Parameters" -msgstr "" - #: part/templates/part/category_parametric.html:10 -#: part/templates/part/navbar.html:19 part/templates/part/params.html:10 +#: part/templates/part/navbar.html:21 part/templates/part/params.html:10 msgid "Part Parameters" msgstr "" @@ -4408,7 +4489,7 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:11 part/templates/part/navbar.html:11 +#: part/templates/part/detail.html:11 part/templates/part/navbar.html:13 msgid "Part Details" msgstr "" @@ -4488,6 +4569,36 @@ msgstr "" msgid "Part is not active" msgstr "" +#: part/templates/part/internal_prices.html:11 +#: part/templates/part/navbar.html:100 +msgid "Internal Price Information" +msgstr "" + +#: part/templates/part/internal_prices.html:19 part/views.py:2822 +msgid "Add Internal Price Break" +msgstr "" + +#: part/templates/part/internal_prices.html:28 templates/403.html:5 +#: templates/403.html:11 +msgid "Permission Denied" +msgstr "" + +#: part/templates/part/internal_prices.html:31 templates/403.html:14 +msgid "You do not have permission to view this page." +msgstr "" + +#: part/templates/part/internal_prices.html:59 +msgid "No internal price break information found" +msgstr "" + +#: part/templates/part/internal_prices.html:110 +msgid "Edit internal price break" +msgstr "" + +#: part/templates/part/internal_prices.html:111 +msgid "Delete internal price break" +msgstr "" + #: part/templates/part/manufacturer.html:11 msgid "Part Manufacturers" msgstr "" @@ -4501,127 +4612,141 @@ msgstr "" msgid "Create new manufacturer" msgstr "" -#: part/templates/part/navbar.html:26 part/templates/part/variants.html:11 +#: part/templates/part/navbar.html:28 part/templates/part/variants.html:11 msgid "Part Variants" msgstr "" -#: part/templates/part/navbar.html:29 +#: part/templates/part/navbar.html:31 msgid "Variants" msgstr "" -#: part/templates/part/navbar.html:40 +#: part/templates/part/navbar.html:42 msgid "Allocated Stock" msgstr "" -#: part/templates/part/navbar.html:43 +#: part/templates/part/navbar.html:45 msgid "Allocations" msgstr "" -#: part/templates/part/navbar.html:64 part/templates/part/navbar.html:67 +#: part/templates/part/navbar.html:66 part/templates/part/navbar.html:69 msgid "Used In" msgstr "" -#: part/templates/part/navbar.html:72 part/templates/part/order_prices.html:12 +#: part/templates/part/navbar.html:74 part/templates/part/order_prices.html:12 msgid "Order Price Information" msgstr "" -#: part/templates/part/navbar.html:75 +#: part/templates/part/navbar.html:77 msgid "Order Price" msgstr "" -#: part/templates/part/navbar.html:98 +#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:93 +#: part/templates/part/part_pricing.html:82 +msgid "Internal Price" +msgstr "" + +#: part/templates/part/navbar.html:106 msgid "Sales Price Information" msgstr "" -#: part/templates/part/navbar.html:112 part/templates/part/part_tests.html:10 +#: part/templates/part/navbar.html:120 part/templates/part/part_tests.html:10 msgid "Part Test Templates" msgstr "" -#: part/templates/part/navbar.html:115 stock/templates/stock/item_base.html:409 +#: part/templates/part/navbar.html:123 stock/templates/stock/item_base.html:414 msgid "Tests" msgstr "" -#: part/templates/part/navbar.html:119 part/templates/part/navbar.html:122 +#: part/templates/part/navbar.html:127 part/templates/part/navbar.html:130 #: part/templates/part/related.html:10 msgid "Related Parts" msgstr "" -#: part/templates/part/navbar.html:131 part/templates/part/notes.html:12 +#: part/templates/part/navbar.html:139 part/templates/part/notes.html:12 msgid "Part Notes" msgstr "" -#: part/templates/part/order_prices.html:21 +#: part/templates/part/order_prices.html:24 +#: part/templates/part/part_base.html:282 +msgid "Calculate" +msgstr "" + +#: part/templates/part/order_prices.html:31 msgid "Pricing ranges" msgstr "" -#: part/templates/part/order_prices.html:26 -#: part/templates/part/part_pricing.html:19 +#: part/templates/part/order_prices.html:36 +#: part/templates/part/part_pricing.html:22 msgid "Supplier Pricing" msgstr "" -#: part/templates/part/order_prices.html:27 -#: part/templates/part/order_prices.html:52 -#: part/templates/part/order_prices.html:83 -#: part/templates/part/part_pricing.html:23 -#: part/templates/part/part_pricing.html:49 -#: part/templates/part/part_pricing.html:81 +#: part/templates/part/order_prices.html:37 +#: part/templates/part/order_prices.html:62 +#: part/templates/part/order_prices.html:94 +#: part/templates/part/order_prices.html:108 +#: part/templates/part/part_pricing.html:26 +#: part/templates/part/part_pricing.html:52 +#: part/templates/part/part_pricing.html:85 +#: part/templates/part/part_pricing.html:100 msgid "Unit Cost" msgstr "" -#: part/templates/part/order_prices.html:34 -#: part/templates/part/order_prices.html:59 -#: part/templates/part/order_prices.html:88 -#: part/templates/part/part_pricing.html:29 -#: part/templates/part/part_pricing.html:55 -#: part/templates/part/part_pricing.html:85 +#: part/templates/part/order_prices.html:44 +#: part/templates/part/order_prices.html:69 +#: part/templates/part/order_prices.html:99 +#: part/templates/part/order_prices.html:113 +#: part/templates/part/part_pricing.html:32 +#: part/templates/part/part_pricing.html:58 +#: part/templates/part/part_pricing.html:89 +#: part/templates/part/part_pricing.html:104 msgid "Total Cost" msgstr "" -#: part/templates/part/order_prices.html:42 -#: part/templates/part/part_pricing.html:37 +#: part/templates/part/order_prices.html:52 +#: part/templates/part/part_pricing.html:40 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/order_prices.html:51 -#: part/templates/part/order_prices.html:103 -#: part/templates/part/part_pricing.html:45 +#: part/templates/part/order_prices.html:61 +#: part/templates/part/order_prices.html:128 +#: part/templates/part/part_pricing.html:48 msgid "BOM Pricing" msgstr "" -#: part/templates/part/order_prices.html:67 -#: part/templates/part/part_pricing.html:63 +#: part/templates/part/order_prices.html:77 +#: part/templates/part/part_pricing.html:66 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/order_prices.html:74 -#: part/templates/part/part_pricing.html:70 +#: part/templates/part/order_prices.html:84 +#: part/templates/part/part_pricing.html:73 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/order_prices.html:97 -#: part/templates/part/part_pricing.html:94 +#: part/templates/part/order_prices.html:122 +#: part/templates/part/part_pricing.html:113 msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/order_prices.html:113 +#: part/templates/part/order_prices.html:138 msgid "Stock Pricing" msgstr "" -#: part/templates/part/order_prices.html:121 +#: part/templates/part/order_prices.html:146 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/order_prices.html:140 +#: part/templates/part/order_prices.html:165 #, python-format msgid "Single Price - %(currency)s" msgstr "" -#: part/templates/part/order_prices.html:152 +#: part/templates/part/order_prices.html:177 #, python-format msgid "Single Price Difference - %(currency)s" msgstr "" -#: part/templates/part/order_prices.html:163 +#: part/templates/part/order_prices.html:189 #, python-format msgid "Part Single Price - %(currency)s" msgstr "" @@ -4630,19 +4755,6 @@ msgstr "" msgid "Add new parameter" msgstr "" -#: part/templates/part/params.html:18 -#: templates/InvenTree/settings/category.html:29 -#: templates/InvenTree/settings/part.html:44 -msgid "New Parameter" -msgstr "" - -#: part/templates/part/params.html:28 -#: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1756 templates/InvenTree/settings/header.html:8 -#: templates/js/stock.js:137 -msgid "Value" -msgstr "" - #: part/templates/part/params.html:41 templates/InvenTree/settings/user.html:19 msgid "Edit" msgstr "" @@ -4660,7 +4772,7 @@ msgid "Part List" msgstr "" #: part/templates/part/part_base.html:26 templates/js/company.js:156 -#: templates/js/company.js:254 templates/js/part.js:84 templates/js/part.js:161 +#: templates/js/company.js:355 templates/js/part.js:84 templates/js/part.js:161 msgid "Inactive" msgstr "" @@ -4740,14 +4852,10 @@ msgid "Can Build" msgstr "" #: part/templates/part/part_base.html:178 templates/js/part.js:312 -#: templates/js/part.js:484 +#: templates/js/part.js:485 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:265 -msgid "Calculate" -msgstr "" - #: part/templates/part/part_tests.html:17 msgid "Add Test Template" msgstr "" @@ -4816,7 +4924,7 @@ msgid "Showing stock for all variants of %(full_name)s" msgstr "" #: part/templates/part/stock_count.html:7 templates/js/bom.js:239 -#: templates/js/part.js:302 templates/js/part.js:488 +#: templates/js/part.js:302 templates/js/part.js:489 msgid "No Stock" msgstr "" @@ -4853,7 +4961,7 @@ msgstr "" msgid "New Variant" msgstr "" -#: part/templatetags/inventree_extras.py:98 +#: part/templatetags/inventree_extras.py:99 msgid "Unknown database" msgstr "" @@ -4922,227 +5030,239 @@ msgstr "" msgid "Created new part" msgstr "" -#: part/views.py:914 +#: part/views.py:925 msgid "Part QR Code" msgstr "" -#: part/views.py:1016 +#: part/views.py:1027 msgid "Upload Part Image" msgstr "" -#: part/views.py:1022 part/views.py:1057 +#: part/views.py:1033 part/views.py:1068 msgid "Updated part image" msgstr "" -#: part/views.py:1031 +#: part/views.py:1042 msgid "Select Part Image" msgstr "" -#: part/views.py:1060 +#: part/views.py:1071 msgid "Part image not found" msgstr "" -#: part/views.py:1071 +#: part/views.py:1082 msgid "Edit Part Properties" msgstr "" -#: part/views.py:1106 +#: part/views.py:1117 msgid "Duplicate BOM" msgstr "" -#: part/views.py:1136 +#: part/views.py:1147 msgid "Confirm duplication of BOM from parent" msgstr "" -#: part/views.py:1157 +#: part/views.py:1168 msgid "Validate BOM" msgstr "" -#: part/views.py:1178 +#: part/views.py:1189 msgid "Confirm that the BOM is valid" msgstr "" -#: part/views.py:1189 +#: part/views.py:1200 msgid "Validated Bill of Materials" msgstr "" -#: part/views.py:1323 +#: part/views.py:1334 msgid "No BOM file provided" msgstr "" -#: part/views.py:1684 +#: part/views.py:1695 msgid "Enter a valid quantity" msgstr "" -#: part/views.py:1709 part/views.py:1712 +#: part/views.py:1720 part/views.py:1723 msgid "Select valid part" msgstr "" -#: part/views.py:1718 +#: part/views.py:1729 msgid "Duplicate part selected" msgstr "" -#: part/views.py:1756 +#: part/views.py:1767 msgid "Select a part" msgstr "" -#: part/views.py:1762 +#: part/views.py:1773 msgid "Selected part creates a circular BOM" msgstr "" -#: part/views.py:1766 +#: part/views.py:1777 msgid "Specify quantity" msgstr "" -#: part/views.py:2028 +#: part/views.py:2039 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:2035 +#: part/views.py:2046 msgid "Part was deleted" msgstr "" -#: part/views.py:2044 +#: part/views.py:2055 msgid "Part Pricing" msgstr "" -#: part/views.py:2178 +#: part/views.py:2196 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:2188 +#: part/views.py:2206 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:2195 +#: part/views.py:2213 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:2203 +#: part/views.py:2221 msgid "Create Part Parameter" msgstr "" -#: part/views.py:2253 +#: part/views.py:2271 msgid "Edit Part Parameter" msgstr "" -#: part/views.py:2267 +#: part/views.py:2285 msgid "Delete Part Parameter" msgstr "" -#: part/views.py:2327 +#: part/views.py:2345 msgid "Edit Part Category" msgstr "" -#: part/views.py:2365 +#: part/views.py:2383 msgid "Delete Part Category" msgstr "" -#: part/views.py:2371 +#: part/views.py:2389 msgid "Part category was deleted" msgstr "" -#: part/views.py:2423 +#: part/views.py:2441 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:2524 +#: part/views.py:2542 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:2580 +#: part/views.py:2598 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:2599 +#: part/views.py:2617 msgid "Create BOM Item" msgstr "" -#: part/views.py:2669 +#: part/views.py:2687 msgid "Edit BOM item" msgstr "" -#: part/views.py:2725 +#: part/views.py:2743 msgid "Confim BOM item deletion" msgstr "" -#: report/models.py:180 +#: part/views.py:2831 +msgid "Edit Internal Price Break" +msgstr "" + +#: part/views.py:2839 +msgid "Delete Internal Price Break" +msgstr "" + +#: report/models.py:181 msgid "Template name" msgstr "" -#: report/models.py:186 +#: report/models.py:187 msgid "Report template file" msgstr "" -#: report/models.py:193 +#: report/models.py:194 msgid "Report template description" msgstr "" -#: report/models.py:199 +#: report/models.py:200 msgid "Report revision number (auto-increments)" msgstr "" -#: report/models.py:275 +#: report/models.py:291 +msgid "Pattern for generating report filenames" +msgstr "" + +#: report/models.py:298 msgid "Report template is enabled" msgstr "" -#: report/models.py:295 +#: report/models.py:318 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:303 +#: report/models.py:326 msgid "Include Installed Tests" msgstr "" -#: report/models.py:304 +#: report/models.py:327 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:347 +#: report/models.py:371 msgid "Build Filters" msgstr "" -#: report/models.py:348 +#: report/models.py:372 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:385 +#: report/models.py:410 msgid "Part Filters" msgstr "" -#: report/models.py:386 +#: report/models.py:411 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:416 +#: report/models.py:441 msgid "Purchase order query filters" msgstr "" -#: report/models.py:450 +#: report/models.py:475 msgid "Sales order query filters" msgstr "" -#: report/models.py:500 +#: report/models.py:525 msgid "Snippet" msgstr "" -#: report/models.py:501 +#: report/models.py:526 msgid "Report snippet file" msgstr "" -#: report/models.py:505 +#: report/models.py:530 msgid "Snippet file description" msgstr "" -#: report/models.py:540 +#: report/models.py:565 msgid "Asset" msgstr "" -#: report/models.py:541 +#: report/models.py:566 msgid "Report asset file" msgstr "" -#: report/models.py:544 +#: report/models.py:569 msgid "Asset file description" msgstr "" @@ -5174,7 +5294,7 @@ msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/order.js:195 templates/js/stock.js:987 +#: templates/js/order.js:195 templates/js/stock.js:1012 msgid "Date" msgstr "" @@ -5197,7 +5317,7 @@ msgid "Moved {n} parts to {loc}" msgstr "" #: stock/forms.py:114 stock/forms.py:418 stock/models.py:509 -#: stock/templates/stock/item_base.html:376 templates/js/stock.js:654 +#: stock/templates/stock/item_base.html:381 templates/js/stock.js:658 msgid "Expiry Date" msgstr "" @@ -5483,12 +5603,12 @@ msgid "Stock Item Attachments" msgstr "" #: stock/templates/stock/item_base.html:33 -#: stock/templates/stock/item_base.html:380 templates/js/table_filters.js:150 +#: stock/templates/stock/item_base.html:385 templates/js/table_filters.js:150 msgid "Expired" msgstr "" #: stock/templates/stock/item_base.html:43 -#: stock/templates/stock/item_base.html:382 templates/js/table_filters.js:155 +#: stock/templates/stock/item_base.html:387 templates/js/table_filters.js:155 msgid "Stale" msgstr "" @@ -5618,7 +5738,7 @@ msgstr "" msgid "Stock Item Details" msgstr "" -#: stock/templates/stock/item_base.html:289 templates/js/build.js:508 +#: stock/templates/stock/item_base.html:289 templates/js/build.js:593 msgid "No location set" msgstr "" @@ -5630,25 +5750,29 @@ msgstr "" msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:380 +#: stock/templates/stock/item_base.html:356 +msgid "No manufacturer set" +msgstr "" + +#: stock/templates/stock/item_base.html:385 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:382 +#: stock/templates/stock/item_base.html:387 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:389 templates/js/stock.js:660 +#: stock/templates/stock/item_base.html:394 templates/js/stock.js:664 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:394 +#: stock/templates/stock/item_base.html:399 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:398 +#: stock/templates/stock/item_base.html:403 msgid "No stocktake performed" msgstr "" @@ -5945,7 +6069,7 @@ msgstr "" msgid "Add Stock Items" msgstr "" -#: stock/views.py:1001 users/models.py:183 +#: stock/views.py:1001 users/models.py:187 msgid "Add" msgstr "" @@ -6011,7 +6135,7 @@ msgstr "" msgid "Serialize Stock" msgstr "" -#: stock/views.py:1575 templates/js/build.js:244 +#: stock/views.py:1575 templates/js/build.js:326 msgid "Create new Stock Item" msgstr "" @@ -6043,14 +6167,6 @@ msgstr "" msgid "Add Stock Tracking Entry" msgstr "" -#: templates/403.html:5 templates/403.html:11 -msgid "Permission Denied" -msgstr "" - -#: templates/403.html:14 -msgid "You do not have permission to view this page." -msgstr "" - #: templates/404.html:5 templates/404.html:11 msgid "Page Not Found" msgstr "" @@ -6119,11 +6235,11 @@ msgstr "" msgid "Enter a search query" msgstr "" -#: templates/InvenTree/search.html:268 templates/js/stock.js:298 +#: templates/InvenTree/search.html:268 templates/js/stock.js:303 msgid "Shipped to customer" msgstr "" -#: templates/InvenTree/search.html:271 templates/js/stock.js:308 +#: templates/InvenTree/search.html:271 templates/js/stock.js:313 msgid "No stock location set" msgstr "" @@ -6168,12 +6284,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/category.html:70 -#: templates/InvenTree/settings/part.html:81 +#: templates/InvenTree/settings/part.html:85 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/category.html:71 -#: templates/InvenTree/settings/part.html:82 +#: templates/InvenTree/settings/part.html:86 msgid "Delete Template" msgstr "" @@ -6221,11 +6337,11 @@ msgstr "" msgid "Part Options" msgstr "" -#: templates/InvenTree/settings/part.html:40 +#: templates/InvenTree/settings/part.html:44 msgid "Part Parameter Templates" msgstr "" -#: templates/InvenTree/settings/part.html:61 +#: templates/InvenTree/settings/part.html:65 msgid "No part parameter templates found" msgstr "" @@ -6341,47 +6457,51 @@ msgid "API Version" msgstr "" #: templates/about.html:39 +msgid "Python Version" +msgstr "" + +#: templates/about.html:44 msgid "Django Version" msgstr "" -#: templates/about.html:46 +#: templates/about.html:51 msgid "Commit Hash" msgstr "" -#: templates/about.html:53 +#: templates/about.html:58 msgid "Commit Date" msgstr "" -#: templates/about.html:58 +#: templates/about.html:63 msgid "InvenTree Documentation" msgstr "" -#: templates/about.html:63 +#: templates/about.html:68 msgid "View Code on GitHub" msgstr "" -#: templates/about.html:68 +#: templates/about.html:73 msgid "Credits" msgstr "" -#: templates/about.html:73 +#: templates/about.html:78 msgid "Mobile App" msgstr "" -#: templates/about.html:78 +#: templates/about.html:83 msgid "Submit Bug Report" msgstr "" -#: templates/about.html:85 templates/clip.html:4 +#: templates/about.html:90 templates/clip.html:4 msgid "copy to clipboard" msgstr "" -#: templates/about.html:85 +#: templates/about.html:90 msgid "copy version information" msgstr "" -#: templates/about.html:95 templates/js/modals.js:568 -#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54 +#: templates/about.html:100 templates/js/modals.js:568 +#: templates/js/modals.js:861 templates/modals.html:29 templates/modals.html:54 #: templates/modals.html:97 msgid "Close" msgstr "" @@ -6442,7 +6562,7 @@ msgstr "" msgid "Unknown response from server" msgstr "" -#: templates/js/barcode.js:119 templates/js/modals.js:901 +#: templates/js/barcode.js:119 templates/js/modals.js:921 msgid "Invalid server response" msgstr "" @@ -6506,7 +6626,7 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/bom.js:175 templates/js/build.js:1004 +#: templates/js/bom.js:175 templates/js/build.js:1091 msgid "Open subassembly" msgstr "" @@ -6542,7 +6662,7 @@ msgstr "" msgid "Delete BOM Item" msgstr "" -#: templates/js/bom.js:470 templates/js/build.js:340 templates/js/build.js:1102 +#: templates/js/bom.js:470 templates/js/build.js:423 templates/js/build.js:1189 msgid "No BOM items found" msgstr "" @@ -6562,37 +6682,45 @@ msgstr "" msgid "Delete build output" msgstr "" -#: templates/js/build.js:243 templates/stock_table.html:20 +#: templates/js/build.js:184 +msgid "No build order allocations found" +msgstr "" + +#: templates/js/build.js:222 templates/js/order.js:382 +msgid "Location not specified" +msgstr "" + +#: templates/js/build.js:325 templates/stock_table.html:20 msgid "New Stock Item" msgstr "" -#: templates/js/build.js:559 +#: templates/js/build.js:644 msgid "Required Part" msgstr "" -#: templates/js/build.js:580 +#: templates/js/build.js:665 msgid "Quantity Per" msgstr "" -#: templates/js/build.js:648 templates/js/build.js:1066 +#: templates/js/build.js:735 templates/js/build.js:1153 #: templates/stock_table.html:59 msgid "Order stock" msgstr "" -#: templates/js/build.js:701 +#: templates/js/build.js:788 msgid "No builds matching query" msgstr "" -#: templates/js/build.js:718 templates/js/part.js:390 templates/js/part.js:634 -#: templates/js/stock.js:509 templates/js/stock.js:941 +#: templates/js/build.js:805 templates/js/part.js:390 templates/js/part.js:635 +#: templates/js/stock.js:514 templates/js/stock.js:966 msgid "Select" msgstr "" -#: templates/js/build.js:738 +#: templates/js/build.js:825 msgid "Build order is overdue" msgstr "" -#: templates/js/build.js:837 +#: templates/js/build.js:924 msgid "No parts allocated for" msgstr "" @@ -6612,17 +6740,29 @@ msgstr "" msgid "No manufacturer parts found" msgstr "" -#: templates/js/company.js:148 templates/js/company.js:246 +#: templates/js/company.js:148 templates/js/company.js:347 #: templates/js/part.js:68 templates/js/part.js:153 msgid "Template part" msgstr "" -#: templates/js/company.js:152 templates/js/company.js:250 +#: templates/js/company.js:152 templates/js/company.js:351 #: templates/js/part.js:72 templates/js/part.js:157 msgid "Assembled part" msgstr "" -#: templates/js/company.js:227 +#: templates/js/company.js:226 +msgid "No parameters found" +msgstr "" + +#: templates/js/company.js:262 +msgid "Edit parameter" +msgstr "" + +#: templates/js/company.js:263 +msgid "Delete parameter" +msgstr "" + +#: templates/js/company.js:328 msgid "No supplier parts found" msgstr "" @@ -6710,76 +6850,76 @@ msgstr "" msgid "Loading Data" msgstr "" -#: templates/js/modals.js:567 templates/js/modals.js:845 +#: templates/js/modals.js:567 templates/js/modals.js:860 #: templates/modals.html:30 templates/modals.html:55 msgid "Submit" msgstr "" -#: templates/js/modals.js:797 +#: templates/js/modals.js:811 msgid "Invalid response from server" msgstr "" -#: templates/js/modals.js:797 +#: templates/js/modals.js:811 msgid "Form data missing from server response" msgstr "" -#: templates/js/modals.js:810 +#: templates/js/modals.js:824 msgid "Error posting form data" msgstr "" -#: templates/js/modals.js:901 +#: templates/js/modals.js:921 msgid "JSON response missing form data" msgstr "" -#: templates/js/modals.js:911 +#: templates/js/modals.js:931 msgid "No Response" msgstr "" -#: templates/js/modals.js:912 +#: templates/js/modals.js:932 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/modals.js:916 +#: templates/js/modals.js:936 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/modals.js:917 +#: templates/js/modals.js:937 msgid "Server returned error code 400" msgstr "" -#: templates/js/modals.js:921 +#: templates/js/modals.js:941 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/modals.js:922 +#: templates/js/modals.js:942 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/modals.js:926 +#: templates/js/modals.js:946 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/modals.js:927 +#: templates/js/modals.js:947 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/modals.js:931 +#: templates/js/modals.js:951 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/modals.js:932 +#: templates/js/modals.js:952 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/modals.js:936 +#: templates/js/modals.js:956 msgid "Error 408: Timeout" msgstr "" -#: templates/js/modals.js:937 +#: templates/js/modals.js:957 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/modals.js:940 +#: templates/js/modals.js:960 msgid "Error requesting form data" msgstr "" @@ -6795,6 +6935,10 @@ msgstr "" msgid "No sales orders found" msgstr "" +#: templates/js/order.js:343 +msgid "No sales order allocations found" +msgstr "" + #: templates/js/part.js:10 msgid "YES" msgstr "" @@ -6823,39 +6967,39 @@ msgstr "" msgid "No variants found" msgstr "" -#: templates/js/part.js:280 templates/js/part.js:518 +#: templates/js/part.js:280 templates/js/part.js:519 msgid "No parts found" msgstr "" -#: templates/js/part.js:457 +#: templates/js/part.js:458 msgid "No category" msgstr "" -#: templates/js/part.js:475 templates/js/table_filters.js:323 +#: templates/js/part.js:476 templates/js/table_filters.js:323 msgid "Low stock" msgstr "" -#: templates/js/part.js:659 templates/js/stock.js:965 +#: templates/js/part.js:660 templates/js/stock.js:990 msgid "Path" msgstr "" -#: templates/js/part.js:702 +#: templates/js/part.js:703 msgid "No test templates matching query" msgstr "" -#: templates/js/part.js:753 templates/js/stock.js:75 +#: templates/js/part.js:754 templates/js/stock.js:75 msgid "Edit test result" msgstr "" -#: templates/js/part.js:754 templates/js/stock.js:76 +#: templates/js/part.js:755 templates/js/stock.js:76 msgid "Delete test result" msgstr "" -#: templates/js/part.js:760 +#: templates/js/part.js:761 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/part.js:805 +#: templates/js/part.js:806 msgid "Single Price Difference" msgstr "" @@ -6953,155 +7097,155 @@ msgstr "" msgid "Test Date" msgstr "" -#: templates/js/stock.js:290 +#: templates/js/stock.js:295 msgid "In production" msgstr "" -#: templates/js/stock.js:294 +#: templates/js/stock.js:299 msgid "Installed in Stock Item" msgstr "" -#: templates/js/stock.js:302 +#: templates/js/stock.js:307 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/stock.js:334 +#: templates/js/stock.js:339 msgid "No stock items matching query" msgstr "" -#: templates/js/stock.js:355 +#: templates/js/stock.js:360 msgid "items" msgstr "" -#: templates/js/stock.js:447 +#: templates/js/stock.js:452 msgid "batches" msgstr "" -#: templates/js/stock.js:474 +#: templates/js/stock.js:479 msgid "locations" msgstr "" -#: templates/js/stock.js:476 +#: templates/js/stock.js:481 msgid "Undefined location" msgstr "" -#: templates/js/stock.js:577 +#: templates/js/stock.js:582 msgid "Stock item is in production" msgstr "" -#: templates/js/stock.js:582 +#: templates/js/stock.js:587 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/stock.js:585 +#: templates/js/stock.js:590 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/stock.js:589 +#: templates/js/stock.js:594 msgid "Stock item has expired" msgstr "" -#: templates/js/stock.js:591 +#: templates/js/stock.js:596 msgid "Stock item will expire soon" msgstr "" -#: templates/js/stock.js:595 +#: templates/js/stock.js:600 msgid "Stock item has been allocated" msgstr "" -#: templates/js/stock.js:599 +#: templates/js/stock.js:604 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/stock.js:607 +#: templates/js/stock.js:611 msgid "Stock item has been rejected" msgstr "" -#: templates/js/stock.js:611 +#: templates/js/stock.js:615 msgid "Stock item is lost" msgstr "" -#: templates/js/stock.js:614 +#: templates/js/stock.js:618 msgid "Stock item is destroyed" msgstr "" -#: templates/js/stock.js:618 templates/js/table_filters.js:143 +#: templates/js/stock.js:622 templates/js/table_filters.js:143 msgid "Depleted" msgstr "" -#: templates/js/stock.js:647 +#: templates/js/stock.js:651 msgid "Stocktake" msgstr "" -#: templates/js/stock.js:828 +#: templates/js/stock.js:853 msgid "Stock Status" msgstr "" -#: templates/js/stock.js:843 +#: templates/js/stock.js:868 msgid "Set Stock Status" msgstr "" -#: templates/js/stock.js:857 +#: templates/js/stock.js:882 msgid "Select Status Code" msgstr "" -#: templates/js/stock.js:858 +#: templates/js/stock.js:883 msgid "Status code must be selected" msgstr "" -#: templates/js/stock.js:997 +#: templates/js/stock.js:1022 msgid "Invalid date" msgstr "" -#: templates/js/stock.js:1044 +#: templates/js/stock.js:1069 msgid "Location no longer exists" msgstr "" -#: templates/js/stock.js:1063 +#: templates/js/stock.js:1088 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/stock.js:1082 +#: templates/js/stock.js:1107 msgid "Customer no longer exists" msgstr "" -#: templates/js/stock.js:1100 +#: templates/js/stock.js:1125 msgid "Stock item no longer exists" msgstr "" -#: templates/js/stock.js:1123 +#: templates/js/stock.js:1148 msgid "Added" msgstr "" -#: templates/js/stock.js:1131 +#: templates/js/stock.js:1156 msgid "Removed" msgstr "" -#: templates/js/stock.js:1163 +#: templates/js/stock.js:1188 msgid "No user information" msgstr "" -#: templates/js/stock.js:1175 +#: templates/js/stock.js:1200 msgid "Edit tracking entry" msgstr "" -#: templates/js/stock.js:1176 +#: templates/js/stock.js:1201 msgid "Delete tracking entry" msgstr "" -#: templates/js/stock.js:1300 +#: templates/js/stock.js:1325 msgid "Create New Location" msgstr "" -#: templates/js/stock.js:1341 +#: templates/js/stock.js:1366 msgid "No installed items" msgstr "" -#: templates/js/stock.js:1364 +#: templates/js/stock.js:1389 msgid "Serial" msgstr "" -#: templates/js/stock.js:1392 +#: templates/js/stock.js:1417 msgid "Uninstall Stock Item" msgstr "" @@ -7267,56 +7411,56 @@ msgstr "" msgid "Purchasable" msgstr "" -#: templates/js/tables.js:321 +#: templates/js/tables.js:323 msgid "Loading data" msgstr "" -#: templates/js/tables.js:324 +#: templates/js/tables.js:326 msgid "rows per page" msgstr "" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "Showing" msgstr "" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "to" msgstr "" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "of" msgstr "" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "rows" msgstr "" -#: templates/js/tables.js:330 templates/search_form.html:6 +#: templates/js/tables.js:332 templates/search_form.html:6 #: templates/search_form.html:8 msgid "Search" msgstr "" -#: templates/js/tables.js:333 +#: templates/js/tables.js:335 msgid "No matching results" msgstr "" -#: templates/js/tables.js:336 +#: templates/js/tables.js:338 msgid "Hide/Show pagination" msgstr "" -#: templates/js/tables.js:339 +#: templates/js/tables.js:341 msgid "Refresh" msgstr "" -#: templates/js/tables.js:342 +#: templates/js/tables.js:344 msgid "Toggle" msgstr "" -#: templates/js/tables.js:345 +#: templates/js/tables.js:347 msgid "Columns" msgstr "" -#: templates/js/tables.js:348 +#: templates/js/tables.js:350 msgid "All" msgstr "" @@ -7560,35 +7704,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:170 +#: users/models.py:174 msgid "Permission set" msgstr "" -#: users/models.py:178 +#: users/models.py:182 msgid "Group" msgstr "" -#: users/models.py:181 +#: users/models.py:185 msgid "View" msgstr "" -#: users/models.py:181 +#: users/models.py:185 msgid "Permission to view items" msgstr "" -#: users/models.py:183 +#: users/models.py:187 msgid "Permission to add items" msgstr "" -#: users/models.py:185 +#: users/models.py:189 msgid "Change" msgstr "" -#: users/models.py:185 +#: users/models.py:189 msgid "Permissions to edit items" msgstr "" -#: users/models.py:187 +#: users/models.py:191 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po index 97617764a4..61f43d466b 100644 --- a/InvenTree/locale/fr/LC_MESSAGES/django.po +++ b/InvenTree/locale/fr/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-06-16 22:40+0000\n" -"PO-Revision-Date: 2021-06-16 22:40\n" +"POT-Creation-Date: 2021-06-24 21:38+0000\n" +"PO-Revision-Date: 2021-06-24 21:40\n" "Last-Translator: \n" "Language-Team: French\n" "Language: fr_FR\n" @@ -77,7 +77,7 @@ msgstr "Sélectionnez une catégorie" msgid "Duplicate serial: {n}" msgstr "Dupliquer le numéro de série: {n}" -#: InvenTree/helpers.py:384 order/models.py:247 order/models.py:357 +#: InvenTree/helpers.py:384 order/models.py:248 order/models.py:358 #: stock/views.py:1795 msgid "Invalid quantity provided" msgstr "Quantité fournie invalide" @@ -122,9 +122,9 @@ msgstr "Commentaire" msgid "File comment" msgstr "Commentaire du fichier" -#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1999 +#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:2022 #: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/stock.js:1154 +#: templates/js/stock.js:1179 msgid "User" msgstr "Utilisateur" @@ -132,34 +132,35 @@ msgstr "Utilisateur" msgid "upload date" msgstr "date de chargement" -#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102 -#: part/models.py:686 part/models.py:2140 part/templates/part/params.html:27 -#: report/models.py:179 templates/InvenTree/search.html:137 -#: templates/InvenTree/search.html:289 templates/js/part.js:118 -#: templates/js/part.js:641 templates/js/stock.js:947 +#: InvenTree/models.py:107 InvenTree/models.py:108 company/models.py:396 +#: label/models.py:102 part/models.py:671 part/models.py:2163 +#: part/templates/part/params.html:27 report/models.py:180 +#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289 +#: templates/js/company.js:235 templates/js/part.js:118 +#: templates/js/part.js:642 templates/js/stock.js:972 msgid "Name" msgstr "Nom" #: InvenTree/models.py:114 build/models.py:135 #: build/templates/build/detail.html:21 company/models.py:339 -#: company/models.py:491 company/templates/company/detail.html:27 +#: company/models.py:532 company/templates/company/detail.html:27 #: company/templates/company/manufacturer_part_base.html:72 #: company/templates/company/supplier_part_base.html:71 #: company/templates/company/supplier_part_detail.html:31 label/models.py:109 -#: order/models.py:103 order/templates/order/purchase_order_detail.html:147 -#: part/models.py:710 part/templates/part/detail.html:54 -#: part/templates/part/set_category.html:14 report/models.py:192 -#: report/models.py:505 report/models.py:544 +#: order/models.py:104 order/templates/order/purchase_order_detail.html:147 +#: part/models.py:695 part/templates/part/detail.html:54 +#: part/templates/part/set_category.html:14 report/models.py:193 +#: report/models.py:530 report/models.py:569 #: report/templates/report/inventree_build_order_base.html:118 #: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224 #: templates/InvenTree/search.html:296 #: templates/InvenTree/settings/header.html:9 templates/js/bom.js:190 -#: templates/js/build.js:746 templates/js/build.js:1014 +#: templates/js/build.js:833 templates/js/build.js:1101 #: templates/js/company.js:56 templates/js/order.js:183 #: templates/js/order.js:280 templates/js/part.js:177 templates/js/part.js:260 -#: templates/js/part.js:437 templates/js/part.js:653 templates/js/part.js:721 -#: templates/js/stock.js:552 templates/js/stock.js:959 -#: templates/js/stock.js:1004 +#: templates/js/part.js:437 templates/js/part.js:654 templates/js/part.js:722 +#: templates/js/stock.js:557 templates/js/stock.js:984 +#: templates/js/stock.js:1029 msgid "Description" msgstr "Description" @@ -191,15 +192,15 @@ msgstr "Polonais" msgid "Turkish" msgstr "Turc" -#: InvenTree/status.py:93 +#: InvenTree/status.py:94 msgid "Background worker check failed" msgstr "Échec de la vérification du processus d'arrière-plan" -#: InvenTree/status.py:97 +#: InvenTree/status.py:98 msgid "Email backend not configured" msgstr "Backend d'email non configuré" -#: InvenTree/status.py:100 +#: InvenTree/status.py:101 msgid "InvenTree system health checks failed" msgstr "Échec des contrôles de santé du système" @@ -372,27 +373,27 @@ msgstr "" msgid "Overage must be an integer value or a percentage" msgstr "" -#: InvenTree/views.py:605 +#: InvenTree/views.py:608 msgid "Delete Item" msgstr "Supprimer cet élément" -#: InvenTree/views.py:654 +#: InvenTree/views.py:657 msgid "Check box to confirm item deletion" msgstr "" -#: InvenTree/views.py:669 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:672 templates/InvenTree/settings/user.html:18 msgid "Edit User Information" msgstr "Modifier les informations utilisateur" -#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:683 templates/InvenTree/settings/user.html:22 msgid "Set Password" msgstr "" -#: InvenTree/views.py:699 +#: InvenTree/views.py:702 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:950 templates/navbar.html:95 +#: InvenTree/views.py:953 templates/navbar.html:95 msgid "System Information" msgstr "Informations système" @@ -445,11 +446,11 @@ msgid "Order target date" msgstr "" #: build/forms.py:42 build/templates/build/build_base.html:146 -#: build/templates/build/detail.html:121 order/forms.py:109 order/forms.py:144 +#: build/templates/build/detail.html:121 order/forms.py:114 order/forms.py:149 #: order/templates/order/order_base.html:124 #: order/templates/order/sales_order_base.html:119 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/build.js:793 templates/js/order.js:200 +#: templates/js/build.js:880 templates/js/order.js:200 #: templates/js/order.js:298 msgid "Target Date" msgstr "" @@ -462,22 +463,21 @@ msgstr "" #: build/templates/build/allocation_card.html:23 #: build/templates/build/auto_allocate.html:17 #: build/templates/build/build_base.html:133 -#: build/templates/build/detail.html:31 common/models.py:699 -#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77 -#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262 -#: order/forms.py:279 order/models.py:616 order/models.py:817 +#: build/templates/build/detail.html:31 common/models.py:720 +#: company/forms.py:191 company/templates/company/supplier_part_pricing.html:77 +#: order/forms.py:193 order/forms.py:211 order/forms.py:246 order/forms.py:268 +#: order/forms.py:285 order/models.py:617 order/models.py:841 #: order/templates/order/order_wizard/match_parts.html:29 -#: order/templates/order/order_wizard/select_parts.html:32 +#: order/templates/order/order_wizard/select_parts.html:34 #: order/templates/order/purchase_order_detail.html:179 #: order/templates/order/sales_order_detail.html:70 #: order/templates/order/sales_order_detail.html:77 #: order/templates/order/sales_order_detail.html:162 -#: order/templates/order/sales_order_detail.html:230 part/forms.py:342 -#: part/forms.py:372 part/forms.py:388 part/models.py:2270 -#: part/templates/part/allocation.html:19 -#: part/templates/part/allocation.html:53 -#: part/templates/part/order_prices.html:175 -#: part/templates/part/part_pricing.html:13 +#: order/templates/order/sales_order_detail.html:234 part/forms.py:342 +#: part/forms.py:372 part/forms.py:388 part/forms.py:404 part/models.py:2293 +#: part/templates/part/internal_prices.html:98 +#: part/templates/part/order_prices.html:202 +#: part/templates/part/part_pricing.html:16 #: part/templates/part/sale_prices.html:85 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -486,9 +486,10 @@ msgstr "" #: stock/forms.py:175 stock/forms.py:308 #: stock/templates/stock/item_base.html:255 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364 -#: templates/js/bom.js:205 templates/js/build.js:486 templates/js/build.js:1024 -#: templates/js/part.js:795 templates/js/stock.js:1139 -#: templates/js/stock.js:1358 +#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:571 +#: templates/js/build.js:1111 templates/js/order.js:393 +#: templates/js/part.js:796 templates/js/stock.js:1164 +#: templates/js/stock.js:1383 msgid "Quantity" msgstr "Quantité" @@ -500,7 +501,7 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/forms.py:95 order/forms.py:234 stock/forms.py:118 +#: build/forms.py:95 order/forms.py:240 stock/forms.py:118 msgid "Serial Numbers" msgstr "Numéros de série" @@ -529,12 +530,12 @@ msgid "Mark build as complete" msgstr "" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 -#: order/forms.py:82 stock/forms.py:347 -#: stock/templates/stock/item_base.html:285 +#: stock/forms.py:347 stock/templates/stock/item_base.html:285 #: stock/templates/stock/stock_adjust.html:17 #: templates/InvenTree/search.html:260 templates/js/barcode.js:363 -#: templates/js/barcode.js:531 templates/js/build.js:500 -#: templates/js/stock.js:639 templates/js/stock.js:1031 +#: templates/js/barcode.js:531 templates/js/build.js:218 +#: templates/js/build.js:585 templates/js/order.js:378 +#: templates/js/stock.js:643 templates/js/stock.js:1056 msgid "Location" msgstr "" @@ -543,13 +544,13 @@ msgid "Location of completed parts" msgstr "Emplacement des pièces terminées" #: build/forms.py:215 build/templates/build/build_base.html:138 -#: build/templates/build/detail.html:59 order/models.py:468 +#: build/templates/build/detail.html:59 order/models.py:469 #: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:403 templates/InvenTree/search.html:252 -#: templates/js/barcode.js:119 templates/js/build.js:780 +#: stock/templates/stock/item_base.html:408 templates/InvenTree/search.html:252 +#: templates/js/barcode.js:119 templates/js/build.js:867 #: templates/js/order.js:187 templates/js/order.js:285 -#: templates/js/stock.js:626 templates/js/stock.js:1108 -#: templates/js/stock.js:1374 +#: templates/js/stock.js:630 templates/js/stock.js:1133 +#: templates/js/stock.js:1399 msgid "Status" msgstr "" @@ -583,16 +584,16 @@ msgstr "" #: build/models.py:66 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:73 -#: part/templates/part/allocation.html:23 #: report/templates/report/inventree_build_order_base.html:106 +#: templates/js/build.js:195 msgid "Build Order" msgstr "" #: build/models.py:67 build/templates/build/index.html:8 #: build/templates/build/index.html:15 order/templates/order/so_builds.html:12 #: order/templates/order/so_navbar.html:19 -#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:55 -#: part/templates/part/navbar.html:58 templates/InvenTree/index.html:183 +#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:57 +#: part/templates/part/navbar.html:60 templates/InvenTree/index.html:183 #: templates/InvenTree/search.html:185 #: templates/InvenTree/settings/tabs.html:34 users/models.py:43 msgid "Build Orders" @@ -602,12 +603,12 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:128 order/models.py:101 order/models.py:618 +#: build/models.py:128 order/models.py:102 order/models.py:619 #: order/templates/order/purchase_order_detail.html:174 -#: order/templates/order/sales_order_detail.html:225 part/models.py:2279 +#: order/templates/order/sales_order_detail.html:229 part/models.py:2302 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197 -#: templates/js/build.js:575 templates/js/build.js:1018 +#: templates/js/build.js:660 templates/js/build.js:1105 msgid "Reference" msgstr "Référence" @@ -626,27 +627,27 @@ msgstr "" #: build/models.py:153 build/templates/build/auto_allocate.html:16 #: build/templates/build/build_base.html:128 -#: build/templates/build/detail.html:26 company/models.py:622 -#: order/models.py:660 order/models.py:693 -#: order/templates/order/order_wizard/select_parts.html:30 +#: build/templates/build/detail.html:26 company/models.py:663 +#: order/models.py:661 order/models.py:717 +#: order/templates/order/order_wizard/select_parts.html:32 #: order/templates/order/purchase_order_detail.html:132 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:213 part/models.py:321 -#: part/models.py:1967 part/models.py:1979 part/models.py:1997 -#: part/models.py:2072 part/models.py:2168 part/models.py:2254 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29 +#: order/templates/order/sales_order_detail.html:214 part/models.py:321 +#: part/models.py:1975 part/models.py:1987 part/models.py:2002 +#: part/models.py:2020 part/models.py:2095 part/models.py:2191 +#: part/models.py:2277 part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 part/templates/part/related.html:29 #: part/templates/part/set_category.html:13 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 #: templates/InvenTree/search.html:112 templates/InvenTree/search.html:210 #: templates/js/barcode.js:362 templates/js/bom.js:163 -#: templates/js/build.js:466 templates/js/build.js:751 -#: templates/js/build.js:991 templates/js/company.js:140 -#: templates/js/company.js:238 templates/js/part.js:241 -#: templates/js/part.js:404 templates/js/stock.js:521 -#: templates/js/stock.js:1346 +#: templates/js/build.js:551 templates/js/build.js:838 +#: templates/js/build.js:1078 templates/js/company.js:140 +#: templates/js/company.js:339 templates/js/part.js:241 +#: templates/js/part.js:404 templates/js/stock.js:526 +#: templates/js/stock.js:1371 msgid "Part" msgstr "Pièce" @@ -710,16 +711,16 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:220 order/models.py:107 part/models.py:882 +#: build/models.py:220 order/models.py:108 part/models.py:867 #: part/templates/part/detail.html:126 templates/js/order.js:293 msgid "Creation Date" msgstr "Date de création" -#: build/models.py:224 order/models.py:474 +#: build/models.py:224 order/models.py:475 msgid "Target completion date" msgstr "" -#: build/models.py:228 order/models.py:220 templates/js/build.js:798 +#: build/models.py:228 order/models.py:221 templates/js/build.js:885 msgid "Completion Date" msgstr "" @@ -736,9 +737,9 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:251 build/templates/build/build_base.html:184 -#: build/templates/build/detail.html:105 order/models.py:121 +#: build/templates/build/detail.html:105 order/models.py:122 #: order/templates/order/order_base.html:138 -#: order/templates/order/sales_order_base.html:140 part/models.py:886 +#: order/templates/order/sales_order_base.html:140 part/models.py:871 #: report/templates/report/inventree_build_order_base.html:159 msgid "Responsible" msgstr "" @@ -757,26 +758,26 @@ msgstr "" msgid "External Link" msgstr "Lien Externe" -#: build/models.py:258 part/models.py:744 stock/models.py:462 +#: build/models.py:258 part/models.py:729 stock/models.py:462 msgid "Link to external URL" msgstr "" #: build/models.py:262 build/templates/build/navbar.html:53 -#: company/models.py:132 company/models.py:498 +#: company/models.py:132 company/models.py:539 #: company/templates/company/navbar.html:70 -#: company/templates/company/navbar.html:73 order/models.py:125 -#: order/models.py:620 order/templates/order/po_navbar.html:29 -#: order/templates/order/po_navbar.html:32 -#: order/templates/order/purchase_order_detail.html:239 -#: order/templates/order/sales_order_detail.html:278 +#: company/templates/company/navbar.html:73 order/models.py:126 +#: order/models.py:621 order/templates/order/po_navbar.html:38 +#: order/templates/order/po_navbar.html:41 +#: order/templates/order/purchase_order_detail.html:243 +#: order/templates/order/sales_order_detail.html:309 #: order/templates/order/so_navbar.html:33 -#: order/templates/order/so_navbar.html:36 part/models.py:871 -#: part/templates/part/navbar.html:134 +#: order/templates/order/so_navbar.html:36 part/models.py:856 +#: part/templates/part/navbar.html:142 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377 #: stock/models.py:532 stock/models.py:1667 stock/models.py:1769 #: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37 -#: templates/js/bom.js:356 templates/js/stock.js:141 templates/js/stock.js:674 +#: templates/js/bom.js:356 templates/js/stock.js:141 templates/js/stock.js:699 msgid "Notes" msgstr "Notes" @@ -809,11 +810,11 @@ msgstr "L'élément de construction doit spécifier une sortie de construction, msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1188 order/models.py:791 +#: build/models.py:1188 order/models.py:815 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1192 order/models.py:794 +#: build/models.py:1192 order/models.py:818 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -827,7 +828,7 @@ msgid "Selected stock item not found in BOM for part '{p}'" msgstr "L'article en stock sélectionné n'a pas été trouvé dans la BOM pour la pièce '{p}'" #: build/models.py:1316 stock/templates/stock/item_base.html:317 -#: templates/InvenTree/search.html:183 templates/js/build.js:724 +#: templates/InvenTree/search.html:183 templates/js/build.js:811 #: templates/navbar.html:29 msgid "Build" msgstr "" @@ -836,15 +837,13 @@ msgstr "" msgid "Build to allocate parts" msgstr "" -#: build/models.py:1333 part/templates/part/allocation.html:18 -#: part/templates/part/allocation.html:24 -#: part/templates/part/allocation.html:31 -#: part/templates/part/allocation.html:49 -#: stock/templates/stock/item_base.html:8 +#: build/models.py:1333 stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:31 #: stock/templates/stock/item_base.html:339 -#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:841 -#: templates/js/stock.js:1090 +#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:206 +#: templates/js/build.js:211 templates/js/build.js:928 +#: templates/js/order.js:366 templates/js/order.js:371 +#: templates/js/stock.js:1115 msgid "Stock Item" msgstr "" @@ -880,7 +879,7 @@ msgstr "" msgid "Auto Allocate" msgstr "" -#: build/templates/build/allocate.html:25 templates/js/build.js:656 +#: build/templates/build/allocate.html:25 templates/js/build.js:743 msgid "Unallocate stock" msgstr "" @@ -917,15 +916,15 @@ msgstr "" #: order/templates/order/sales_order_detail.html:160 #: report/templates/report/inventree_test_report_base.html:75 #: stock/models.py:454 stock/templates/stock/item_base.html:249 -#: templates/js/build.js:484 +#: templates/js/build.js:569 msgid "Serial Number" msgstr "" #: build/templates/build/attachments.html:12 #: build/templates/build/navbar.html:43 build/templates/build/navbar.html:46 -#: order/templates/order/po_navbar.html:26 -#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:125 -#: part/templates/part/navbar.html:128 stock/templates/stock/navbar.html:47 +#: order/templates/order/po_navbar.html:35 +#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:133 +#: part/templates/part/navbar.html:136 stock/templates/stock/navbar.html:47 #: stock/templates/stock/navbar.html:50 msgid "Attachments" msgstr "Pieces jointes" @@ -1037,11 +1036,10 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:170 -#: build/templates/build/detail.html:84 order/models.py:691 +#: build/templates/build/detail.html:84 order/models.py:715 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:35 #: order/templates/order/sales_order_ship.html:25 -#: part/templates/part/allocation.html:30 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 #: stock/templates/stock/item_base.html:279 templates/js/order.js:245 @@ -1185,7 +1183,10 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:46 stock/forms.py:169 stock/forms.py:375 +#: build/templates/build/detail.html:46 order/forms.py:85 order/models.py:678 +#: order/templates/order/purchase_order_detail.html:239 +#: order/templates/order/receive_parts.html:25 stock/forms.py:169 +#: stock/forms.py:375 msgid "Destination" msgstr "" @@ -1194,15 +1195,15 @@ msgid "Destination location not specified" msgstr "" #: build/templates/build/detail.html:70 -#: stock/templates/stock/item_base.html:303 templates/js/stock.js:634 -#: templates/js/stock.js:1381 templates/js/table_filters.js:112 +#: stock/templates/stock/item_base.html:303 templates/js/stock.js:638 +#: templates/js/stock.js:1406 templates/js/table_filters.js:112 #: templates/js/table_filters.js:206 msgid "Batch" msgstr "" #: build/templates/build/detail.html:116 #: order/templates/order/order_base.html:111 -#: order/templates/order/sales_order_base.html:113 templates/js/build.js:788 +#: order/templates/order/sales_order_base.html:113 templates/js/build.js:875 msgid "Created" msgstr "" @@ -1210,7 +1211,7 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:132 templates/js/build.js:766 +#: build/templates/build/detail.html:132 templates/js/build.js:853 msgid "Completed" msgstr "" @@ -1248,9 +1249,9 @@ msgstr "" #: build/templates/build/navbar.html:15 #: company/templates/company/navbar.html:15 -#: order/templates/order/po_navbar.html:14 -#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15 -#: templates/js/stock.js:1019 +#: order/templates/order/po_navbar.html:15 +#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:17 +#: templates/js/stock.js:1044 msgid "Details" msgstr "Détails" @@ -1285,8 +1286,8 @@ msgstr "" #: build/templates/build/notes.html:26 company/templates/company/notes.html:24 #: order/templates/order/order_notes.html:27 #: order/templates/order/sales_order_notes.html:29 -#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:482 -#: stock/templates/stock/item_base.html:492 +#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:487 +#: stock/templates/stock/item_base.html:497 #: stock/templates/stock/item_notes.html:26 msgid "Save" msgstr "Enregistrer" @@ -1411,8 +1412,8 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:585 -#: templates/js/build.js:848 templates/js/build.js:1031 +#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:670 +#: templates/js/build.js:935 templates/js/build.js:1118 msgid "Available" msgstr "Disponible" @@ -1598,8 +1599,8 @@ msgstr "" msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:153 part/models.py:2170 part/templates/part/detail.html:160 -#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25 +#: common/models.py:153 part/models.py:2193 part/templates/part/detail.html:160 +#: report/models.py:186 stock/forms.py:259 templates/js/table_filters.js:25 #: templates/js/table_filters.js:315 msgid "Template" msgstr "" @@ -1608,7 +1609,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:160 part/models.py:834 part/templates/part/detail.html:170 +#: common/models.py:160 part/models.py:819 part/templates/part/detail.html:170 #: templates/js/table_filters.js:128 templates/js/table_filters.js:327 msgid "Assembly" msgstr "" @@ -1617,7 +1618,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:167 part/models.py:840 part/templates/part/detail.html:180 +#: common/models.py:167 part/models.py:825 part/templates/part/detail.html:180 #: templates/js/table_filters.js:331 msgid "Component" msgstr "" @@ -1626,7 +1627,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:174 part/models.py:851 part/templates/part/detail.html:200 +#: common/models.py:174 part/models.py:836 part/templates/part/detail.html:200 msgid "Purchaseable" msgstr "" @@ -1634,7 +1635,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:181 part/models.py:856 part/templates/part/detail.html:210 +#: common/models.py:181 part/models.py:841 part/templates/part/detail.html:210 #: templates/js/table_filters.js:339 msgid "Salable" msgstr "" @@ -1643,7 +1644,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:188 part/models.py:846 part/templates/part/detail.html:190 +#: common/models.py:188 part/models.py:831 part/templates/part/detail.html:190 #: templates/js/table_filters.js:33 templates/js/table_filters.js:343 msgid "Trackable" msgstr "" @@ -1652,7 +1653,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:195 part/models.py:866 part/templates/part/detail.html:150 +#: common/models.py:195 part/models.py:851 part/templates/part/detail.html:150 #: templates/js/table_filters.js:29 msgid "Virtual" msgstr "" @@ -1669,160 +1670,185 @@ msgstr "" msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:209 templates/stats.html:25 -msgid "Debug Mode" +#: common/models.py:209 +msgid "Show Price in Forms" msgstr "" #: common/models.py:210 -msgid "Generate reports in debug mode (HTML output)" +msgid "Display part price in some forms" msgstr "" #: common/models.py:216 -msgid "Page Size" +msgid "Internal Prices" msgstr "" #: common/models.py:217 +msgid "Enable internal prices for parts" +msgstr "" + +#: common/models.py:223 +msgid "Internal Price as BOM-Price" +msgstr "" + +#: common/models.py:224 +msgid "Use the internal price (if set) in BOM-price calculations" +msgstr "" + +#: common/models.py:230 templates/stats.html:25 +msgid "Debug Mode" +msgstr "" + +#: common/models.py:231 +msgid "Generate reports in debug mode (HTML output)" +msgstr "" + +#: common/models.py:237 +msgid "Page Size" +msgstr "" + +#: common/models.py:238 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:227 +#: common/models.py:248 msgid "Test Reports" msgstr "" -#: common/models.py:228 +#: common/models.py:249 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:234 +#: common/models.py:255 msgid "Stock Expiry" msgstr "" -#: common/models.py:235 +#: common/models.py:256 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:241 +#: common/models.py:262 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:242 +#: common/models.py:263 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:248 +#: common/models.py:269 msgid "Stock Stale Time" msgstr "" -#: common/models.py:249 +#: common/models.py:270 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:251 part/templates/part/detail.html:121 +#: common/models.py:272 part/templates/part/detail.html:121 msgid "days" msgstr "jours" -#: common/models.py:256 +#: common/models.py:277 msgid "Build Expired Stock" msgstr "" -#: common/models.py:257 +#: common/models.py:278 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:263 +#: common/models.py:284 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:264 +#: common/models.py:285 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:270 +#: common/models.py:291 msgid "Group by Part" msgstr "" -#: common/models.py:271 +#: common/models.py:292 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:277 +#: common/models.py:298 msgid "Recent Stock Count" msgstr "" -#: common/models.py:278 +#: common/models.py:299 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:284 +#: common/models.py:305 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:285 +#: common/models.py:306 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:290 +#: common/models.py:311 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:291 +#: common/models.py:312 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:295 +#: common/models.py:316 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:296 +#: common/models.py:317 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:301 +#: common/models.py:322 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:302 +#: common/models.py:323 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:525 +#: common/models.py:546 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:527 +#: common/models.py:548 msgid "Settings value" msgstr "" -#: common/models.py:562 +#: common/models.py:583 msgid "Must be an integer value" msgstr "" -#: common/models.py:585 +#: common/models.py:606 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:596 +#: common/models.py:617 msgid "Value must be an integer value" msgstr "" -#: common/models.py:619 +#: common/models.py:640 msgid "Key string must be unique" msgstr "" -#: common/models.py:700 company/forms.py:177 +#: common/models.py:721 company/forms.py:192 msgid "Price break quantity" msgstr "" -#: common/models.py:708 company/templates/company/supplier_part_pricing.html:82 +#: common/models.py:729 company/templates/company/supplier_part_pricing.html:82 +#: part/templates/part/internal_prices.html:103 #: part/templates/part/sale_prices.html:90 templates/js/bom.js:271 msgid "Price" msgstr "" -#: common/models.py:709 +#: common/models.py:730 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:798 +#: common/models.py:822 msgid "Default" msgstr "" @@ -1843,7 +1869,9 @@ msgid "Supplied value must be a boolean" msgstr "" #: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42 -#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27 +#: order/templates/order/po_navbar.html:19 +#: order/templates/order/po_navbar.html:22 order/views.py:582 +#: part/templates/part/bom_upload/upload_file.html:27 msgid "Upload File" msgstr "" @@ -1877,29 +1905,29 @@ msgstr "" msgid "Image URL" msgstr "" -#: company/forms.py:118 templates/js/part.js:786 +#: company/forms.py:133 templates/js/part.js:787 msgid "Single Price" msgstr "" -#: company/forms.py:120 +#: company/forms.py:135 msgid "Single quantity price" msgstr "" -#: company/forms.py:128 company/models.py:321 +#: company/forms.py:143 company/models.py:321 msgid "Select manufacturer" msgstr "" -#: company/forms.py:134 company/models.py:328 +#: company/forms.py:149 company/models.py:328 msgid "Manufacturer Part Number" msgstr "" -#: company/forms.py:136 company/models.py:327 +#: company/forms.py:151 company/models.py:327 #: company/templates/company/manufacturer_part_base.html:89 #: company/templates/company/manufacturer_part_detail.html:26 #: company/templates/company/supplier_part_base.html:102 #: company/templates/company/supplier_part_detail.html:35 #: order/templates/order/purchase_order_detail.html:162 part/bom.py:171 -#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307 +#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:408 msgid "MPN" msgstr "" @@ -1952,11 +1980,11 @@ msgstr "" msgid "Point of contact" msgstr "" -#: company/models.py:121 company/models.py:333 company/models.py:485 -#: order/models.py:105 part/models.py:743 +#: company/models.py:121 company/models.py:333 company/models.py:526 +#: order/models.py:106 part/models.py:728 #: report/templates/report/inventree_build_order_base.html:165 -#: templates/js/company.js:188 templates/js/company.js:318 -#: templates/js/part.js:497 +#: templates/js/company.js:188 templates/js/company.js:419 +#: templates/js/part.js:498 msgid "Link" msgstr "" @@ -1964,7 +1992,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:129 part/models.py:753 +#: company/models.py:129 part/models.py:738 msgid "Image" msgstr "" @@ -1992,12 +2020,12 @@ msgstr "" msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:305 company/models.py:456 stock/models.py:407 +#: company/models.py:305 company/models.py:497 stock/models.py:407 #: stock/templates/stock/item_base.html:235 msgid "Base Part" msgstr "" -#: company/models.py:309 company/models.py:460 order/views.py:1587 +#: company/models.py:309 company/models.py:501 order/views.py:1597 msgid "Select part" msgstr "" @@ -2008,7 +2036,7 @@ msgstr "" #: company/templates/company/supplier_part_detail.html:34 part/bom.py:170 #: part/bom.py:241 stock/templates/stock/item_base.html:352 #: templates/js/company.js:44 templates/js/company.js:165 -#: templates/js/company.js:289 +#: templates/js/company.js:390 msgid "Manufacturer" msgstr "" @@ -2020,87 +2048,112 @@ msgstr "" msgid "Manufacturer part description" msgstr "" -#: company/models.py:466 company/templates/company/detail.html:62 +#: company/models.py:390 company/models.py:520 +#: company/templates/company/manufacturer_part_base.html:6 +#: company/templates/company/manufacturer_part_base.html:19 +#: stock/templates/stock/item_base.html:362 +msgid "Manufacturer Part" +msgstr "" + +#: company/models.py:397 +msgid "Parameter name" +msgstr "" + +#: company/models.py:403 part/templates/part/params.html:28 +#: report/templates/report/inventree_test_report_base.html:90 +#: stock/models.py:1756 templates/InvenTree/settings/header.html:8 +#: templates/js/company.js:241 templates/js/stock.js:137 +msgid "Value" +msgstr "" + +#: company/models.py:404 +msgid "Parameter value" +msgstr "" + +#: company/models.py:410 part/models.py:813 part/models.py:2165 +#: part/templates/part/detail.html:106 part/templates/part/params.html:29 +#: templates/js/company.js:247 +msgid "Units" +msgstr "" + +#: company/models.py:411 +msgid "Parameter units" +msgstr "" + +#: company/models.py:507 company/templates/company/detail.html:62 #: company/templates/company/supplier_part_base.html:84 -#: company/templates/company/supplier_part_detail.html:25 order/models.py:192 +#: company/templates/company/supplier_part_detail.html:25 order/models.py:193 #: order/templates/order/order_base.html:92 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175 -#: part/bom.py:286 stock/templates/stock/item_base.html:364 -#: templates/js/company.js:48 templates/js/company.js:263 +#: part/bom.py:286 stock/templates/stock/item_base.html:369 +#: templates/js/company.js:48 templates/js/company.js:364 #: templates/js/order.js:170 msgid "Supplier" msgstr "" -#: company/models.py:467 +#: company/models.py:508 msgid "Select supplier" msgstr "" -#: company/models.py:472 company/templates/company/supplier_part_base.html:88 +#: company/models.py:513 company/templates/company/supplier_part_base.html:88 #: company/templates/company/supplier_part_detail.html:26 #: order/templates/order/purchase_order_detail.html:153 part/bom.py:176 #: part/bom.py:287 msgid "SKU" msgstr "" -#: company/models.py:473 +#: company/models.py:514 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:479 -#: company/templates/company/manufacturer_part_base.html:6 -#: company/templates/company/manufacturer_part_base.html:19 -#: stock/templates/stock/item_base.html:357 -msgid "Manufacturer Part" -msgstr "" - -#: company/models.py:480 +#: company/models.py:521 msgid "Select manufacturer part" msgstr "" -#: company/models.py:486 +#: company/models.py:527 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:492 +#: company/models.py:533 msgid "Supplier part description" msgstr "" -#: company/models.py:497 company/templates/company/supplier_part_base.html:116 -#: company/templates/company/supplier_part_detail.html:38 part/models.py:2282 +#: company/models.py:538 company/templates/company/supplier_part_base.html:116 +#: company/templates/company/supplier_part_detail.html:38 part/models.py:2305 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" -#: company/models.py:501 part/models.py:1614 +#: company/models.py:542 part/models.py:1606 msgid "base cost" msgstr "" -#: company/models.py:501 part/models.py:1614 +#: company/models.py:542 part/models.py:1606 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:503 company/templates/company/supplier_part_base.html:109 +#: company/models.py:544 company/templates/company/supplier_part_base.html:109 #: stock/models.py:431 stock/templates/stock/item_base.html:310 -#: templates/js/stock.js:670 +#: templates/js/stock.js:695 msgid "Packaging" msgstr "" -#: company/models.py:503 +#: company/models.py:544 msgid "Part packaging" msgstr "" -#: company/models.py:505 part/models.py:1616 +#: company/models.py:546 part/models.py:1608 msgid "multiple" msgstr "" -#: company/models.py:505 +#: company/models.py:546 msgid "Order multiple" msgstr "" #: company/templates/company/assigned_stock.html:10 #: company/templates/company/navbar.html:62 -#: company/templates/company/navbar.html:65 templates/js/build.js:477 +#: company/templates/company/navbar.html:65 templates/js/build.js:562 msgid "Assigned Stock" msgstr "" @@ -2165,11 +2218,11 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/detail.html:67 order/models.py:463 +#: company/templates/company/detail.html:67 order/models.py:464 #: order/templates/order/sales_order_base.html:94 stock/models.py:449 #: stock/models.py:450 stock/templates/stock/item_base.html:262 #: templates/js/company.js:40 templates/js/order.js:267 -#: templates/js/stock.js:1072 +#: templates/js/stock.js:1097 msgid "Customer" msgstr "" @@ -2215,7 +2268,7 @@ msgstr "" #: company/templates/company/detail_manufacturer_part.html:66 #: company/templates/company/detail_supplier_part.html:66 #: part/templates/part/bom.html:159 part/templates/part/category.html:118 -#: templates/js/stock.js:1287 +#: templates/js/stock.js:1312 msgid "New Part" msgstr "" @@ -2248,13 +2301,12 @@ msgstr "" #: company/templates/company/detail_supplier_part.html:11 #: company/templates/company/manufacturer_part_navbar.html:11 -#: company/templates/company/manufacturer_part_suppliers.html:10 #: templates/InvenTree/search.html:164 msgid "Supplier Parts" msgstr "" #: company/templates/company/detail_supplier_part.html:21 -#: order/templates/order/order_wizard/select_parts.html:42 +#: order/templates/order/order_wizard/select_parts.html:44 #: order/templates/order/purchase_order_detail.html:50 msgid "Create new supplier part" msgstr "" @@ -2262,12 +2314,12 @@ msgstr "" #: company/templates/company/detail_supplier_part.html:22 #: company/templates/company/manufacturer_part_suppliers.html:17 #: order/templates/order/purchase_order_detail.html:49 -#: part/templates/part/supplier.html:17 templates/js/stock.js:1293 +#: part/templates/part/supplier.html:17 templates/js/stock.js:1318 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail_supplier_part.html:72 -#: company/templates/company/manufacturer_part_suppliers.html:47 +#: company/templates/company/manufacturer_part_suppliers.html:82 #: company/views.py:64 order/templates/order/purchase_orders.html:185 #: part/templates/part/supplier.html:50 msgid "New Supplier" @@ -2319,8 +2371,9 @@ msgid "There are %(count)s suppliers defined for this manufacturer part. If you msgstr "" #: company/templates/company/manufacturer_part_navbar.html:14 -#: company/views.py:63 part/templates/part/navbar.html:84 -#: part/templates/part/navbar.html:87 templates/InvenTree/search.html:316 +#: company/templates/company/manufacturer_part_suppliers.html:10 +#: company/views.py:63 part/templates/part/navbar.html:86 +#: part/templates/part/navbar.html:89 templates/InvenTree/search.html:316 #: templates/navbar.html:35 msgid "Suppliers" msgstr "" @@ -2332,13 +2385,13 @@ msgstr "" #: company/templates/company/manufacturer_part_navbar.html:22 #: company/templates/company/navbar.html:41 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:36 stock/api.py:54 +#: part/templates/part/navbar.html:38 stock/api.py:54 #: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196 #: templates/InvenTree/search.html:232 #: templates/InvenTree/settings/tabs.html:31 templates/js/part.js:181 -#: templates/js/part.js:305 templates/js/part.js:464 templates/js/stock.js:561 +#: templates/js/part.js:305 templates/js/part.js:465 templates/js/stock.js:566 #: templates/navbar.html:26 msgid "Stock" msgstr "" @@ -2360,11 +2413,25 @@ msgstr "" #: company/templates/company/manufacturer_part_suppliers.html:22 #: part/templates/part/manufacturer.html:24 part/templates/part/params.html:44 #: part/templates/part/related.html:44 part/templates/part/supplier.html:22 -#: stock/views.py:1002 users/models.py:187 +#: stock/views.py:1002 users/models.py:191 msgid "Delete" msgstr "" -#: company/templates/company/manufacturer_part_suppliers.html:48 +#: company/templates/company/manufacturer_part_suppliers.html:37 +#: part/templates/part/category_navbar.html:34 +#: part/templates/part/category_navbar.html:37 +#: part/templates/part/navbar.html:24 +msgid "Parameters" +msgstr "" + +#: company/templates/company/manufacturer_part_suppliers.html:43 +#: part/templates/part/params.html:18 +#: templates/InvenTree/settings/category.html:29 +#: templates/InvenTree/settings/part.html:48 +msgid "New Parameter" +msgstr "" + +#: company/templates/company/manufacturer_part_suppliers.html:83 #: part/templates/part/supplier.html:51 msgid "Create new supplier" msgstr "" @@ -2379,13 +2446,13 @@ msgstr "" msgid "Supplied Parts" msgstr "" -#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:33 +#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:35 #: stock/templates/stock/location.html:107 #: stock/templates/stock/location.html:122 #: stock/templates/stock/location.html:136 #: stock/templates/stock/location_navbar.html:22 #: stock/templates/stock/location_navbar.html:29 -#: templates/InvenTree/search.html:198 templates/js/stock.js:971 +#: templates/InvenTree/search.html:198 templates/js/stock.js:996 #: templates/stats.html:93 templates/stats.html:102 users/models.py:42 msgid "Stock Items" msgstr "" @@ -2396,7 +2463,7 @@ msgstr "" #: company/templates/company/sales_orders.html:11 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:13 -#: part/templates/part/navbar.html:104 part/templates/part/navbar.html:107 +#: part/templates/part/navbar.html:112 part/templates/part/navbar.html:115 #: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228 #: templates/InvenTree/search.html:345 #: templates/InvenTree/settings/tabs.html:40 templates/navbar.html:46 @@ -2408,7 +2475,7 @@ msgstr "" #: company/templates/company/purchase_orders.html:10 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:13 -#: part/templates/part/navbar.html:90 part/templates/part/navbar.html:93 +#: part/templates/part/navbar.html:92 part/templates/part/navbar.html:95 #: part/templates/part/orders.html:10 templates/InvenTree/index.html:205 #: templates/InvenTree/search.html:325 #: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:37 @@ -2442,7 +2509,7 @@ msgstr "" #: company/templates/company/supplier_part_base.html:7 #: company/templates/company/supplier_part_base.html:20 stock/models.py:416 -#: stock/templates/stock/item_base.html:369 templates/js/company.js:279 +#: stock/templates/stock/item_base.html:374 templates/js/company.js:380 msgid "Supplier Part" msgstr "" @@ -2490,8 +2557,8 @@ msgstr "" msgid "Pricing Information" msgstr "" -#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794 -#: part/templates/part/sale_prices.html:17 part/views.py:2733 +#: company/templates/company/supplier_part_pricing.html:19 company/views.py:855 +#: part/templates/part/sale_prices.html:17 part/views.py:2751 msgid "Add Price Break" msgstr "" @@ -2510,8 +2577,8 @@ msgstr "" msgid "Delete price break" msgstr "" -#: company/views.py:70 part/templates/part/navbar.html:78 -#: part/templates/part/navbar.html:81 templates/InvenTree/search.html:306 +#: company/views.py:70 part/templates/part/navbar.html:80 +#: part/templates/part/navbar.html:83 templates/InvenTree/search.html:306 #: templates/navbar.html:36 msgid "Manufacturers" msgstr "" @@ -2533,20 +2600,20 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:169 part/views.py:937 +#: company/views.py:169 part/views.py:948 msgid "Download Image" msgstr "" -#: company/views.py:198 part/views.py:969 +#: company/views.py:198 part/views.py:980 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:205 part/views.py:976 +#: company/views.py:205 part/views.py:987 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:214 part/views.py:985 +#: company/views.py:214 part/views.py:996 msgid "Supplied URL is not a valid image file" msgstr "" @@ -2594,27 +2661,35 @@ msgstr "" msgid "Delete Manufacturer Part" msgstr "" -#: company/views.py:528 +#: company/views.py:514 +msgid "Add Manufacturer Part Parameter" +msgstr "" + +#: company/views.py:548 +msgid "Edit Manufacturer Part Parameter" +msgstr "" + +#: company/views.py:588 msgid "Edit Supplier Part" msgstr "" -#: company/views.py:578 templates/js/stock.js:1294 +#: company/views.py:639 templates/js/stock.js:1319 msgid "Create new Supplier Part" msgstr "" -#: company/views.py:722 +#: company/views.py:783 msgid "Delete Supplier Part" msgstr "" -#: company/views.py:799 part/views.py:2737 +#: company/views.py:860 part/views.py:2755 msgid "Added new price break" msgstr "" -#: company/views.py:855 part/views.py:2781 +#: company/views.py:916 part/views.py:2799 msgid "Edit Price Break" msgstr "" -#: company/views.py:870 part/views.py:2795 +#: company/views.py:931 part/views.py:2813 msgid "Delete Price Break" msgstr "" @@ -2638,7 +2713,7 @@ msgstr "" msgid "Label template file" msgstr "" -#: label/models.py:124 report/models.py:274 +#: label/models.py:124 report/models.py:297 msgid "Enabled" msgstr "" @@ -2662,7 +2737,7 @@ msgstr "" msgid "Label height, specified in mm" msgstr "" -#: label/models.py:144 +#: label/models.py:144 report/models.py:290 msgid "Filename Pattern" msgstr "" @@ -2674,8 +2749,8 @@ msgstr "" msgid "Query filters (comma-separated list of key=value pairs" msgstr "" -#: label/models.py:245 label/models.py:298 report/models.py:294 -#: report/models.py:415 report/models.py:449 +#: label/models.py:245 label/models.py:298 report/models.py:317 +#: report/models.py:440 report/models.py:474 msgid "Filters" msgstr "" @@ -2696,237 +2771,239 @@ msgstr "" msgid "Ship order" msgstr "" -#: order/forms.py:82 +#: order/forms.py:86 msgid "Receive parts to this location" msgstr "" -#: order/forms.py:103 +#: order/forms.py:108 msgid "Purchase Order reference" msgstr "" -#: order/forms.py:110 +#: order/forms.py:115 msgid "Target date for order delivery. Order will be overdue after this date." msgstr "" -#: order/forms.py:138 +#: order/forms.py:143 msgid "Enter sales order number" msgstr "" -#: order/forms.py:145 order/models.py:475 +#: order/forms.py:150 order/models.py:476 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/forms.py:236 +#: order/forms.py:242 msgid "Enter stock item serial numbers" msgstr "" -#: order/forms.py:242 +#: order/forms.py:248 msgid "Enter quantity of stock items" msgstr "" -#: order/models.py:101 +#: order/models.py:102 msgid "Order reference" msgstr "" -#: order/models.py:103 +#: order/models.py:104 msgid "Order description" msgstr "" -#: order/models.py:105 +#: order/models.py:106 msgid "Link to external page" msgstr "" -#: order/models.py:113 part/templates/part/detail.html:132 +#: order/models.py:114 part/templates/part/detail.html:132 msgid "Created By" msgstr "" -#: order/models.py:120 +#: order/models.py:121 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:125 +#: order/models.py:126 msgid "Order notes" msgstr "" -#: order/models.py:184 order/models.py:468 +#: order/models.py:185 order/models.py:469 msgid "Purchase order status" msgstr "" -#: order/models.py:193 +#: order/models.py:194 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:196 order/templates/order/order_base.html:98 +#: order/models.py:197 order/templates/order/order_base.html:98 #: templates/js/order.js:179 msgid "Supplier Reference" msgstr "" -#: order/models.py:196 +#: order/models.py:197 msgid "Supplier order reference code" msgstr "" -#: order/models.py:203 +#: order/models.py:204 msgid "received by" msgstr "" -#: order/models.py:208 +#: order/models.py:209 msgid "Issue Date" msgstr "" -#: order/models.py:209 +#: order/models.py:210 msgid "Date order was issued" msgstr "" -#: order/models.py:214 +#: order/models.py:215 msgid "Target Delivery Date" msgstr "" -#: order/models.py:215 +#: order/models.py:216 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:221 +#: order/models.py:222 msgid "Date order was completed" msgstr "" -#: order/models.py:245 part/views.py:1675 stock/models.py:304 +#: order/models.py:246 part/views.py:1686 stock/models.py:304 #: stock/models.py:1020 msgid "Quantity must be greater than zero" msgstr "" -#: order/models.py:250 +#: order/models.py:251 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:348 +#: order/models.py:349 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:352 +#: order/models.py:353 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:354 +#: order/models.py:355 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:464 +#: order/models.py:465 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:470 +#: order/models.py:471 msgid "Customer Reference " msgstr "" -#: order/models.py:470 +#: order/models.py:471 msgid "Customer order reference code" msgstr "" -#: order/models.py:478 templates/js/order.js:303 +#: order/models.py:479 templates/js/order.js:303 msgid "Shipment Date" msgstr "" -#: order/models.py:485 +#: order/models.py:486 msgid "shipped by" msgstr "" -#: order/models.py:529 +#: order/models.py:530 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:616 +#: order/models.py:617 msgid "Item quantity" msgstr "" -#: order/models.py:618 +#: order/models.py:619 msgid "Line item reference" msgstr "" -#: order/models.py:620 +#: order/models.py:621 msgid "Line item notes" msgstr "" -#: order/models.py:646 order/models.py:691 -#: part/templates/part/allocation.html:17 -#: part/templates/part/allocation.html:45 +#: order/models.py:647 order/models.py:715 templates/js/order.js:353 msgid "Order" msgstr "" -#: order/models.py:647 order/templates/order/order_base.html:9 +#: order/models.py:648 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:324 templates/js/order.js:148 -#: templates/js/stock.js:1053 +#: templates/js/stock.js:669 templates/js/stock.js:1078 msgid "Purchase Order" msgstr "" -#: order/models.py:661 +#: order/models.py:662 msgid "Supplier part" msgstr "" -#: order/models.py:664 order/templates/order/order_base.html:131 +#: order/models.py:665 order/templates/order/order_base.html:131 #: order/templates/order/purchase_order_detail.html:219 #: order/templates/order/receive_parts.html:22 #: order/templates/order/sales_order_base.html:133 msgid "Received" msgstr "" -#: order/models.py:664 +#: order/models.py:665 msgid "Number of items received" msgstr "" -#: order/models.py:671 stock/models.py:542 -#: stock/templates/stock/item_base.html:331 templates/js/stock.js:665 +#: order/models.py:672 stock/models.py:542 +#: stock/templates/stock/item_base.html:331 templates/js/stock.js:690 msgid "Purchase Price" msgstr "" -#: order/models.py:672 +#: order/models.py:673 msgid "Unit purchase price" msgstr "" -#: order/models.py:700 part/templates/part/navbar.html:101 -#: part/templates/part/order_prices.html:82 -#: part/templates/part/part_pricing.html:78 +#: order/models.py:681 +msgid "Where does the Purchaser want this item to be stored?" +msgstr "" + +#: order/models.py:724 part/templates/part/navbar.html:109 +#: part/templates/part/order_prices.html:107 +#: part/templates/part/part_pricing.html:97 msgid "Sale Price" msgstr "" -#: order/models.py:701 +#: order/models.py:725 msgid "Unit sale price" msgstr "" -#: order/models.py:776 order/models.py:778 +#: order/models.py:800 order/models.py:802 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:782 +#: order/models.py:806 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:784 +#: order/models.py:808 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:787 +#: order/models.py:811 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:797 +#: order/models.py:821 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:802 +#: order/models.py:826 msgid "Line" msgstr "" -#: order/models.py:813 +#: order/models.py:837 msgid "Item" msgstr "" -#: order/models.py:814 +#: order/models.py:838 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:817 +#: order/models.py:841 msgid "Enter stock allocation quantity" msgstr "" @@ -2955,7 +3032,7 @@ msgid "Export order to file" msgstr "" #: order/templates/order/order_base.html:72 -#: order/templates/order/po_navbar.html:11 +#: order/templates/order/po_navbar.html:12 msgid "Purchase Order Details" msgstr "" @@ -2977,8 +3054,8 @@ msgstr "" #: order/templates/order/order_base.html:180 #: order/templates/order/purchase_order_detail.html:100 #: part/templates/part/category.html:208 part/templates/part/category.html:250 -#: stock/templates/stock/location.html:191 templates/js/stock.js:711 -#: templates/js/stock.js:1299 +#: stock/templates/stock/location.html:191 templates/js/stock.js:736 +#: templates/js/stock.js:1324 msgid "New Location" msgstr "" @@ -3081,28 +3158,32 @@ msgstr "" msgid "Order is already processed. Files cannot be uploaded." msgstr "" -#: order/templates/order/order_wizard/select_parts.html:9 +#: order/templates/order/order_wizard/select_parts.html:11 msgid "Step 1 of 2 - Select Part Suppliers" msgstr "" -#: order/templates/order/order_wizard/select_parts.html:14 +#: order/templates/order/order_wizard/select_parts.html:16 msgid "Select suppliers" msgstr "" -#: order/templates/order/order_wizard/select_parts.html:18 +#: order/templates/order/order_wizard/select_parts.html:20 msgid "No purchaseable parts selected" msgstr "" -#: order/templates/order/order_wizard/select_parts.html:31 +#: order/templates/order/order_wizard/select_parts.html:33 msgid "Select Supplier" msgstr "" #: order/templates/order/order_wizard/select_parts.html:57 +msgid "No price" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:65 #, python-format msgid "Select a supplier for %(name)s" msgstr "" -#: order/templates/order/order_wizard/select_parts.html:69 +#: order/templates/order/order_wizard/select_parts.html:77 #: part/templates/part/set_category.html:32 msgid "Remove part" msgstr "" @@ -3135,15 +3216,20 @@ msgid "Select a purchase order for %(name)s" msgstr "" #: order/templates/order/po_attachments.html:12 -#: order/templates/order/po_navbar.html:23 +#: order/templates/order/po_navbar.html:32 msgid "Purchase Order Attachments" msgstr "" -#: order/templates/order/po_navbar.html:17 +#: order/templates/order/po_lineitem_delete.html:5 +#: order/templates/order/so_lineitem_delete.html:5 +msgid "Are you sure you wish to delete this line item?" +msgstr "" + +#: order/templates/order/po_navbar.html:26 msgid "Received Stock Items" msgstr "" -#: order/templates/order/po_navbar.html:20 +#: order/templates/order/po_navbar.html:29 #: order/templates/order/po_received_items.html:12 msgid "Received Items" msgstr "" @@ -3153,8 +3239,8 @@ msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:24 -#: order/templates/order/sales_order_detail.html:22 order/views.py:1311 -#: order/views.py:1394 +#: order/templates/order/sales_order_detail.html:22 order/views.py:1321 +#: order/views.py:1404 msgid "Add Line Item" msgstr "" @@ -3162,25 +3248,31 @@ msgstr "" msgid "No line items found" msgstr "" +#: order/templates/order/purchase_order_detail.html:142 +#: order/templates/order/sales_order_detail.html:223 +msgid "Total" +msgstr "" + #: order/templates/order/purchase_order_detail.html:191 -#: order/templates/order/sales_order_detail.html:235 +#: order/templates/order/sales_order_detail.html:246 msgid "Unit Price" msgstr "" #: order/templates/order/purchase_order_detail.html:198 +#: order/templates/order/sales_order_detail.html:253 msgid "Total price" msgstr "" -#: order/templates/order/purchase_order_detail.html:251 -#: order/templates/order/sales_order_detail.html:328 +#: order/templates/order/purchase_order_detail.html:255 +#: order/templates/order/sales_order_detail.html:359 msgid "Edit line item" msgstr "" -#: order/templates/order/purchase_order_detail.html:252 +#: order/templates/order/purchase_order_detail.html:256 msgid "Delete line item" msgstr "" -#: order/templates/order/purchase_order_detail.html:257 +#: order/templates/order/purchase_order_detail.html:261 msgid "Receive line item" msgstr "" @@ -3201,7 +3293,7 @@ msgstr "" #: part/templates/part/category_navbar.html:29 #: part/templates/part/category_partlist.html:10 #: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114 -#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:665 +#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:666 #: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89 #: users/models.py:40 msgid "Parts" @@ -3216,7 +3308,7 @@ msgid "Order Code" msgstr "" #: order/templates/order/receive_parts.html:21 -#: part/templates/part/part_base.html:136 templates/js/part.js:480 +#: part/templates/part/part_base.html:136 templates/js/part.js:481 msgid "On Order" msgstr "" @@ -3224,11 +3316,11 @@ msgstr "" msgid "Receive" msgstr "" -#: order/templates/order/receive_parts.html:36 +#: order/templates/order/receive_parts.html:37 msgid "Error: Referenced part has been removed" msgstr "" -#: order/templates/order/receive_parts.html:57 +#: order/templates/order/receive_parts.html:61 msgid "Remove line" msgstr "" @@ -3265,17 +3357,17 @@ msgid "Sales Order Items" msgstr "" #: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:365 -#: templates/js/build.js:637 templates/js/build.js:1054 +#: templates/js/build.js:724 templates/js/build.js:1141 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:525 -#: templates/js/build.js:859 +#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:610 +#: templates/js/build.js:946 msgid "Edit stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:527 -#: templates/js/build.js:860 +#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:612 +#: templates/js/build.js:947 msgid "Delete stock allocation" msgstr "" @@ -3283,50 +3375,50 @@ msgstr "" msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:205 +#: order/templates/order/sales_order_detail.html:206 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:589 -#: templates/js/build.js:855 +#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:675 +#: templates/js/build.js:942 msgid "Allocated" msgstr "" -#: order/templates/order/sales_order_detail.html:245 +#: order/templates/order/sales_order_detail.html:276 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:282 +#: order/templates/order/sales_order_detail.html:313 msgid "PO" msgstr "" -#: order/templates/order/sales_order_detail.html:312 +#: order/templates/order/sales_order_detail.html:343 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:651 +#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:738 msgid "Allocate stock" msgstr "" -#: order/templates/order/sales_order_detail.html:318 +#: order/templates/order/sales_order_detail.html:349 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:644 -#: templates/js/build.js:1062 +#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:731 +#: templates/js/build.js:1149 msgid "Build stock" msgstr "" -#: order/templates/order/sales_order_detail.html:325 -#: order/templates/order/sales_order_detail.html:434 +#: order/templates/order/sales_order_detail.html:356 +#: order/templates/order/sales_order_detail.html:465 msgid "Calculate price" msgstr "" -#: order/templates/order/sales_order_detail.html:329 +#: order/templates/order/sales_order_detail.html:360 msgid "Delete line item " msgstr "" -#: order/templates/order/sales_order_detail.html:440 +#: order/templates/order/sales_order_detail.html:471 msgid "Update Unit Price" msgstr "" @@ -3367,10 +3459,6 @@ msgstr "" msgid "Sales Order Attachments" msgstr "" -#: order/templates/order/so_lineitem_delete.html:5 -msgid "Are you sure you wish to delete this line item?" -msgstr "" - #: order/views.py:104 msgid "Add Purchase Order Attachment" msgstr "" @@ -3471,90 +3559,94 @@ msgstr "" msgid "No lines specified" msgstr "" -#: order/views.py:1260 +#: order/views.py:1012 +msgid "Update prices" +msgstr "" + +#: order/views.py:1270 #, python-brace-format msgid "Ordered {n} parts" msgstr "" -#: order/views.py:1320 +#: order/views.py:1330 msgid "Supplier part must be specified" msgstr "" -#: order/views.py:1326 +#: order/views.py:1336 msgid "Supplier must match for Part and Order" msgstr "" -#: order/views.py:1457 order/views.py:1475 +#: order/views.py:1467 order/views.py:1485 msgid "Edit Line Item" msgstr "" -#: order/views.py:1491 order/views.py:1503 +#: order/views.py:1501 order/views.py:1513 msgid "Delete Line Item" msgstr "" -#: order/views.py:1496 order/views.py:1508 +#: order/views.py:1506 order/views.py:1518 msgid "Deleted line item" msgstr "" -#: order/views.py:1521 +#: order/views.py:1531 msgid "Allocate Serial Numbers" msgstr "" -#: order/views.py:1566 +#: order/views.py:1576 #, python-brace-format msgid "Allocated {n} items" msgstr "" -#: order/views.py:1582 +#: order/views.py:1592 msgid "Select line item" msgstr "" -#: order/views.py:1613 -#, python-brace-format -msgid "No matching item for serial {serial}" -msgstr "" - #: order/views.py:1623 #, python-brace-format +msgid "No matching item for serial {serial}" +msgstr "" + +#: order/views.py:1633 +#, python-brace-format msgid "{serial} is not in stock" msgstr "" -#: order/views.py:1631 +#: order/views.py:1641 #, python-brace-format msgid "{serial} already allocated to an order" msgstr "" -#: order/views.py:1685 +#: order/views.py:1695 msgid "Allocate Stock to Order" msgstr "" -#: order/views.py:1759 +#: order/views.py:1769 msgid "Edit Allocation Quantity" msgstr "" -#: order/views.py:1774 +#: order/views.py:1784 msgid "Remove allocation" msgstr "" -#: order/views.py:1846 +#: order/views.py:1856 msgid "Sales order not found" msgstr "" -#: order/views.py:1852 +#: order/views.py:1862 msgid "Price not found" msgstr "" -#: order/views.py:1855 +#: order/views.py:1865 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:1860 +#: order/views.py:1870 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/bom.py:138 part/models.py:72 part/models.py:762 +#: part/bom.py:138 part/models.py:72 part/models.py:747 #: part/templates/part/category.html:66 part/templates/part/detail.html:90 msgid "Default Location" msgstr "" @@ -3632,7 +3724,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:122 part/models.py:2168 +#: part/forms.py:122 part/models.py:2191 msgid "Parent Part" msgstr "" @@ -3708,7 +3800,7 @@ msgstr "" msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:344 part/models.py:2263 +#: part/forms.py:344 part/models.py:2286 msgid "Sub part" msgstr "" @@ -3728,7 +3820,7 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:82 part/models.py:2214 +#: part/models.py:82 part/models.py:2237 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -3739,365 +3831,360 @@ msgstr "" msgid "Part Categories" msgstr "" -#: part/models.py:446 part/models.py:458 +#: part/models.py:448 part/models.py:460 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:555 +#: part/models.py:557 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:559 +#: part/models.py:561 msgid "Next available serial number is" msgstr "" -#: part/models.py:564 +#: part/models.py:566 msgid "Most recent serial number is" msgstr "" -#: part/models.py:643 +#: part/models.py:645 msgid "Duplicate IPN not allowed in part settings" msgstr "IPN dupliqué non autorisé dans les paramètres de la pièce" -#: part/models.py:654 -msgid "Part must be unique for name, IPN and revision" -msgstr "La pièce doit être unique par son nom, son IPN et sa révision" - -#: part/models.py:685 part/templates/part/detail.html:22 +#: part/models.py:670 part/templates/part/detail.html:22 msgid "Part name" msgstr "" -#: part/models.py:692 +#: part/models.py:677 msgid "Is Template" msgstr "" -#: part/models.py:693 +#: part/models.py:678 msgid "Is this part a template part?" msgstr "" -#: part/models.py:704 +#: part/models.py:689 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:705 part/templates/part/detail.html:60 +#: part/models.py:690 part/templates/part/detail.html:60 msgid "Variant Of" msgstr "" -#: part/models.py:711 +#: part/models.py:696 msgid "Part description" msgstr "" -#: part/models.py:716 part/templates/part/category.html:73 +#: part/models.py:701 part/templates/part/category.html:73 #: part/templates/part/detail.html:67 msgid "Keywords" msgstr "" -#: part/models.py:717 +#: part/models.py:702 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:724 part/models.py:2213 part/templates/part/detail.html:73 -#: part/templates/part/set_category.html:15 templates/js/part.js:451 +#: part/models.py:709 part/models.py:2236 part/templates/part/detail.html:73 +#: part/templates/part/set_category.html:15 templates/js/part.js:452 msgid "Category" msgstr "" -#: part/models.py:725 +#: part/models.py:710 msgid "Part category" msgstr "" -#: part/models.py:730 part/templates/part/detail.html:28 +#: part/models.py:715 part/templates/part/detail.html:28 #: part/templates/part/part_base.html:87 templates/js/part.js:169 #: templates/js/part.js:296 msgid "IPN" msgstr "IPN" -#: part/models.py:731 +#: part/models.py:716 msgid "Internal Part Number" msgstr "" -#: part/models.py:737 +#: part/models.py:722 msgid "Part revision or version number" msgstr "" -#: part/models.py:738 part/templates/part/detail.html:35 report/models.py:198 +#: part/models.py:723 part/templates/part/detail.html:35 report/models.py:199 #: templates/js/part.js:173 msgid "Revision" msgstr "" -#: part/models.py:760 +#: part/models.py:745 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:807 part/templates/part/detail.html:97 +#: part/models.py:792 part/templates/part/detail.html:97 msgid "Default Supplier" msgstr "" -#: part/models.py:808 +#: part/models.py:793 msgid "Default supplier part" msgstr "" -#: part/models.py:815 +#: part/models.py:800 msgid "Default Expiry" msgstr "" -#: part/models.py:816 +#: part/models.py:801 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:821 part/templates/part/detail.html:113 +#: part/models.py:806 part/templates/part/detail.html:113 msgid "Minimum Stock" msgstr "" -#: part/models.py:822 +#: part/models.py:807 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:828 part/models.py:2142 part/templates/part/detail.html:106 -#: part/templates/part/params.html:29 -msgid "Units" -msgstr "" - -#: part/models.py:829 +#: part/models.py:814 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:835 +#: part/models.py:820 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:841 +#: part/models.py:826 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:847 +#: part/models.py:832 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:852 +#: part/models.py:837 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:857 +#: part/models.py:842 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:861 part/templates/part/detail.html:227 +#: part/models.py:846 part/templates/part/detail.html:227 #: templates/js/table_filters.js:21 templates/js/table_filters.js:65 #: templates/js/table_filters.js:241 templates/js/table_filters.js:310 msgid "Active" msgstr "" -#: part/models.py:862 +#: part/models.py:847 msgid "Is this part active?" msgstr "" -#: part/models.py:867 +#: part/models.py:852 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:872 +#: part/models.py:857 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:875 +#: part/models.py:860 msgid "BOM checksum" msgstr "" -#: part/models.py:875 +#: part/models.py:860 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:878 +#: part/models.py:863 msgid "BOM checked by" msgstr "" -#: part/models.py:880 +#: part/models.py:865 msgid "BOM checked date" msgstr "" -#: part/models.py:884 +#: part/models.py:869 msgid "Creation User" msgstr "" -#: part/models.py:1616 +#: part/models.py:1608 msgid "Sell multiple" msgstr "" -#: part/models.py:2040 +#: part/models.py:2063 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2057 +#: part/models.py:2080 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2077 templates/js/part.js:716 templates/js/stock.js:117 +#: part/models.py:2100 templates/js/part.js:717 templates/js/stock.js:117 msgid "Test Name" msgstr "" -#: part/models.py:2078 +#: part/models.py:2101 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2083 +#: part/models.py:2106 msgid "Test Description" msgstr "" -#: part/models.py:2084 +#: part/models.py:2107 msgid "Enter description for this test" msgstr "" -#: part/models.py:2089 templates/js/part.js:725 +#: part/models.py:2112 templates/js/part.js:726 #: templates/js/table_filters.js:227 msgid "Required" msgstr "" -#: part/models.py:2090 +#: part/models.py:2113 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2095 templates/js/part.js:733 +#: part/models.py:2118 templates/js/part.js:734 msgid "Requires Value" msgstr "" -#: part/models.py:2096 +#: part/models.py:2119 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2101 templates/js/part.js:740 +#: part/models.py:2124 templates/js/part.js:741 msgid "Requires Attachment" msgstr "" -#: part/models.py:2102 +#: part/models.py:2125 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2135 +#: part/models.py:2158 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2140 +#: part/models.py:2163 msgid "Parameter Name" msgstr "" -#: part/models.py:2142 +#: part/models.py:2165 msgid "Parameter Units" msgstr "" -#: part/models.py:2170 part/models.py:2219 part/models.py:2220 +#: part/models.py:2193 part/models.py:2242 part/models.py:2243 #: templates/InvenTree/settings/category.html:62 msgid "Parameter Template" msgstr "" -#: part/models.py:2172 +#: part/models.py:2195 msgid "Data" msgstr "" -#: part/models.py:2172 +#: part/models.py:2195 msgid "Parameter Value" msgstr "" -#: part/models.py:2224 templates/InvenTree/settings/category.html:67 +#: part/models.py:2247 templates/InvenTree/settings/category.html:67 msgid "Default Value" msgstr "" -#: part/models.py:2225 +#: part/models.py:2248 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2255 +#: part/models.py:2278 msgid "Select parent part" msgstr "" -#: part/models.py:2264 +#: part/models.py:2287 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2270 +#: part/models.py:2293 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2272 templates/js/bom.js:216 templates/js/bom.js:285 +#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:285 msgid "Optional" msgstr "" -#: part/models.py:2272 +#: part/models.py:2295 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2275 +#: part/models.py:2298 msgid "Overage" msgstr "" -#: part/models.py:2276 +#: part/models.py:2299 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2279 +#: part/models.py:2302 msgid "BOM item reference" msgstr "" -#: part/models.py:2282 +#: part/models.py:2305 msgid "BOM item notes" msgstr "" -#: part/models.py:2284 +#: part/models.py:2307 msgid "Checksum" msgstr "" -#: part/models.py:2284 +#: part/models.py:2307 msgid "BOM line checksum" msgstr "" -#: part/models.py:2288 templates/js/bom.js:302 templates/js/bom.js:309 +#: part/models.py:2311 templates/js/bom.js:302 templates/js/bom.js:309 #: templates/js/table_filters.js:51 msgid "Inherited" msgstr "" -#: part/models.py:2289 +#: part/models.py:2312 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2294 templates/js/bom.js:294 +#: part/models.py:2317 templates/js/bom.js:294 msgid "Allow Variants" msgstr "" -#: part/models.py:2295 +#: part/models.py:2318 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2371 part/views.py:1681 part/views.py:1733 +#: part/models.py:2394 part/views.py:1692 part/views.py:1744 #: stock/models.py:294 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2380 part/models.py:2382 +#: part/models.py:2403 part/models.py:2405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2385 +#: part/models.py:2408 msgid "BOM Item" msgstr "" -#: part/models.py:2502 +#: part/models.py:2527 msgid "Part 1" msgstr "" -#: part/models.py:2506 +#: part/models.py:2531 msgid "Part 2" msgstr "" -#: part/models.py:2506 +#: part/models.py:2531 msgid "Select Related Part" msgstr "" -#: part/models.py:2538 +#: part/models.py:2563 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" #: part/templates/part/allocation.html:11 -msgid "Part Stock Allocations" +msgid "Build Order Allocations" +msgstr "" + +#: part/templates/part/allocation.html:24 +msgid "Sales Order Allocations" msgstr "" #: part/templates/part/attachments.html:10 @@ -4112,8 +4199,8 @@ msgstr "" msgid "Deleting this entry will remove the BOM row from the following part" msgstr "" -#: part/templates/part/bom.html:10 part/templates/part/navbar.html:48 -#: part/templates/part/navbar.html:51 +#: part/templates/part/bom.html:10 part/templates/part/navbar.html:50 +#: part/templates/part/navbar.html:53 msgid "Bill of Materials" msgstr "" @@ -4160,7 +4247,7 @@ msgstr "" msgid "Validate Bill of Materials" msgstr "" -#: part/templates/part/bom.html:61 part/views.py:1976 +#: part/templates/part/bom.html:61 part/views.py:1987 msgid "Export Bill of Materials" msgstr "" @@ -4177,7 +4264,7 @@ msgid "All selected BOM items will be deleted" msgstr "" #: part/templates/part/bom.html:160 part/views.py:585 -#: templates/js/stock.js:1288 +#: templates/js/stock.js:1313 msgid "Create New Part" msgstr "" @@ -4258,7 +4345,7 @@ msgstr "" msgid "All parts" msgstr "" -#: part/templates/part/category.html:29 part/views.py:2379 +#: part/templates/part/category.html:29 part/views.py:2397 msgid "Create new part category" msgstr "" @@ -4318,7 +4405,7 @@ msgid "View grid display" msgstr "" #: part/templates/part/category.html:209 -#: stock/templates/stock/location.html:192 templates/js/stock.js:712 +#: stock/templates/stock/location.html:192 templates/js/stock.js:737 msgid "Create new location" msgstr "" @@ -4373,14 +4460,8 @@ msgstr "" msgid "If this category is deleted, these parts will be moved to the top-level category Teile" msgstr "" -#: part/templates/part/category_navbar.html:34 -#: part/templates/part/category_navbar.html:37 -#: part/templates/part/navbar.html:22 -msgid "Parameters" -msgstr "" - #: part/templates/part/category_parametric.html:10 -#: part/templates/part/navbar.html:19 part/templates/part/params.html:10 +#: part/templates/part/navbar.html:21 part/templates/part/params.html:10 msgid "Part Parameters" msgstr "" @@ -4408,7 +4489,7 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:11 part/templates/part/navbar.html:11 +#: part/templates/part/detail.html:11 part/templates/part/navbar.html:13 msgid "Part Details" msgstr "" @@ -4488,6 +4569,36 @@ msgstr "" msgid "Part is not active" msgstr "" +#: part/templates/part/internal_prices.html:11 +#: part/templates/part/navbar.html:100 +msgid "Internal Price Information" +msgstr "" + +#: part/templates/part/internal_prices.html:19 part/views.py:2822 +msgid "Add Internal Price Break" +msgstr "" + +#: part/templates/part/internal_prices.html:28 templates/403.html:5 +#: templates/403.html:11 +msgid "Permission Denied" +msgstr "" + +#: part/templates/part/internal_prices.html:31 templates/403.html:14 +msgid "You do not have permission to view this page." +msgstr "" + +#: part/templates/part/internal_prices.html:59 +msgid "No internal price break information found" +msgstr "" + +#: part/templates/part/internal_prices.html:110 +msgid "Edit internal price break" +msgstr "" + +#: part/templates/part/internal_prices.html:111 +msgid "Delete internal price break" +msgstr "" + #: part/templates/part/manufacturer.html:11 msgid "Part Manufacturers" msgstr "" @@ -4501,127 +4612,141 @@ msgstr "" msgid "Create new manufacturer" msgstr "" -#: part/templates/part/navbar.html:26 part/templates/part/variants.html:11 +#: part/templates/part/navbar.html:28 part/templates/part/variants.html:11 msgid "Part Variants" msgstr "" -#: part/templates/part/navbar.html:29 +#: part/templates/part/navbar.html:31 msgid "Variants" msgstr "" -#: part/templates/part/navbar.html:40 +#: part/templates/part/navbar.html:42 msgid "Allocated Stock" msgstr "" -#: part/templates/part/navbar.html:43 +#: part/templates/part/navbar.html:45 msgid "Allocations" msgstr "" -#: part/templates/part/navbar.html:64 part/templates/part/navbar.html:67 +#: part/templates/part/navbar.html:66 part/templates/part/navbar.html:69 msgid "Used In" msgstr "" -#: part/templates/part/navbar.html:72 part/templates/part/order_prices.html:12 +#: part/templates/part/navbar.html:74 part/templates/part/order_prices.html:12 msgid "Order Price Information" msgstr "" -#: part/templates/part/navbar.html:75 +#: part/templates/part/navbar.html:77 msgid "Order Price" msgstr "" -#: part/templates/part/navbar.html:98 +#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:93 +#: part/templates/part/part_pricing.html:82 +msgid "Internal Price" +msgstr "" + +#: part/templates/part/navbar.html:106 msgid "Sales Price Information" msgstr "" -#: part/templates/part/navbar.html:112 part/templates/part/part_tests.html:10 +#: part/templates/part/navbar.html:120 part/templates/part/part_tests.html:10 msgid "Part Test Templates" msgstr "" -#: part/templates/part/navbar.html:115 stock/templates/stock/item_base.html:409 +#: part/templates/part/navbar.html:123 stock/templates/stock/item_base.html:414 msgid "Tests" msgstr "" -#: part/templates/part/navbar.html:119 part/templates/part/navbar.html:122 +#: part/templates/part/navbar.html:127 part/templates/part/navbar.html:130 #: part/templates/part/related.html:10 msgid "Related Parts" msgstr "" -#: part/templates/part/navbar.html:131 part/templates/part/notes.html:12 +#: part/templates/part/navbar.html:139 part/templates/part/notes.html:12 msgid "Part Notes" msgstr "" -#: part/templates/part/order_prices.html:21 +#: part/templates/part/order_prices.html:24 +#: part/templates/part/part_base.html:282 +msgid "Calculate" +msgstr "" + +#: part/templates/part/order_prices.html:31 msgid "Pricing ranges" msgstr "" -#: part/templates/part/order_prices.html:26 -#: part/templates/part/part_pricing.html:19 +#: part/templates/part/order_prices.html:36 +#: part/templates/part/part_pricing.html:22 msgid "Supplier Pricing" msgstr "" -#: part/templates/part/order_prices.html:27 -#: part/templates/part/order_prices.html:52 -#: part/templates/part/order_prices.html:83 -#: part/templates/part/part_pricing.html:23 -#: part/templates/part/part_pricing.html:49 -#: part/templates/part/part_pricing.html:81 +#: part/templates/part/order_prices.html:37 +#: part/templates/part/order_prices.html:62 +#: part/templates/part/order_prices.html:94 +#: part/templates/part/order_prices.html:108 +#: part/templates/part/part_pricing.html:26 +#: part/templates/part/part_pricing.html:52 +#: part/templates/part/part_pricing.html:85 +#: part/templates/part/part_pricing.html:100 msgid "Unit Cost" msgstr "" -#: part/templates/part/order_prices.html:34 -#: part/templates/part/order_prices.html:59 -#: part/templates/part/order_prices.html:88 -#: part/templates/part/part_pricing.html:29 -#: part/templates/part/part_pricing.html:55 -#: part/templates/part/part_pricing.html:85 +#: part/templates/part/order_prices.html:44 +#: part/templates/part/order_prices.html:69 +#: part/templates/part/order_prices.html:99 +#: part/templates/part/order_prices.html:113 +#: part/templates/part/part_pricing.html:32 +#: part/templates/part/part_pricing.html:58 +#: part/templates/part/part_pricing.html:89 +#: part/templates/part/part_pricing.html:104 msgid "Total Cost" msgstr "" -#: part/templates/part/order_prices.html:42 -#: part/templates/part/part_pricing.html:37 +#: part/templates/part/order_prices.html:52 +#: part/templates/part/part_pricing.html:40 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/order_prices.html:51 -#: part/templates/part/order_prices.html:103 -#: part/templates/part/part_pricing.html:45 +#: part/templates/part/order_prices.html:61 +#: part/templates/part/order_prices.html:128 +#: part/templates/part/part_pricing.html:48 msgid "BOM Pricing" msgstr "" -#: part/templates/part/order_prices.html:67 -#: part/templates/part/part_pricing.html:63 +#: part/templates/part/order_prices.html:77 +#: part/templates/part/part_pricing.html:66 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/order_prices.html:74 -#: part/templates/part/part_pricing.html:70 +#: part/templates/part/order_prices.html:84 +#: part/templates/part/part_pricing.html:73 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/order_prices.html:97 -#: part/templates/part/part_pricing.html:94 +#: part/templates/part/order_prices.html:122 +#: part/templates/part/part_pricing.html:113 msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/order_prices.html:113 +#: part/templates/part/order_prices.html:138 msgid "Stock Pricing" msgstr "" -#: part/templates/part/order_prices.html:121 +#: part/templates/part/order_prices.html:146 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/order_prices.html:140 +#: part/templates/part/order_prices.html:165 #, python-format msgid "Single Price - %(currency)s" msgstr "" -#: part/templates/part/order_prices.html:152 +#: part/templates/part/order_prices.html:177 #, python-format msgid "Single Price Difference - %(currency)s" msgstr "" -#: part/templates/part/order_prices.html:163 +#: part/templates/part/order_prices.html:189 #, python-format msgid "Part Single Price - %(currency)s" msgstr "" @@ -4630,19 +4755,6 @@ msgstr "" msgid "Add new parameter" msgstr "" -#: part/templates/part/params.html:18 -#: templates/InvenTree/settings/category.html:29 -#: templates/InvenTree/settings/part.html:44 -msgid "New Parameter" -msgstr "" - -#: part/templates/part/params.html:28 -#: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1756 templates/InvenTree/settings/header.html:8 -#: templates/js/stock.js:137 -msgid "Value" -msgstr "" - #: part/templates/part/params.html:41 templates/InvenTree/settings/user.html:19 msgid "Edit" msgstr "" @@ -4660,7 +4772,7 @@ msgid "Part List" msgstr "" #: part/templates/part/part_base.html:26 templates/js/company.js:156 -#: templates/js/company.js:254 templates/js/part.js:84 templates/js/part.js:161 +#: templates/js/company.js:355 templates/js/part.js:84 templates/js/part.js:161 msgid "Inactive" msgstr "" @@ -4740,14 +4852,10 @@ msgid "Can Build" msgstr "" #: part/templates/part/part_base.html:178 templates/js/part.js:312 -#: templates/js/part.js:484 +#: templates/js/part.js:485 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:265 -msgid "Calculate" -msgstr "" - #: part/templates/part/part_tests.html:17 msgid "Add Test Template" msgstr "" @@ -4816,7 +4924,7 @@ msgid "Showing stock for all variants of %(full_name)s" msgstr "" #: part/templates/part/stock_count.html:7 templates/js/bom.js:239 -#: templates/js/part.js:302 templates/js/part.js:488 +#: templates/js/part.js:302 templates/js/part.js:489 msgid "No Stock" msgstr "" @@ -4853,7 +4961,7 @@ msgstr "" msgid "New Variant" msgstr "" -#: part/templatetags/inventree_extras.py:98 +#: part/templatetags/inventree_extras.py:99 msgid "Unknown database" msgstr "" @@ -4922,227 +5030,239 @@ msgstr "" msgid "Created new part" msgstr "" -#: part/views.py:914 +#: part/views.py:925 msgid "Part QR Code" msgstr "" -#: part/views.py:1016 +#: part/views.py:1027 msgid "Upload Part Image" msgstr "" -#: part/views.py:1022 part/views.py:1057 +#: part/views.py:1033 part/views.py:1068 msgid "Updated part image" msgstr "" -#: part/views.py:1031 +#: part/views.py:1042 msgid "Select Part Image" msgstr "" -#: part/views.py:1060 +#: part/views.py:1071 msgid "Part image not found" msgstr "" -#: part/views.py:1071 +#: part/views.py:1082 msgid "Edit Part Properties" msgstr "" -#: part/views.py:1106 +#: part/views.py:1117 msgid "Duplicate BOM" msgstr "" -#: part/views.py:1136 +#: part/views.py:1147 msgid "Confirm duplication of BOM from parent" msgstr "" -#: part/views.py:1157 +#: part/views.py:1168 msgid "Validate BOM" msgstr "" -#: part/views.py:1178 +#: part/views.py:1189 msgid "Confirm that the BOM is valid" msgstr "" -#: part/views.py:1189 +#: part/views.py:1200 msgid "Validated Bill of Materials" msgstr "" -#: part/views.py:1323 +#: part/views.py:1334 msgid "No BOM file provided" msgstr "" -#: part/views.py:1684 +#: part/views.py:1695 msgid "Enter a valid quantity" msgstr "" -#: part/views.py:1709 part/views.py:1712 +#: part/views.py:1720 part/views.py:1723 msgid "Select valid part" msgstr "" -#: part/views.py:1718 +#: part/views.py:1729 msgid "Duplicate part selected" msgstr "" -#: part/views.py:1756 +#: part/views.py:1767 msgid "Select a part" msgstr "" -#: part/views.py:1762 +#: part/views.py:1773 msgid "Selected part creates a circular BOM" msgstr "" -#: part/views.py:1766 +#: part/views.py:1777 msgid "Specify quantity" msgstr "" -#: part/views.py:2028 +#: part/views.py:2039 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:2035 +#: part/views.py:2046 msgid "Part was deleted" msgstr "" -#: part/views.py:2044 +#: part/views.py:2055 msgid "Part Pricing" msgstr "" -#: part/views.py:2178 +#: part/views.py:2196 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:2188 +#: part/views.py:2206 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:2195 +#: part/views.py:2213 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:2203 +#: part/views.py:2221 msgid "Create Part Parameter" msgstr "" -#: part/views.py:2253 +#: part/views.py:2271 msgid "Edit Part Parameter" msgstr "" -#: part/views.py:2267 +#: part/views.py:2285 msgid "Delete Part Parameter" msgstr "" -#: part/views.py:2327 +#: part/views.py:2345 msgid "Edit Part Category" msgstr "" -#: part/views.py:2365 +#: part/views.py:2383 msgid "Delete Part Category" msgstr "" -#: part/views.py:2371 +#: part/views.py:2389 msgid "Part category was deleted" msgstr "" -#: part/views.py:2423 +#: part/views.py:2441 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:2524 +#: part/views.py:2542 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:2580 +#: part/views.py:2598 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:2599 +#: part/views.py:2617 msgid "Create BOM Item" msgstr "" -#: part/views.py:2669 +#: part/views.py:2687 msgid "Edit BOM item" msgstr "" -#: part/views.py:2725 +#: part/views.py:2743 msgid "Confim BOM item deletion" msgstr "" -#: report/models.py:180 +#: part/views.py:2831 +msgid "Edit Internal Price Break" +msgstr "" + +#: part/views.py:2839 +msgid "Delete Internal Price Break" +msgstr "" + +#: report/models.py:181 msgid "Template name" msgstr "" -#: report/models.py:186 +#: report/models.py:187 msgid "Report template file" msgstr "" -#: report/models.py:193 +#: report/models.py:194 msgid "Report template description" msgstr "" -#: report/models.py:199 +#: report/models.py:200 msgid "Report revision number (auto-increments)" msgstr "" -#: report/models.py:275 +#: report/models.py:291 +msgid "Pattern for generating report filenames" +msgstr "" + +#: report/models.py:298 msgid "Report template is enabled" msgstr "" -#: report/models.py:295 +#: report/models.py:318 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:303 +#: report/models.py:326 msgid "Include Installed Tests" msgstr "" -#: report/models.py:304 +#: report/models.py:327 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:347 +#: report/models.py:371 msgid "Build Filters" msgstr "" -#: report/models.py:348 +#: report/models.py:372 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:385 +#: report/models.py:410 msgid "Part Filters" msgstr "" -#: report/models.py:386 +#: report/models.py:411 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:416 +#: report/models.py:441 msgid "Purchase order query filters" msgstr "" -#: report/models.py:450 +#: report/models.py:475 msgid "Sales order query filters" msgstr "" -#: report/models.py:500 +#: report/models.py:525 msgid "Snippet" msgstr "" -#: report/models.py:501 +#: report/models.py:526 msgid "Report snippet file" msgstr "" -#: report/models.py:505 +#: report/models.py:530 msgid "Snippet file description" msgstr "" -#: report/models.py:540 +#: report/models.py:565 msgid "Asset" msgstr "" -#: report/models.py:541 +#: report/models.py:566 msgid "Report asset file" msgstr "" -#: report/models.py:544 +#: report/models.py:569 msgid "Asset file description" msgstr "" @@ -5174,7 +5294,7 @@ msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/order.js:195 templates/js/stock.js:987 +#: templates/js/order.js:195 templates/js/stock.js:1012 msgid "Date" msgstr "" @@ -5197,7 +5317,7 @@ msgid "Moved {n} parts to {loc}" msgstr "" #: stock/forms.py:114 stock/forms.py:418 stock/models.py:509 -#: stock/templates/stock/item_base.html:376 templates/js/stock.js:654 +#: stock/templates/stock/item_base.html:381 templates/js/stock.js:658 msgid "Expiry Date" msgstr "" @@ -5483,12 +5603,12 @@ msgid "Stock Item Attachments" msgstr "" #: stock/templates/stock/item_base.html:33 -#: stock/templates/stock/item_base.html:380 templates/js/table_filters.js:150 +#: stock/templates/stock/item_base.html:385 templates/js/table_filters.js:150 msgid "Expired" msgstr "" #: stock/templates/stock/item_base.html:43 -#: stock/templates/stock/item_base.html:382 templates/js/table_filters.js:155 +#: stock/templates/stock/item_base.html:387 templates/js/table_filters.js:155 msgid "Stale" msgstr "" @@ -5618,7 +5738,7 @@ msgstr "" msgid "Stock Item Details" msgstr "" -#: stock/templates/stock/item_base.html:289 templates/js/build.js:508 +#: stock/templates/stock/item_base.html:289 templates/js/build.js:593 msgid "No location set" msgstr "" @@ -5630,25 +5750,29 @@ msgstr "" msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:380 +#: stock/templates/stock/item_base.html:356 +msgid "No manufacturer set" +msgstr "" + +#: stock/templates/stock/item_base.html:385 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:382 +#: stock/templates/stock/item_base.html:387 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:389 templates/js/stock.js:660 +#: stock/templates/stock/item_base.html:394 templates/js/stock.js:664 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:394 +#: stock/templates/stock/item_base.html:399 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:398 +#: stock/templates/stock/item_base.html:403 msgid "No stocktake performed" msgstr "" @@ -5945,7 +6069,7 @@ msgstr "" msgid "Add Stock Items" msgstr "" -#: stock/views.py:1001 users/models.py:183 +#: stock/views.py:1001 users/models.py:187 msgid "Add" msgstr "" @@ -6011,7 +6135,7 @@ msgstr "" msgid "Serialize Stock" msgstr "" -#: stock/views.py:1575 templates/js/build.js:244 +#: stock/views.py:1575 templates/js/build.js:326 msgid "Create new Stock Item" msgstr "" @@ -6043,14 +6167,6 @@ msgstr "" msgid "Add Stock Tracking Entry" msgstr "" -#: templates/403.html:5 templates/403.html:11 -msgid "Permission Denied" -msgstr "" - -#: templates/403.html:14 -msgid "You do not have permission to view this page." -msgstr "" - #: templates/404.html:5 templates/404.html:11 msgid "Page Not Found" msgstr "" @@ -6119,11 +6235,11 @@ msgstr "" msgid "Enter a search query" msgstr "" -#: templates/InvenTree/search.html:268 templates/js/stock.js:298 +#: templates/InvenTree/search.html:268 templates/js/stock.js:303 msgid "Shipped to customer" msgstr "" -#: templates/InvenTree/search.html:271 templates/js/stock.js:308 +#: templates/InvenTree/search.html:271 templates/js/stock.js:313 msgid "No stock location set" msgstr "" @@ -6168,12 +6284,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/category.html:70 -#: templates/InvenTree/settings/part.html:81 +#: templates/InvenTree/settings/part.html:85 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/category.html:71 -#: templates/InvenTree/settings/part.html:82 +#: templates/InvenTree/settings/part.html:86 msgid "Delete Template" msgstr "" @@ -6221,11 +6337,11 @@ msgstr "" msgid "Part Options" msgstr "" -#: templates/InvenTree/settings/part.html:40 +#: templates/InvenTree/settings/part.html:44 msgid "Part Parameter Templates" msgstr "" -#: templates/InvenTree/settings/part.html:61 +#: templates/InvenTree/settings/part.html:65 msgid "No part parameter templates found" msgstr "" @@ -6341,47 +6457,51 @@ msgid "API Version" msgstr "" #: templates/about.html:39 +msgid "Python Version" +msgstr "" + +#: templates/about.html:44 msgid "Django Version" msgstr "" -#: templates/about.html:46 +#: templates/about.html:51 msgid "Commit Hash" msgstr "" -#: templates/about.html:53 +#: templates/about.html:58 msgid "Commit Date" msgstr "" -#: templates/about.html:58 +#: templates/about.html:63 msgid "InvenTree Documentation" msgstr "" -#: templates/about.html:63 +#: templates/about.html:68 msgid "View Code on GitHub" msgstr "" -#: templates/about.html:68 +#: templates/about.html:73 msgid "Credits" msgstr "" -#: templates/about.html:73 +#: templates/about.html:78 msgid "Mobile App" msgstr "" -#: templates/about.html:78 +#: templates/about.html:83 msgid "Submit Bug Report" msgstr "" -#: templates/about.html:85 templates/clip.html:4 +#: templates/about.html:90 templates/clip.html:4 msgid "copy to clipboard" msgstr "" -#: templates/about.html:85 +#: templates/about.html:90 msgid "copy version information" msgstr "" -#: templates/about.html:95 templates/js/modals.js:568 -#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54 +#: templates/about.html:100 templates/js/modals.js:568 +#: templates/js/modals.js:861 templates/modals.html:29 templates/modals.html:54 #: templates/modals.html:97 msgid "Close" msgstr "" @@ -6442,7 +6562,7 @@ msgstr "" msgid "Unknown response from server" msgstr "" -#: templates/js/barcode.js:119 templates/js/modals.js:901 +#: templates/js/barcode.js:119 templates/js/modals.js:921 msgid "Invalid server response" msgstr "" @@ -6506,7 +6626,7 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/bom.js:175 templates/js/build.js:1004 +#: templates/js/bom.js:175 templates/js/build.js:1091 msgid "Open subassembly" msgstr "" @@ -6542,7 +6662,7 @@ msgstr "" msgid "Delete BOM Item" msgstr "" -#: templates/js/bom.js:470 templates/js/build.js:340 templates/js/build.js:1102 +#: templates/js/bom.js:470 templates/js/build.js:423 templates/js/build.js:1189 msgid "No BOM items found" msgstr "" @@ -6562,37 +6682,45 @@ msgstr "" msgid "Delete build output" msgstr "" -#: templates/js/build.js:243 templates/stock_table.html:20 +#: templates/js/build.js:184 +msgid "No build order allocations found" +msgstr "" + +#: templates/js/build.js:222 templates/js/order.js:382 +msgid "Location not specified" +msgstr "" + +#: templates/js/build.js:325 templates/stock_table.html:20 msgid "New Stock Item" msgstr "" -#: templates/js/build.js:559 +#: templates/js/build.js:644 msgid "Required Part" msgstr "" -#: templates/js/build.js:580 +#: templates/js/build.js:665 msgid "Quantity Per" msgstr "" -#: templates/js/build.js:648 templates/js/build.js:1066 +#: templates/js/build.js:735 templates/js/build.js:1153 #: templates/stock_table.html:59 msgid "Order stock" msgstr "" -#: templates/js/build.js:701 +#: templates/js/build.js:788 msgid "No builds matching query" msgstr "" -#: templates/js/build.js:718 templates/js/part.js:390 templates/js/part.js:634 -#: templates/js/stock.js:509 templates/js/stock.js:941 +#: templates/js/build.js:805 templates/js/part.js:390 templates/js/part.js:635 +#: templates/js/stock.js:514 templates/js/stock.js:966 msgid "Select" msgstr "" -#: templates/js/build.js:738 +#: templates/js/build.js:825 msgid "Build order is overdue" msgstr "" -#: templates/js/build.js:837 +#: templates/js/build.js:924 msgid "No parts allocated for" msgstr "" @@ -6612,17 +6740,29 @@ msgstr "" msgid "No manufacturer parts found" msgstr "" -#: templates/js/company.js:148 templates/js/company.js:246 +#: templates/js/company.js:148 templates/js/company.js:347 #: templates/js/part.js:68 templates/js/part.js:153 msgid "Template part" msgstr "" -#: templates/js/company.js:152 templates/js/company.js:250 +#: templates/js/company.js:152 templates/js/company.js:351 #: templates/js/part.js:72 templates/js/part.js:157 msgid "Assembled part" msgstr "" -#: templates/js/company.js:227 +#: templates/js/company.js:226 +msgid "No parameters found" +msgstr "" + +#: templates/js/company.js:262 +msgid "Edit parameter" +msgstr "" + +#: templates/js/company.js:263 +msgid "Delete parameter" +msgstr "" + +#: templates/js/company.js:328 msgid "No supplier parts found" msgstr "" @@ -6710,76 +6850,76 @@ msgstr "" msgid "Loading Data" msgstr "" -#: templates/js/modals.js:567 templates/js/modals.js:845 +#: templates/js/modals.js:567 templates/js/modals.js:860 #: templates/modals.html:30 templates/modals.html:55 msgid "Submit" msgstr "" -#: templates/js/modals.js:797 +#: templates/js/modals.js:811 msgid "Invalid response from server" msgstr "" -#: templates/js/modals.js:797 +#: templates/js/modals.js:811 msgid "Form data missing from server response" msgstr "" -#: templates/js/modals.js:810 +#: templates/js/modals.js:824 msgid "Error posting form data" msgstr "" -#: templates/js/modals.js:901 +#: templates/js/modals.js:921 msgid "JSON response missing form data" msgstr "" -#: templates/js/modals.js:911 +#: templates/js/modals.js:931 msgid "No Response" msgstr "" -#: templates/js/modals.js:912 +#: templates/js/modals.js:932 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/modals.js:916 +#: templates/js/modals.js:936 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/modals.js:917 +#: templates/js/modals.js:937 msgid "Server returned error code 400" msgstr "" -#: templates/js/modals.js:921 +#: templates/js/modals.js:941 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/modals.js:922 +#: templates/js/modals.js:942 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/modals.js:926 +#: templates/js/modals.js:946 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/modals.js:927 +#: templates/js/modals.js:947 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/modals.js:931 +#: templates/js/modals.js:951 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/modals.js:932 +#: templates/js/modals.js:952 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/modals.js:936 +#: templates/js/modals.js:956 msgid "Error 408: Timeout" msgstr "" -#: templates/js/modals.js:937 +#: templates/js/modals.js:957 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/modals.js:940 +#: templates/js/modals.js:960 msgid "Error requesting form data" msgstr "" @@ -6795,6 +6935,10 @@ msgstr "" msgid "No sales orders found" msgstr "" +#: templates/js/order.js:343 +msgid "No sales order allocations found" +msgstr "" + #: templates/js/part.js:10 msgid "YES" msgstr "" @@ -6823,39 +6967,39 @@ msgstr "" msgid "No variants found" msgstr "" -#: templates/js/part.js:280 templates/js/part.js:518 +#: templates/js/part.js:280 templates/js/part.js:519 msgid "No parts found" msgstr "" -#: templates/js/part.js:457 +#: templates/js/part.js:458 msgid "No category" msgstr "" -#: templates/js/part.js:475 templates/js/table_filters.js:323 +#: templates/js/part.js:476 templates/js/table_filters.js:323 msgid "Low stock" msgstr "" -#: templates/js/part.js:659 templates/js/stock.js:965 +#: templates/js/part.js:660 templates/js/stock.js:990 msgid "Path" msgstr "" -#: templates/js/part.js:702 +#: templates/js/part.js:703 msgid "No test templates matching query" msgstr "" -#: templates/js/part.js:753 templates/js/stock.js:75 +#: templates/js/part.js:754 templates/js/stock.js:75 msgid "Edit test result" msgstr "" -#: templates/js/part.js:754 templates/js/stock.js:76 +#: templates/js/part.js:755 templates/js/stock.js:76 msgid "Delete test result" msgstr "" -#: templates/js/part.js:760 +#: templates/js/part.js:761 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/part.js:805 +#: templates/js/part.js:806 msgid "Single Price Difference" msgstr "" @@ -6953,155 +7097,155 @@ msgstr "" msgid "Test Date" msgstr "" -#: templates/js/stock.js:290 +#: templates/js/stock.js:295 msgid "In production" msgstr "" -#: templates/js/stock.js:294 +#: templates/js/stock.js:299 msgid "Installed in Stock Item" msgstr "" -#: templates/js/stock.js:302 +#: templates/js/stock.js:307 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/stock.js:334 +#: templates/js/stock.js:339 msgid "No stock items matching query" msgstr "" -#: templates/js/stock.js:355 +#: templates/js/stock.js:360 msgid "items" msgstr "" -#: templates/js/stock.js:447 +#: templates/js/stock.js:452 msgid "batches" msgstr "" -#: templates/js/stock.js:474 +#: templates/js/stock.js:479 msgid "locations" msgstr "" -#: templates/js/stock.js:476 +#: templates/js/stock.js:481 msgid "Undefined location" msgstr "" -#: templates/js/stock.js:577 +#: templates/js/stock.js:582 msgid "Stock item is in production" msgstr "" -#: templates/js/stock.js:582 +#: templates/js/stock.js:587 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/stock.js:585 +#: templates/js/stock.js:590 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/stock.js:589 +#: templates/js/stock.js:594 msgid "Stock item has expired" msgstr "" -#: templates/js/stock.js:591 +#: templates/js/stock.js:596 msgid "Stock item will expire soon" msgstr "" -#: templates/js/stock.js:595 +#: templates/js/stock.js:600 msgid "Stock item has been allocated" msgstr "" -#: templates/js/stock.js:599 +#: templates/js/stock.js:604 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/stock.js:607 +#: templates/js/stock.js:611 msgid "Stock item has been rejected" msgstr "" -#: templates/js/stock.js:611 +#: templates/js/stock.js:615 msgid "Stock item is lost" msgstr "" -#: templates/js/stock.js:614 +#: templates/js/stock.js:618 msgid "Stock item is destroyed" msgstr "" -#: templates/js/stock.js:618 templates/js/table_filters.js:143 +#: templates/js/stock.js:622 templates/js/table_filters.js:143 msgid "Depleted" msgstr "" -#: templates/js/stock.js:647 +#: templates/js/stock.js:651 msgid "Stocktake" msgstr "" -#: templates/js/stock.js:828 +#: templates/js/stock.js:853 msgid "Stock Status" msgstr "" -#: templates/js/stock.js:843 +#: templates/js/stock.js:868 msgid "Set Stock Status" msgstr "" -#: templates/js/stock.js:857 +#: templates/js/stock.js:882 msgid "Select Status Code" msgstr "" -#: templates/js/stock.js:858 +#: templates/js/stock.js:883 msgid "Status code must be selected" msgstr "" -#: templates/js/stock.js:997 +#: templates/js/stock.js:1022 msgid "Invalid date" msgstr "" -#: templates/js/stock.js:1044 +#: templates/js/stock.js:1069 msgid "Location no longer exists" msgstr "" -#: templates/js/stock.js:1063 +#: templates/js/stock.js:1088 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/stock.js:1082 +#: templates/js/stock.js:1107 msgid "Customer no longer exists" msgstr "" -#: templates/js/stock.js:1100 +#: templates/js/stock.js:1125 msgid "Stock item no longer exists" msgstr "" -#: templates/js/stock.js:1123 +#: templates/js/stock.js:1148 msgid "Added" msgstr "" -#: templates/js/stock.js:1131 +#: templates/js/stock.js:1156 msgid "Removed" msgstr "" -#: templates/js/stock.js:1163 +#: templates/js/stock.js:1188 msgid "No user information" msgstr "" -#: templates/js/stock.js:1175 +#: templates/js/stock.js:1200 msgid "Edit tracking entry" msgstr "" -#: templates/js/stock.js:1176 +#: templates/js/stock.js:1201 msgid "Delete tracking entry" msgstr "" -#: templates/js/stock.js:1300 +#: templates/js/stock.js:1325 msgid "Create New Location" msgstr "" -#: templates/js/stock.js:1341 +#: templates/js/stock.js:1366 msgid "No installed items" msgstr "" -#: templates/js/stock.js:1364 +#: templates/js/stock.js:1389 msgid "Serial" msgstr "" -#: templates/js/stock.js:1392 +#: templates/js/stock.js:1417 msgid "Uninstall Stock Item" msgstr "" @@ -7267,56 +7411,56 @@ msgstr "" msgid "Purchasable" msgstr "" -#: templates/js/tables.js:321 +#: templates/js/tables.js:323 msgid "Loading data" msgstr "" -#: templates/js/tables.js:324 +#: templates/js/tables.js:326 msgid "rows per page" msgstr "" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "Showing" msgstr "" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "to" msgstr "" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "of" msgstr "" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "rows" msgstr "" -#: templates/js/tables.js:330 templates/search_form.html:6 +#: templates/js/tables.js:332 templates/search_form.html:6 #: templates/search_form.html:8 msgid "Search" msgstr "" -#: templates/js/tables.js:333 +#: templates/js/tables.js:335 msgid "No matching results" msgstr "" -#: templates/js/tables.js:336 +#: templates/js/tables.js:338 msgid "Hide/Show pagination" msgstr "" -#: templates/js/tables.js:339 +#: templates/js/tables.js:341 msgid "Refresh" msgstr "" -#: templates/js/tables.js:342 +#: templates/js/tables.js:344 msgid "Toggle" msgstr "" -#: templates/js/tables.js:345 +#: templates/js/tables.js:347 msgid "Columns" msgstr "" -#: templates/js/tables.js:348 +#: templates/js/tables.js:350 msgid "All" msgstr "" @@ -7560,35 +7704,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:170 +#: users/models.py:174 msgid "Permission set" msgstr "" -#: users/models.py:178 +#: users/models.py:182 msgid "Group" msgstr "" -#: users/models.py:181 +#: users/models.py:185 msgid "View" msgstr "" -#: users/models.py:181 +#: users/models.py:185 msgid "Permission to view items" msgstr "" -#: users/models.py:183 +#: users/models.py:187 msgid "Permission to add items" msgstr "" -#: users/models.py:185 +#: users/models.py:189 msgid "Change" msgstr "" -#: users/models.py:185 +#: users/models.py:189 msgid "Permissions to edit items" msgstr "" -#: users/models.py:187 +#: users/models.py:191 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po index 6caf5cb88d..87d69fb09a 100644 --- a/InvenTree/locale/it/LC_MESSAGES/django.po +++ b/InvenTree/locale/it/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-06-16 22:40+0000\n" -"PO-Revision-Date: 2021-06-16 22:40\n" +"POT-Creation-Date: 2021-06-24 21:38+0000\n" +"PO-Revision-Date: 2021-06-24 21:40\n" "Last-Translator: \n" "Language-Team: Italian\n" "Language: it_IT\n" @@ -77,7 +77,7 @@ msgstr "" msgid "Duplicate serial: {n}" msgstr "" -#: InvenTree/helpers.py:384 order/models.py:247 order/models.py:357 +#: InvenTree/helpers.py:384 order/models.py:248 order/models.py:358 #: stock/views.py:1795 msgid "Invalid quantity provided" msgstr "" @@ -122,9 +122,9 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1999 +#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:2022 #: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/stock.js:1154 +#: templates/js/stock.js:1179 msgid "User" msgstr "" @@ -132,34 +132,35 @@ msgstr "" msgid "upload date" msgstr "" -#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102 -#: part/models.py:686 part/models.py:2140 part/templates/part/params.html:27 -#: report/models.py:179 templates/InvenTree/search.html:137 -#: templates/InvenTree/search.html:289 templates/js/part.js:118 -#: templates/js/part.js:641 templates/js/stock.js:947 +#: InvenTree/models.py:107 InvenTree/models.py:108 company/models.py:396 +#: label/models.py:102 part/models.py:671 part/models.py:2163 +#: part/templates/part/params.html:27 report/models.py:180 +#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289 +#: templates/js/company.js:235 templates/js/part.js:118 +#: templates/js/part.js:642 templates/js/stock.js:972 msgid "Name" msgstr "" #: InvenTree/models.py:114 build/models.py:135 #: build/templates/build/detail.html:21 company/models.py:339 -#: company/models.py:491 company/templates/company/detail.html:27 +#: company/models.py:532 company/templates/company/detail.html:27 #: company/templates/company/manufacturer_part_base.html:72 #: company/templates/company/supplier_part_base.html:71 #: company/templates/company/supplier_part_detail.html:31 label/models.py:109 -#: order/models.py:103 order/templates/order/purchase_order_detail.html:147 -#: part/models.py:710 part/templates/part/detail.html:54 -#: part/templates/part/set_category.html:14 report/models.py:192 -#: report/models.py:505 report/models.py:544 +#: order/models.py:104 order/templates/order/purchase_order_detail.html:147 +#: part/models.py:695 part/templates/part/detail.html:54 +#: part/templates/part/set_category.html:14 report/models.py:193 +#: report/models.py:530 report/models.py:569 #: report/templates/report/inventree_build_order_base.html:118 #: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224 #: templates/InvenTree/search.html:296 #: templates/InvenTree/settings/header.html:9 templates/js/bom.js:190 -#: templates/js/build.js:746 templates/js/build.js:1014 +#: templates/js/build.js:833 templates/js/build.js:1101 #: templates/js/company.js:56 templates/js/order.js:183 #: templates/js/order.js:280 templates/js/part.js:177 templates/js/part.js:260 -#: templates/js/part.js:437 templates/js/part.js:653 templates/js/part.js:721 -#: templates/js/stock.js:552 templates/js/stock.js:959 -#: templates/js/stock.js:1004 +#: templates/js/part.js:437 templates/js/part.js:654 templates/js/part.js:722 +#: templates/js/stock.js:557 templates/js/stock.js:984 +#: templates/js/stock.js:1029 msgid "Description" msgstr "" @@ -191,15 +192,15 @@ msgstr "" msgid "Turkish" msgstr "" -#: InvenTree/status.py:93 +#: InvenTree/status.py:94 msgid "Background worker check failed" msgstr "" -#: InvenTree/status.py:97 +#: InvenTree/status.py:98 msgid "Email backend not configured" msgstr "" -#: InvenTree/status.py:100 +#: InvenTree/status.py:101 msgid "InvenTree system health checks failed" msgstr "" @@ -372,27 +373,27 @@ msgstr "" msgid "Overage must be an integer value or a percentage" msgstr "" -#: InvenTree/views.py:605 +#: InvenTree/views.py:608 msgid "Delete Item" msgstr "" -#: InvenTree/views.py:654 +#: InvenTree/views.py:657 msgid "Check box to confirm item deletion" msgstr "" -#: InvenTree/views.py:669 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:672 templates/InvenTree/settings/user.html:18 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:683 templates/InvenTree/settings/user.html:22 msgid "Set Password" msgstr "" -#: InvenTree/views.py:699 +#: InvenTree/views.py:702 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:950 templates/navbar.html:95 +#: InvenTree/views.py:953 templates/navbar.html:95 msgid "System Information" msgstr "" @@ -445,11 +446,11 @@ msgid "Order target date" msgstr "" #: build/forms.py:42 build/templates/build/build_base.html:146 -#: build/templates/build/detail.html:121 order/forms.py:109 order/forms.py:144 +#: build/templates/build/detail.html:121 order/forms.py:114 order/forms.py:149 #: order/templates/order/order_base.html:124 #: order/templates/order/sales_order_base.html:119 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/build.js:793 templates/js/order.js:200 +#: templates/js/build.js:880 templates/js/order.js:200 #: templates/js/order.js:298 msgid "Target Date" msgstr "" @@ -462,22 +463,21 @@ msgstr "" #: build/templates/build/allocation_card.html:23 #: build/templates/build/auto_allocate.html:17 #: build/templates/build/build_base.html:133 -#: build/templates/build/detail.html:31 common/models.py:699 -#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77 -#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262 -#: order/forms.py:279 order/models.py:616 order/models.py:817 +#: build/templates/build/detail.html:31 common/models.py:720 +#: company/forms.py:191 company/templates/company/supplier_part_pricing.html:77 +#: order/forms.py:193 order/forms.py:211 order/forms.py:246 order/forms.py:268 +#: order/forms.py:285 order/models.py:617 order/models.py:841 #: order/templates/order/order_wizard/match_parts.html:29 -#: order/templates/order/order_wizard/select_parts.html:32 +#: order/templates/order/order_wizard/select_parts.html:34 #: order/templates/order/purchase_order_detail.html:179 #: order/templates/order/sales_order_detail.html:70 #: order/templates/order/sales_order_detail.html:77 #: order/templates/order/sales_order_detail.html:162 -#: order/templates/order/sales_order_detail.html:230 part/forms.py:342 -#: part/forms.py:372 part/forms.py:388 part/models.py:2270 -#: part/templates/part/allocation.html:19 -#: part/templates/part/allocation.html:53 -#: part/templates/part/order_prices.html:175 -#: part/templates/part/part_pricing.html:13 +#: order/templates/order/sales_order_detail.html:234 part/forms.py:342 +#: part/forms.py:372 part/forms.py:388 part/forms.py:404 part/models.py:2293 +#: part/templates/part/internal_prices.html:98 +#: part/templates/part/order_prices.html:202 +#: part/templates/part/part_pricing.html:16 #: part/templates/part/sale_prices.html:85 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -486,9 +486,10 @@ msgstr "" #: stock/forms.py:175 stock/forms.py:308 #: stock/templates/stock/item_base.html:255 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364 -#: templates/js/bom.js:205 templates/js/build.js:486 templates/js/build.js:1024 -#: templates/js/part.js:795 templates/js/stock.js:1139 -#: templates/js/stock.js:1358 +#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:571 +#: templates/js/build.js:1111 templates/js/order.js:393 +#: templates/js/part.js:796 templates/js/stock.js:1164 +#: templates/js/stock.js:1383 msgid "Quantity" msgstr "" @@ -500,7 +501,7 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/forms.py:95 order/forms.py:234 stock/forms.py:118 +#: build/forms.py:95 order/forms.py:240 stock/forms.py:118 msgid "Serial Numbers" msgstr "" @@ -529,12 +530,12 @@ msgid "Mark build as complete" msgstr "" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 -#: order/forms.py:82 stock/forms.py:347 -#: stock/templates/stock/item_base.html:285 +#: stock/forms.py:347 stock/templates/stock/item_base.html:285 #: stock/templates/stock/stock_adjust.html:17 #: templates/InvenTree/search.html:260 templates/js/barcode.js:363 -#: templates/js/barcode.js:531 templates/js/build.js:500 -#: templates/js/stock.js:639 templates/js/stock.js:1031 +#: templates/js/barcode.js:531 templates/js/build.js:218 +#: templates/js/build.js:585 templates/js/order.js:378 +#: templates/js/stock.js:643 templates/js/stock.js:1056 msgid "Location" msgstr "" @@ -543,13 +544,13 @@ msgid "Location of completed parts" msgstr "" #: build/forms.py:215 build/templates/build/build_base.html:138 -#: build/templates/build/detail.html:59 order/models.py:468 +#: build/templates/build/detail.html:59 order/models.py:469 #: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:403 templates/InvenTree/search.html:252 -#: templates/js/barcode.js:119 templates/js/build.js:780 +#: stock/templates/stock/item_base.html:408 templates/InvenTree/search.html:252 +#: templates/js/barcode.js:119 templates/js/build.js:867 #: templates/js/order.js:187 templates/js/order.js:285 -#: templates/js/stock.js:626 templates/js/stock.js:1108 -#: templates/js/stock.js:1374 +#: templates/js/stock.js:630 templates/js/stock.js:1133 +#: templates/js/stock.js:1399 msgid "Status" msgstr "" @@ -583,16 +584,16 @@ msgstr "" #: build/models.py:66 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:73 -#: part/templates/part/allocation.html:23 #: report/templates/report/inventree_build_order_base.html:106 +#: templates/js/build.js:195 msgid "Build Order" msgstr "" #: build/models.py:67 build/templates/build/index.html:8 #: build/templates/build/index.html:15 order/templates/order/so_builds.html:12 #: order/templates/order/so_navbar.html:19 -#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:55 -#: part/templates/part/navbar.html:58 templates/InvenTree/index.html:183 +#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:57 +#: part/templates/part/navbar.html:60 templates/InvenTree/index.html:183 #: templates/InvenTree/search.html:185 #: templates/InvenTree/settings/tabs.html:34 users/models.py:43 msgid "Build Orders" @@ -602,12 +603,12 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:128 order/models.py:101 order/models.py:618 +#: build/models.py:128 order/models.py:102 order/models.py:619 #: order/templates/order/purchase_order_detail.html:174 -#: order/templates/order/sales_order_detail.html:225 part/models.py:2279 +#: order/templates/order/sales_order_detail.html:229 part/models.py:2302 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197 -#: templates/js/build.js:575 templates/js/build.js:1018 +#: templates/js/build.js:660 templates/js/build.js:1105 msgid "Reference" msgstr "" @@ -626,27 +627,27 @@ msgstr "" #: build/models.py:153 build/templates/build/auto_allocate.html:16 #: build/templates/build/build_base.html:128 -#: build/templates/build/detail.html:26 company/models.py:622 -#: order/models.py:660 order/models.py:693 -#: order/templates/order/order_wizard/select_parts.html:30 +#: build/templates/build/detail.html:26 company/models.py:663 +#: order/models.py:661 order/models.py:717 +#: order/templates/order/order_wizard/select_parts.html:32 #: order/templates/order/purchase_order_detail.html:132 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:213 part/models.py:321 -#: part/models.py:1967 part/models.py:1979 part/models.py:1997 -#: part/models.py:2072 part/models.py:2168 part/models.py:2254 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29 +#: order/templates/order/sales_order_detail.html:214 part/models.py:321 +#: part/models.py:1975 part/models.py:1987 part/models.py:2002 +#: part/models.py:2020 part/models.py:2095 part/models.py:2191 +#: part/models.py:2277 part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 part/templates/part/related.html:29 #: part/templates/part/set_category.html:13 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 #: templates/InvenTree/search.html:112 templates/InvenTree/search.html:210 #: templates/js/barcode.js:362 templates/js/bom.js:163 -#: templates/js/build.js:466 templates/js/build.js:751 -#: templates/js/build.js:991 templates/js/company.js:140 -#: templates/js/company.js:238 templates/js/part.js:241 -#: templates/js/part.js:404 templates/js/stock.js:521 -#: templates/js/stock.js:1346 +#: templates/js/build.js:551 templates/js/build.js:838 +#: templates/js/build.js:1078 templates/js/company.js:140 +#: templates/js/company.js:339 templates/js/part.js:241 +#: templates/js/part.js:404 templates/js/stock.js:526 +#: templates/js/stock.js:1371 msgid "Part" msgstr "" @@ -710,16 +711,16 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:220 order/models.py:107 part/models.py:882 +#: build/models.py:220 order/models.py:108 part/models.py:867 #: part/templates/part/detail.html:126 templates/js/order.js:293 msgid "Creation Date" msgstr "" -#: build/models.py:224 order/models.py:474 +#: build/models.py:224 order/models.py:475 msgid "Target completion date" msgstr "" -#: build/models.py:228 order/models.py:220 templates/js/build.js:798 +#: build/models.py:228 order/models.py:221 templates/js/build.js:885 msgid "Completion Date" msgstr "" @@ -736,9 +737,9 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:251 build/templates/build/build_base.html:184 -#: build/templates/build/detail.html:105 order/models.py:121 +#: build/templates/build/detail.html:105 order/models.py:122 #: order/templates/order/order_base.html:138 -#: order/templates/order/sales_order_base.html:140 part/models.py:886 +#: order/templates/order/sales_order_base.html:140 part/models.py:871 #: report/templates/report/inventree_build_order_base.html:159 msgid "Responsible" msgstr "" @@ -757,26 +758,26 @@ msgstr "" msgid "External Link" msgstr "" -#: build/models.py:258 part/models.py:744 stock/models.py:462 +#: build/models.py:258 part/models.py:729 stock/models.py:462 msgid "Link to external URL" msgstr "" #: build/models.py:262 build/templates/build/navbar.html:53 -#: company/models.py:132 company/models.py:498 +#: company/models.py:132 company/models.py:539 #: company/templates/company/navbar.html:70 -#: company/templates/company/navbar.html:73 order/models.py:125 -#: order/models.py:620 order/templates/order/po_navbar.html:29 -#: order/templates/order/po_navbar.html:32 -#: order/templates/order/purchase_order_detail.html:239 -#: order/templates/order/sales_order_detail.html:278 +#: company/templates/company/navbar.html:73 order/models.py:126 +#: order/models.py:621 order/templates/order/po_navbar.html:38 +#: order/templates/order/po_navbar.html:41 +#: order/templates/order/purchase_order_detail.html:243 +#: order/templates/order/sales_order_detail.html:309 #: order/templates/order/so_navbar.html:33 -#: order/templates/order/so_navbar.html:36 part/models.py:871 -#: part/templates/part/navbar.html:134 +#: order/templates/order/so_navbar.html:36 part/models.py:856 +#: part/templates/part/navbar.html:142 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377 #: stock/models.py:532 stock/models.py:1667 stock/models.py:1769 #: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37 -#: templates/js/bom.js:356 templates/js/stock.js:141 templates/js/stock.js:674 +#: templates/js/bom.js:356 templates/js/stock.js:141 templates/js/stock.js:699 msgid "Notes" msgstr "" @@ -809,11 +810,11 @@ msgstr "" msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1188 order/models.py:791 +#: build/models.py:1188 order/models.py:815 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1192 order/models.py:794 +#: build/models.py:1192 order/models.py:818 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -827,7 +828,7 @@ msgid "Selected stock item not found in BOM for part '{p}'" msgstr "" #: build/models.py:1316 stock/templates/stock/item_base.html:317 -#: templates/InvenTree/search.html:183 templates/js/build.js:724 +#: templates/InvenTree/search.html:183 templates/js/build.js:811 #: templates/navbar.html:29 msgid "Build" msgstr "" @@ -836,15 +837,13 @@ msgstr "" msgid "Build to allocate parts" msgstr "" -#: build/models.py:1333 part/templates/part/allocation.html:18 -#: part/templates/part/allocation.html:24 -#: part/templates/part/allocation.html:31 -#: part/templates/part/allocation.html:49 -#: stock/templates/stock/item_base.html:8 +#: build/models.py:1333 stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:31 #: stock/templates/stock/item_base.html:339 -#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:841 -#: templates/js/stock.js:1090 +#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:206 +#: templates/js/build.js:211 templates/js/build.js:928 +#: templates/js/order.js:366 templates/js/order.js:371 +#: templates/js/stock.js:1115 msgid "Stock Item" msgstr "" @@ -880,7 +879,7 @@ msgstr "" msgid "Auto Allocate" msgstr "" -#: build/templates/build/allocate.html:25 templates/js/build.js:656 +#: build/templates/build/allocate.html:25 templates/js/build.js:743 msgid "Unallocate stock" msgstr "" @@ -917,15 +916,15 @@ msgstr "" #: order/templates/order/sales_order_detail.html:160 #: report/templates/report/inventree_test_report_base.html:75 #: stock/models.py:454 stock/templates/stock/item_base.html:249 -#: templates/js/build.js:484 +#: templates/js/build.js:569 msgid "Serial Number" msgstr "" #: build/templates/build/attachments.html:12 #: build/templates/build/navbar.html:43 build/templates/build/navbar.html:46 -#: order/templates/order/po_navbar.html:26 -#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:125 -#: part/templates/part/navbar.html:128 stock/templates/stock/navbar.html:47 +#: order/templates/order/po_navbar.html:35 +#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:133 +#: part/templates/part/navbar.html:136 stock/templates/stock/navbar.html:47 #: stock/templates/stock/navbar.html:50 msgid "Attachments" msgstr "" @@ -1037,11 +1036,10 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:170 -#: build/templates/build/detail.html:84 order/models.py:691 +#: build/templates/build/detail.html:84 order/models.py:715 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:35 #: order/templates/order/sales_order_ship.html:25 -#: part/templates/part/allocation.html:30 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 #: stock/templates/stock/item_base.html:279 templates/js/order.js:245 @@ -1185,7 +1183,10 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:46 stock/forms.py:169 stock/forms.py:375 +#: build/templates/build/detail.html:46 order/forms.py:85 order/models.py:678 +#: order/templates/order/purchase_order_detail.html:239 +#: order/templates/order/receive_parts.html:25 stock/forms.py:169 +#: stock/forms.py:375 msgid "Destination" msgstr "" @@ -1194,15 +1195,15 @@ msgid "Destination location not specified" msgstr "" #: build/templates/build/detail.html:70 -#: stock/templates/stock/item_base.html:303 templates/js/stock.js:634 -#: templates/js/stock.js:1381 templates/js/table_filters.js:112 +#: stock/templates/stock/item_base.html:303 templates/js/stock.js:638 +#: templates/js/stock.js:1406 templates/js/table_filters.js:112 #: templates/js/table_filters.js:206 msgid "Batch" msgstr "" #: build/templates/build/detail.html:116 #: order/templates/order/order_base.html:111 -#: order/templates/order/sales_order_base.html:113 templates/js/build.js:788 +#: order/templates/order/sales_order_base.html:113 templates/js/build.js:875 msgid "Created" msgstr "" @@ -1210,7 +1211,7 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:132 templates/js/build.js:766 +#: build/templates/build/detail.html:132 templates/js/build.js:853 msgid "Completed" msgstr "" @@ -1248,9 +1249,9 @@ msgstr "" #: build/templates/build/navbar.html:15 #: company/templates/company/navbar.html:15 -#: order/templates/order/po_navbar.html:14 -#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15 -#: templates/js/stock.js:1019 +#: order/templates/order/po_navbar.html:15 +#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:17 +#: templates/js/stock.js:1044 msgid "Details" msgstr "" @@ -1285,8 +1286,8 @@ msgstr "" #: build/templates/build/notes.html:26 company/templates/company/notes.html:24 #: order/templates/order/order_notes.html:27 #: order/templates/order/sales_order_notes.html:29 -#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:482 -#: stock/templates/stock/item_base.html:492 +#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:487 +#: stock/templates/stock/item_base.html:497 #: stock/templates/stock/item_notes.html:26 msgid "Save" msgstr "" @@ -1411,8 +1412,8 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:585 -#: templates/js/build.js:848 templates/js/build.js:1031 +#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:670 +#: templates/js/build.js:935 templates/js/build.js:1118 msgid "Available" msgstr "" @@ -1598,8 +1599,8 @@ msgstr "" msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:153 part/models.py:2170 part/templates/part/detail.html:160 -#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25 +#: common/models.py:153 part/models.py:2193 part/templates/part/detail.html:160 +#: report/models.py:186 stock/forms.py:259 templates/js/table_filters.js:25 #: templates/js/table_filters.js:315 msgid "Template" msgstr "" @@ -1608,7 +1609,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:160 part/models.py:834 part/templates/part/detail.html:170 +#: common/models.py:160 part/models.py:819 part/templates/part/detail.html:170 #: templates/js/table_filters.js:128 templates/js/table_filters.js:327 msgid "Assembly" msgstr "" @@ -1617,7 +1618,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:167 part/models.py:840 part/templates/part/detail.html:180 +#: common/models.py:167 part/models.py:825 part/templates/part/detail.html:180 #: templates/js/table_filters.js:331 msgid "Component" msgstr "" @@ -1626,7 +1627,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:174 part/models.py:851 part/templates/part/detail.html:200 +#: common/models.py:174 part/models.py:836 part/templates/part/detail.html:200 msgid "Purchaseable" msgstr "" @@ -1634,7 +1635,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:181 part/models.py:856 part/templates/part/detail.html:210 +#: common/models.py:181 part/models.py:841 part/templates/part/detail.html:210 #: templates/js/table_filters.js:339 msgid "Salable" msgstr "" @@ -1643,7 +1644,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:188 part/models.py:846 part/templates/part/detail.html:190 +#: common/models.py:188 part/models.py:831 part/templates/part/detail.html:190 #: templates/js/table_filters.js:33 templates/js/table_filters.js:343 msgid "Trackable" msgstr "" @@ -1652,7 +1653,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:195 part/models.py:866 part/templates/part/detail.html:150 +#: common/models.py:195 part/models.py:851 part/templates/part/detail.html:150 #: templates/js/table_filters.js:29 msgid "Virtual" msgstr "" @@ -1669,160 +1670,185 @@ msgstr "" msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:209 templates/stats.html:25 -msgid "Debug Mode" +#: common/models.py:209 +msgid "Show Price in Forms" msgstr "" #: common/models.py:210 -msgid "Generate reports in debug mode (HTML output)" +msgid "Display part price in some forms" msgstr "" #: common/models.py:216 -msgid "Page Size" +msgid "Internal Prices" msgstr "" #: common/models.py:217 +msgid "Enable internal prices for parts" +msgstr "" + +#: common/models.py:223 +msgid "Internal Price as BOM-Price" +msgstr "" + +#: common/models.py:224 +msgid "Use the internal price (if set) in BOM-price calculations" +msgstr "" + +#: common/models.py:230 templates/stats.html:25 +msgid "Debug Mode" +msgstr "" + +#: common/models.py:231 +msgid "Generate reports in debug mode (HTML output)" +msgstr "" + +#: common/models.py:237 +msgid "Page Size" +msgstr "" + +#: common/models.py:238 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:227 +#: common/models.py:248 msgid "Test Reports" msgstr "" -#: common/models.py:228 +#: common/models.py:249 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:234 +#: common/models.py:255 msgid "Stock Expiry" msgstr "" -#: common/models.py:235 +#: common/models.py:256 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:241 +#: common/models.py:262 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:242 +#: common/models.py:263 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:248 +#: common/models.py:269 msgid "Stock Stale Time" msgstr "" -#: common/models.py:249 +#: common/models.py:270 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:251 part/templates/part/detail.html:121 +#: common/models.py:272 part/templates/part/detail.html:121 msgid "days" msgstr "" -#: common/models.py:256 +#: common/models.py:277 msgid "Build Expired Stock" msgstr "" -#: common/models.py:257 +#: common/models.py:278 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:263 +#: common/models.py:284 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:264 +#: common/models.py:285 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:270 +#: common/models.py:291 msgid "Group by Part" msgstr "" -#: common/models.py:271 +#: common/models.py:292 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:277 +#: common/models.py:298 msgid "Recent Stock Count" msgstr "" -#: common/models.py:278 +#: common/models.py:299 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:284 +#: common/models.py:305 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:285 +#: common/models.py:306 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:290 +#: common/models.py:311 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:291 +#: common/models.py:312 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:295 +#: common/models.py:316 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:296 +#: common/models.py:317 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:301 +#: common/models.py:322 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:302 +#: common/models.py:323 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:525 +#: common/models.py:546 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:527 +#: common/models.py:548 msgid "Settings value" msgstr "" -#: common/models.py:562 +#: common/models.py:583 msgid "Must be an integer value" msgstr "" -#: common/models.py:585 +#: common/models.py:606 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:596 +#: common/models.py:617 msgid "Value must be an integer value" msgstr "" -#: common/models.py:619 +#: common/models.py:640 msgid "Key string must be unique" msgstr "" -#: common/models.py:700 company/forms.py:177 +#: common/models.py:721 company/forms.py:192 msgid "Price break quantity" msgstr "" -#: common/models.py:708 company/templates/company/supplier_part_pricing.html:82 +#: common/models.py:729 company/templates/company/supplier_part_pricing.html:82 +#: part/templates/part/internal_prices.html:103 #: part/templates/part/sale_prices.html:90 templates/js/bom.js:271 msgid "Price" msgstr "" -#: common/models.py:709 +#: common/models.py:730 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:798 +#: common/models.py:822 msgid "Default" msgstr "" @@ -1843,7 +1869,9 @@ msgid "Supplied value must be a boolean" msgstr "" #: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42 -#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27 +#: order/templates/order/po_navbar.html:19 +#: order/templates/order/po_navbar.html:22 order/views.py:582 +#: part/templates/part/bom_upload/upload_file.html:27 msgid "Upload File" msgstr "" @@ -1877,29 +1905,29 @@ msgstr "" msgid "Image URL" msgstr "" -#: company/forms.py:118 templates/js/part.js:786 +#: company/forms.py:133 templates/js/part.js:787 msgid "Single Price" msgstr "" -#: company/forms.py:120 +#: company/forms.py:135 msgid "Single quantity price" msgstr "" -#: company/forms.py:128 company/models.py:321 +#: company/forms.py:143 company/models.py:321 msgid "Select manufacturer" msgstr "" -#: company/forms.py:134 company/models.py:328 +#: company/forms.py:149 company/models.py:328 msgid "Manufacturer Part Number" msgstr "" -#: company/forms.py:136 company/models.py:327 +#: company/forms.py:151 company/models.py:327 #: company/templates/company/manufacturer_part_base.html:89 #: company/templates/company/manufacturer_part_detail.html:26 #: company/templates/company/supplier_part_base.html:102 #: company/templates/company/supplier_part_detail.html:35 #: order/templates/order/purchase_order_detail.html:162 part/bom.py:171 -#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307 +#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:408 msgid "MPN" msgstr "" @@ -1952,11 +1980,11 @@ msgstr "" msgid "Point of contact" msgstr "" -#: company/models.py:121 company/models.py:333 company/models.py:485 -#: order/models.py:105 part/models.py:743 +#: company/models.py:121 company/models.py:333 company/models.py:526 +#: order/models.py:106 part/models.py:728 #: report/templates/report/inventree_build_order_base.html:165 -#: templates/js/company.js:188 templates/js/company.js:318 -#: templates/js/part.js:497 +#: templates/js/company.js:188 templates/js/company.js:419 +#: templates/js/part.js:498 msgid "Link" msgstr "" @@ -1964,7 +1992,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:129 part/models.py:753 +#: company/models.py:129 part/models.py:738 msgid "Image" msgstr "" @@ -1992,12 +2020,12 @@ msgstr "" msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:305 company/models.py:456 stock/models.py:407 +#: company/models.py:305 company/models.py:497 stock/models.py:407 #: stock/templates/stock/item_base.html:235 msgid "Base Part" msgstr "" -#: company/models.py:309 company/models.py:460 order/views.py:1587 +#: company/models.py:309 company/models.py:501 order/views.py:1597 msgid "Select part" msgstr "" @@ -2008,7 +2036,7 @@ msgstr "" #: company/templates/company/supplier_part_detail.html:34 part/bom.py:170 #: part/bom.py:241 stock/templates/stock/item_base.html:352 #: templates/js/company.js:44 templates/js/company.js:165 -#: templates/js/company.js:289 +#: templates/js/company.js:390 msgid "Manufacturer" msgstr "" @@ -2020,87 +2048,112 @@ msgstr "" msgid "Manufacturer part description" msgstr "" -#: company/models.py:466 company/templates/company/detail.html:62 +#: company/models.py:390 company/models.py:520 +#: company/templates/company/manufacturer_part_base.html:6 +#: company/templates/company/manufacturer_part_base.html:19 +#: stock/templates/stock/item_base.html:362 +msgid "Manufacturer Part" +msgstr "" + +#: company/models.py:397 +msgid "Parameter name" +msgstr "" + +#: company/models.py:403 part/templates/part/params.html:28 +#: report/templates/report/inventree_test_report_base.html:90 +#: stock/models.py:1756 templates/InvenTree/settings/header.html:8 +#: templates/js/company.js:241 templates/js/stock.js:137 +msgid "Value" +msgstr "" + +#: company/models.py:404 +msgid "Parameter value" +msgstr "" + +#: company/models.py:410 part/models.py:813 part/models.py:2165 +#: part/templates/part/detail.html:106 part/templates/part/params.html:29 +#: templates/js/company.js:247 +msgid "Units" +msgstr "" + +#: company/models.py:411 +msgid "Parameter units" +msgstr "" + +#: company/models.py:507 company/templates/company/detail.html:62 #: company/templates/company/supplier_part_base.html:84 -#: company/templates/company/supplier_part_detail.html:25 order/models.py:192 +#: company/templates/company/supplier_part_detail.html:25 order/models.py:193 #: order/templates/order/order_base.html:92 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175 -#: part/bom.py:286 stock/templates/stock/item_base.html:364 -#: templates/js/company.js:48 templates/js/company.js:263 +#: part/bom.py:286 stock/templates/stock/item_base.html:369 +#: templates/js/company.js:48 templates/js/company.js:364 #: templates/js/order.js:170 msgid "Supplier" msgstr "" -#: company/models.py:467 +#: company/models.py:508 msgid "Select supplier" msgstr "" -#: company/models.py:472 company/templates/company/supplier_part_base.html:88 +#: company/models.py:513 company/templates/company/supplier_part_base.html:88 #: company/templates/company/supplier_part_detail.html:26 #: order/templates/order/purchase_order_detail.html:153 part/bom.py:176 #: part/bom.py:287 msgid "SKU" msgstr "" -#: company/models.py:473 +#: company/models.py:514 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:479 -#: company/templates/company/manufacturer_part_base.html:6 -#: company/templates/company/manufacturer_part_base.html:19 -#: stock/templates/stock/item_base.html:357 -msgid "Manufacturer Part" -msgstr "" - -#: company/models.py:480 +#: company/models.py:521 msgid "Select manufacturer part" msgstr "" -#: company/models.py:486 +#: company/models.py:527 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:492 +#: company/models.py:533 msgid "Supplier part description" msgstr "" -#: company/models.py:497 company/templates/company/supplier_part_base.html:116 -#: company/templates/company/supplier_part_detail.html:38 part/models.py:2282 +#: company/models.py:538 company/templates/company/supplier_part_base.html:116 +#: company/templates/company/supplier_part_detail.html:38 part/models.py:2305 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" -#: company/models.py:501 part/models.py:1614 +#: company/models.py:542 part/models.py:1606 msgid "base cost" msgstr "" -#: company/models.py:501 part/models.py:1614 +#: company/models.py:542 part/models.py:1606 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:503 company/templates/company/supplier_part_base.html:109 +#: company/models.py:544 company/templates/company/supplier_part_base.html:109 #: stock/models.py:431 stock/templates/stock/item_base.html:310 -#: templates/js/stock.js:670 +#: templates/js/stock.js:695 msgid "Packaging" msgstr "" -#: company/models.py:503 +#: company/models.py:544 msgid "Part packaging" msgstr "" -#: company/models.py:505 part/models.py:1616 +#: company/models.py:546 part/models.py:1608 msgid "multiple" msgstr "" -#: company/models.py:505 +#: company/models.py:546 msgid "Order multiple" msgstr "" #: company/templates/company/assigned_stock.html:10 #: company/templates/company/navbar.html:62 -#: company/templates/company/navbar.html:65 templates/js/build.js:477 +#: company/templates/company/navbar.html:65 templates/js/build.js:562 msgid "Assigned Stock" msgstr "" @@ -2165,11 +2218,11 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/detail.html:67 order/models.py:463 +#: company/templates/company/detail.html:67 order/models.py:464 #: order/templates/order/sales_order_base.html:94 stock/models.py:449 #: stock/models.py:450 stock/templates/stock/item_base.html:262 #: templates/js/company.js:40 templates/js/order.js:267 -#: templates/js/stock.js:1072 +#: templates/js/stock.js:1097 msgid "Customer" msgstr "" @@ -2215,7 +2268,7 @@ msgstr "" #: company/templates/company/detail_manufacturer_part.html:66 #: company/templates/company/detail_supplier_part.html:66 #: part/templates/part/bom.html:159 part/templates/part/category.html:118 -#: templates/js/stock.js:1287 +#: templates/js/stock.js:1312 msgid "New Part" msgstr "" @@ -2248,13 +2301,12 @@ msgstr "" #: company/templates/company/detail_supplier_part.html:11 #: company/templates/company/manufacturer_part_navbar.html:11 -#: company/templates/company/manufacturer_part_suppliers.html:10 #: templates/InvenTree/search.html:164 msgid "Supplier Parts" msgstr "" #: company/templates/company/detail_supplier_part.html:21 -#: order/templates/order/order_wizard/select_parts.html:42 +#: order/templates/order/order_wizard/select_parts.html:44 #: order/templates/order/purchase_order_detail.html:50 msgid "Create new supplier part" msgstr "" @@ -2262,12 +2314,12 @@ msgstr "" #: company/templates/company/detail_supplier_part.html:22 #: company/templates/company/manufacturer_part_suppliers.html:17 #: order/templates/order/purchase_order_detail.html:49 -#: part/templates/part/supplier.html:17 templates/js/stock.js:1293 +#: part/templates/part/supplier.html:17 templates/js/stock.js:1318 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail_supplier_part.html:72 -#: company/templates/company/manufacturer_part_suppliers.html:47 +#: company/templates/company/manufacturer_part_suppliers.html:82 #: company/views.py:64 order/templates/order/purchase_orders.html:185 #: part/templates/part/supplier.html:50 msgid "New Supplier" @@ -2319,8 +2371,9 @@ msgid "There are %(count)s suppliers defined for this manufacturer part. If you msgstr "" #: company/templates/company/manufacturer_part_navbar.html:14 -#: company/views.py:63 part/templates/part/navbar.html:84 -#: part/templates/part/navbar.html:87 templates/InvenTree/search.html:316 +#: company/templates/company/manufacturer_part_suppliers.html:10 +#: company/views.py:63 part/templates/part/navbar.html:86 +#: part/templates/part/navbar.html:89 templates/InvenTree/search.html:316 #: templates/navbar.html:35 msgid "Suppliers" msgstr "" @@ -2332,13 +2385,13 @@ msgstr "" #: company/templates/company/manufacturer_part_navbar.html:22 #: company/templates/company/navbar.html:41 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:36 stock/api.py:54 +#: part/templates/part/navbar.html:38 stock/api.py:54 #: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196 #: templates/InvenTree/search.html:232 #: templates/InvenTree/settings/tabs.html:31 templates/js/part.js:181 -#: templates/js/part.js:305 templates/js/part.js:464 templates/js/stock.js:561 +#: templates/js/part.js:305 templates/js/part.js:465 templates/js/stock.js:566 #: templates/navbar.html:26 msgid "Stock" msgstr "" @@ -2360,11 +2413,25 @@ msgstr "" #: company/templates/company/manufacturer_part_suppliers.html:22 #: part/templates/part/manufacturer.html:24 part/templates/part/params.html:44 #: part/templates/part/related.html:44 part/templates/part/supplier.html:22 -#: stock/views.py:1002 users/models.py:187 +#: stock/views.py:1002 users/models.py:191 msgid "Delete" msgstr "" -#: company/templates/company/manufacturer_part_suppliers.html:48 +#: company/templates/company/manufacturer_part_suppliers.html:37 +#: part/templates/part/category_navbar.html:34 +#: part/templates/part/category_navbar.html:37 +#: part/templates/part/navbar.html:24 +msgid "Parameters" +msgstr "" + +#: company/templates/company/manufacturer_part_suppliers.html:43 +#: part/templates/part/params.html:18 +#: templates/InvenTree/settings/category.html:29 +#: templates/InvenTree/settings/part.html:48 +msgid "New Parameter" +msgstr "" + +#: company/templates/company/manufacturer_part_suppliers.html:83 #: part/templates/part/supplier.html:51 msgid "Create new supplier" msgstr "" @@ -2379,13 +2446,13 @@ msgstr "" msgid "Supplied Parts" msgstr "" -#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:33 +#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:35 #: stock/templates/stock/location.html:107 #: stock/templates/stock/location.html:122 #: stock/templates/stock/location.html:136 #: stock/templates/stock/location_navbar.html:22 #: stock/templates/stock/location_navbar.html:29 -#: templates/InvenTree/search.html:198 templates/js/stock.js:971 +#: templates/InvenTree/search.html:198 templates/js/stock.js:996 #: templates/stats.html:93 templates/stats.html:102 users/models.py:42 msgid "Stock Items" msgstr "" @@ -2396,7 +2463,7 @@ msgstr "" #: company/templates/company/sales_orders.html:11 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:13 -#: part/templates/part/navbar.html:104 part/templates/part/navbar.html:107 +#: part/templates/part/navbar.html:112 part/templates/part/navbar.html:115 #: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228 #: templates/InvenTree/search.html:345 #: templates/InvenTree/settings/tabs.html:40 templates/navbar.html:46 @@ -2408,7 +2475,7 @@ msgstr "" #: company/templates/company/purchase_orders.html:10 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:13 -#: part/templates/part/navbar.html:90 part/templates/part/navbar.html:93 +#: part/templates/part/navbar.html:92 part/templates/part/navbar.html:95 #: part/templates/part/orders.html:10 templates/InvenTree/index.html:205 #: templates/InvenTree/search.html:325 #: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:37 @@ -2442,7 +2509,7 @@ msgstr "" #: company/templates/company/supplier_part_base.html:7 #: company/templates/company/supplier_part_base.html:20 stock/models.py:416 -#: stock/templates/stock/item_base.html:369 templates/js/company.js:279 +#: stock/templates/stock/item_base.html:374 templates/js/company.js:380 msgid "Supplier Part" msgstr "" @@ -2490,8 +2557,8 @@ msgstr "" msgid "Pricing Information" msgstr "" -#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794 -#: part/templates/part/sale_prices.html:17 part/views.py:2733 +#: company/templates/company/supplier_part_pricing.html:19 company/views.py:855 +#: part/templates/part/sale_prices.html:17 part/views.py:2751 msgid "Add Price Break" msgstr "" @@ -2510,8 +2577,8 @@ msgstr "" msgid "Delete price break" msgstr "" -#: company/views.py:70 part/templates/part/navbar.html:78 -#: part/templates/part/navbar.html:81 templates/InvenTree/search.html:306 +#: company/views.py:70 part/templates/part/navbar.html:80 +#: part/templates/part/navbar.html:83 templates/InvenTree/search.html:306 #: templates/navbar.html:36 msgid "Manufacturers" msgstr "" @@ -2533,20 +2600,20 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:169 part/views.py:937 +#: company/views.py:169 part/views.py:948 msgid "Download Image" msgstr "" -#: company/views.py:198 part/views.py:969 +#: company/views.py:198 part/views.py:980 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:205 part/views.py:976 +#: company/views.py:205 part/views.py:987 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:214 part/views.py:985 +#: company/views.py:214 part/views.py:996 msgid "Supplied URL is not a valid image file" msgstr "" @@ -2594,27 +2661,35 @@ msgstr "" msgid "Delete Manufacturer Part" msgstr "" -#: company/views.py:528 +#: company/views.py:514 +msgid "Add Manufacturer Part Parameter" +msgstr "" + +#: company/views.py:548 +msgid "Edit Manufacturer Part Parameter" +msgstr "" + +#: company/views.py:588 msgid "Edit Supplier Part" msgstr "" -#: company/views.py:578 templates/js/stock.js:1294 +#: company/views.py:639 templates/js/stock.js:1319 msgid "Create new Supplier Part" msgstr "" -#: company/views.py:722 +#: company/views.py:783 msgid "Delete Supplier Part" msgstr "" -#: company/views.py:799 part/views.py:2737 +#: company/views.py:860 part/views.py:2755 msgid "Added new price break" msgstr "" -#: company/views.py:855 part/views.py:2781 +#: company/views.py:916 part/views.py:2799 msgid "Edit Price Break" msgstr "" -#: company/views.py:870 part/views.py:2795 +#: company/views.py:931 part/views.py:2813 msgid "Delete Price Break" msgstr "" @@ -2638,7 +2713,7 @@ msgstr "" msgid "Label template file" msgstr "" -#: label/models.py:124 report/models.py:274 +#: label/models.py:124 report/models.py:297 msgid "Enabled" msgstr "" @@ -2662,7 +2737,7 @@ msgstr "" msgid "Label height, specified in mm" msgstr "" -#: label/models.py:144 +#: label/models.py:144 report/models.py:290 msgid "Filename Pattern" msgstr "" @@ -2674,8 +2749,8 @@ msgstr "" msgid "Query filters (comma-separated list of key=value pairs" msgstr "" -#: label/models.py:245 label/models.py:298 report/models.py:294 -#: report/models.py:415 report/models.py:449 +#: label/models.py:245 label/models.py:298 report/models.py:317 +#: report/models.py:440 report/models.py:474 msgid "Filters" msgstr "" @@ -2696,237 +2771,239 @@ msgstr "" msgid "Ship order" msgstr "" -#: order/forms.py:82 +#: order/forms.py:86 msgid "Receive parts to this location" msgstr "" -#: order/forms.py:103 +#: order/forms.py:108 msgid "Purchase Order reference" msgstr "" -#: order/forms.py:110 +#: order/forms.py:115 msgid "Target date for order delivery. Order will be overdue after this date." msgstr "" -#: order/forms.py:138 +#: order/forms.py:143 msgid "Enter sales order number" msgstr "" -#: order/forms.py:145 order/models.py:475 +#: order/forms.py:150 order/models.py:476 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/forms.py:236 +#: order/forms.py:242 msgid "Enter stock item serial numbers" msgstr "" -#: order/forms.py:242 +#: order/forms.py:248 msgid "Enter quantity of stock items" msgstr "" -#: order/models.py:101 +#: order/models.py:102 msgid "Order reference" msgstr "" -#: order/models.py:103 +#: order/models.py:104 msgid "Order description" msgstr "" -#: order/models.py:105 +#: order/models.py:106 msgid "Link to external page" msgstr "" -#: order/models.py:113 part/templates/part/detail.html:132 +#: order/models.py:114 part/templates/part/detail.html:132 msgid "Created By" msgstr "" -#: order/models.py:120 +#: order/models.py:121 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:125 +#: order/models.py:126 msgid "Order notes" msgstr "" -#: order/models.py:184 order/models.py:468 +#: order/models.py:185 order/models.py:469 msgid "Purchase order status" msgstr "" -#: order/models.py:193 +#: order/models.py:194 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:196 order/templates/order/order_base.html:98 +#: order/models.py:197 order/templates/order/order_base.html:98 #: templates/js/order.js:179 msgid "Supplier Reference" msgstr "" -#: order/models.py:196 +#: order/models.py:197 msgid "Supplier order reference code" msgstr "" -#: order/models.py:203 +#: order/models.py:204 msgid "received by" msgstr "" -#: order/models.py:208 +#: order/models.py:209 msgid "Issue Date" msgstr "" -#: order/models.py:209 +#: order/models.py:210 msgid "Date order was issued" msgstr "" -#: order/models.py:214 +#: order/models.py:215 msgid "Target Delivery Date" msgstr "" -#: order/models.py:215 +#: order/models.py:216 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:221 +#: order/models.py:222 msgid "Date order was completed" msgstr "" -#: order/models.py:245 part/views.py:1675 stock/models.py:304 +#: order/models.py:246 part/views.py:1686 stock/models.py:304 #: stock/models.py:1020 msgid "Quantity must be greater than zero" msgstr "" -#: order/models.py:250 +#: order/models.py:251 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:348 +#: order/models.py:349 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:352 +#: order/models.py:353 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:354 +#: order/models.py:355 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:464 +#: order/models.py:465 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:470 +#: order/models.py:471 msgid "Customer Reference " msgstr "" -#: order/models.py:470 +#: order/models.py:471 msgid "Customer order reference code" msgstr "" -#: order/models.py:478 templates/js/order.js:303 +#: order/models.py:479 templates/js/order.js:303 msgid "Shipment Date" msgstr "" -#: order/models.py:485 +#: order/models.py:486 msgid "shipped by" msgstr "" -#: order/models.py:529 +#: order/models.py:530 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:616 +#: order/models.py:617 msgid "Item quantity" msgstr "" -#: order/models.py:618 +#: order/models.py:619 msgid "Line item reference" msgstr "" -#: order/models.py:620 +#: order/models.py:621 msgid "Line item notes" msgstr "" -#: order/models.py:646 order/models.py:691 -#: part/templates/part/allocation.html:17 -#: part/templates/part/allocation.html:45 +#: order/models.py:647 order/models.py:715 templates/js/order.js:353 msgid "Order" msgstr "" -#: order/models.py:647 order/templates/order/order_base.html:9 +#: order/models.py:648 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:324 templates/js/order.js:148 -#: templates/js/stock.js:1053 +#: templates/js/stock.js:669 templates/js/stock.js:1078 msgid "Purchase Order" msgstr "" -#: order/models.py:661 +#: order/models.py:662 msgid "Supplier part" msgstr "" -#: order/models.py:664 order/templates/order/order_base.html:131 +#: order/models.py:665 order/templates/order/order_base.html:131 #: order/templates/order/purchase_order_detail.html:219 #: order/templates/order/receive_parts.html:22 #: order/templates/order/sales_order_base.html:133 msgid "Received" msgstr "" -#: order/models.py:664 +#: order/models.py:665 msgid "Number of items received" msgstr "" -#: order/models.py:671 stock/models.py:542 -#: stock/templates/stock/item_base.html:331 templates/js/stock.js:665 +#: order/models.py:672 stock/models.py:542 +#: stock/templates/stock/item_base.html:331 templates/js/stock.js:690 msgid "Purchase Price" msgstr "" -#: order/models.py:672 +#: order/models.py:673 msgid "Unit purchase price" msgstr "" -#: order/models.py:700 part/templates/part/navbar.html:101 -#: part/templates/part/order_prices.html:82 -#: part/templates/part/part_pricing.html:78 +#: order/models.py:681 +msgid "Where does the Purchaser want this item to be stored?" +msgstr "" + +#: order/models.py:724 part/templates/part/navbar.html:109 +#: part/templates/part/order_prices.html:107 +#: part/templates/part/part_pricing.html:97 msgid "Sale Price" msgstr "" -#: order/models.py:701 +#: order/models.py:725 msgid "Unit sale price" msgstr "" -#: order/models.py:776 order/models.py:778 +#: order/models.py:800 order/models.py:802 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:782 +#: order/models.py:806 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:784 +#: order/models.py:808 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:787 +#: order/models.py:811 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:797 +#: order/models.py:821 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:802 +#: order/models.py:826 msgid "Line" msgstr "" -#: order/models.py:813 +#: order/models.py:837 msgid "Item" msgstr "" -#: order/models.py:814 +#: order/models.py:838 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:817 +#: order/models.py:841 msgid "Enter stock allocation quantity" msgstr "" @@ -2955,7 +3032,7 @@ msgid "Export order to file" msgstr "" #: order/templates/order/order_base.html:72 -#: order/templates/order/po_navbar.html:11 +#: order/templates/order/po_navbar.html:12 msgid "Purchase Order Details" msgstr "" @@ -2977,8 +3054,8 @@ msgstr "" #: order/templates/order/order_base.html:180 #: order/templates/order/purchase_order_detail.html:100 #: part/templates/part/category.html:208 part/templates/part/category.html:250 -#: stock/templates/stock/location.html:191 templates/js/stock.js:711 -#: templates/js/stock.js:1299 +#: stock/templates/stock/location.html:191 templates/js/stock.js:736 +#: templates/js/stock.js:1324 msgid "New Location" msgstr "" @@ -3081,28 +3158,32 @@ msgstr "" msgid "Order is already processed. Files cannot be uploaded." msgstr "" -#: order/templates/order/order_wizard/select_parts.html:9 +#: order/templates/order/order_wizard/select_parts.html:11 msgid "Step 1 of 2 - Select Part Suppliers" msgstr "" -#: order/templates/order/order_wizard/select_parts.html:14 +#: order/templates/order/order_wizard/select_parts.html:16 msgid "Select suppliers" msgstr "" -#: order/templates/order/order_wizard/select_parts.html:18 +#: order/templates/order/order_wizard/select_parts.html:20 msgid "No purchaseable parts selected" msgstr "" -#: order/templates/order/order_wizard/select_parts.html:31 +#: order/templates/order/order_wizard/select_parts.html:33 msgid "Select Supplier" msgstr "" #: order/templates/order/order_wizard/select_parts.html:57 +msgid "No price" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:65 #, python-format msgid "Select a supplier for %(name)s" msgstr "" -#: order/templates/order/order_wizard/select_parts.html:69 +#: order/templates/order/order_wizard/select_parts.html:77 #: part/templates/part/set_category.html:32 msgid "Remove part" msgstr "" @@ -3135,15 +3216,20 @@ msgid "Select a purchase order for %(name)s" msgstr "" #: order/templates/order/po_attachments.html:12 -#: order/templates/order/po_navbar.html:23 +#: order/templates/order/po_navbar.html:32 msgid "Purchase Order Attachments" msgstr "" -#: order/templates/order/po_navbar.html:17 +#: order/templates/order/po_lineitem_delete.html:5 +#: order/templates/order/so_lineitem_delete.html:5 +msgid "Are you sure you wish to delete this line item?" +msgstr "" + +#: order/templates/order/po_navbar.html:26 msgid "Received Stock Items" msgstr "" -#: order/templates/order/po_navbar.html:20 +#: order/templates/order/po_navbar.html:29 #: order/templates/order/po_received_items.html:12 msgid "Received Items" msgstr "" @@ -3153,8 +3239,8 @@ msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:24 -#: order/templates/order/sales_order_detail.html:22 order/views.py:1311 -#: order/views.py:1394 +#: order/templates/order/sales_order_detail.html:22 order/views.py:1321 +#: order/views.py:1404 msgid "Add Line Item" msgstr "" @@ -3162,25 +3248,31 @@ msgstr "" msgid "No line items found" msgstr "" +#: order/templates/order/purchase_order_detail.html:142 +#: order/templates/order/sales_order_detail.html:223 +msgid "Total" +msgstr "" + #: order/templates/order/purchase_order_detail.html:191 -#: order/templates/order/sales_order_detail.html:235 +#: order/templates/order/sales_order_detail.html:246 msgid "Unit Price" msgstr "" #: order/templates/order/purchase_order_detail.html:198 +#: order/templates/order/sales_order_detail.html:253 msgid "Total price" msgstr "" -#: order/templates/order/purchase_order_detail.html:251 -#: order/templates/order/sales_order_detail.html:328 +#: order/templates/order/purchase_order_detail.html:255 +#: order/templates/order/sales_order_detail.html:359 msgid "Edit line item" msgstr "" -#: order/templates/order/purchase_order_detail.html:252 +#: order/templates/order/purchase_order_detail.html:256 msgid "Delete line item" msgstr "" -#: order/templates/order/purchase_order_detail.html:257 +#: order/templates/order/purchase_order_detail.html:261 msgid "Receive line item" msgstr "" @@ -3201,7 +3293,7 @@ msgstr "" #: part/templates/part/category_navbar.html:29 #: part/templates/part/category_partlist.html:10 #: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114 -#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:665 +#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:666 #: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89 #: users/models.py:40 msgid "Parts" @@ -3216,7 +3308,7 @@ msgid "Order Code" msgstr "" #: order/templates/order/receive_parts.html:21 -#: part/templates/part/part_base.html:136 templates/js/part.js:480 +#: part/templates/part/part_base.html:136 templates/js/part.js:481 msgid "On Order" msgstr "" @@ -3224,11 +3316,11 @@ msgstr "" msgid "Receive" msgstr "" -#: order/templates/order/receive_parts.html:36 +#: order/templates/order/receive_parts.html:37 msgid "Error: Referenced part has been removed" msgstr "" -#: order/templates/order/receive_parts.html:57 +#: order/templates/order/receive_parts.html:61 msgid "Remove line" msgstr "" @@ -3265,17 +3357,17 @@ msgid "Sales Order Items" msgstr "" #: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:365 -#: templates/js/build.js:637 templates/js/build.js:1054 +#: templates/js/build.js:724 templates/js/build.js:1141 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:525 -#: templates/js/build.js:859 +#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:610 +#: templates/js/build.js:946 msgid "Edit stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:527 -#: templates/js/build.js:860 +#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:612 +#: templates/js/build.js:947 msgid "Delete stock allocation" msgstr "" @@ -3283,50 +3375,50 @@ msgstr "" msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:205 +#: order/templates/order/sales_order_detail.html:206 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:589 -#: templates/js/build.js:855 +#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:675 +#: templates/js/build.js:942 msgid "Allocated" msgstr "" -#: order/templates/order/sales_order_detail.html:245 +#: order/templates/order/sales_order_detail.html:276 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:282 +#: order/templates/order/sales_order_detail.html:313 msgid "PO" msgstr "" -#: order/templates/order/sales_order_detail.html:312 +#: order/templates/order/sales_order_detail.html:343 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:651 +#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:738 msgid "Allocate stock" msgstr "" -#: order/templates/order/sales_order_detail.html:318 +#: order/templates/order/sales_order_detail.html:349 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:644 -#: templates/js/build.js:1062 +#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:731 +#: templates/js/build.js:1149 msgid "Build stock" msgstr "" -#: order/templates/order/sales_order_detail.html:325 -#: order/templates/order/sales_order_detail.html:434 +#: order/templates/order/sales_order_detail.html:356 +#: order/templates/order/sales_order_detail.html:465 msgid "Calculate price" msgstr "" -#: order/templates/order/sales_order_detail.html:329 +#: order/templates/order/sales_order_detail.html:360 msgid "Delete line item " msgstr "" -#: order/templates/order/sales_order_detail.html:440 +#: order/templates/order/sales_order_detail.html:471 msgid "Update Unit Price" msgstr "" @@ -3367,10 +3459,6 @@ msgstr "" msgid "Sales Order Attachments" msgstr "" -#: order/templates/order/so_lineitem_delete.html:5 -msgid "Are you sure you wish to delete this line item?" -msgstr "" - #: order/views.py:104 msgid "Add Purchase Order Attachment" msgstr "" @@ -3471,90 +3559,94 @@ msgstr "" msgid "No lines specified" msgstr "" -#: order/views.py:1260 +#: order/views.py:1012 +msgid "Update prices" +msgstr "" + +#: order/views.py:1270 #, python-brace-format msgid "Ordered {n} parts" msgstr "" -#: order/views.py:1320 +#: order/views.py:1330 msgid "Supplier part must be specified" msgstr "" -#: order/views.py:1326 +#: order/views.py:1336 msgid "Supplier must match for Part and Order" msgstr "" -#: order/views.py:1457 order/views.py:1475 +#: order/views.py:1467 order/views.py:1485 msgid "Edit Line Item" msgstr "" -#: order/views.py:1491 order/views.py:1503 +#: order/views.py:1501 order/views.py:1513 msgid "Delete Line Item" msgstr "" -#: order/views.py:1496 order/views.py:1508 +#: order/views.py:1506 order/views.py:1518 msgid "Deleted line item" msgstr "" -#: order/views.py:1521 +#: order/views.py:1531 msgid "Allocate Serial Numbers" msgstr "" -#: order/views.py:1566 +#: order/views.py:1576 #, python-brace-format msgid "Allocated {n} items" msgstr "" -#: order/views.py:1582 +#: order/views.py:1592 msgid "Select line item" msgstr "" -#: order/views.py:1613 -#, python-brace-format -msgid "No matching item for serial {serial}" -msgstr "" - #: order/views.py:1623 #, python-brace-format +msgid "No matching item for serial {serial}" +msgstr "" + +#: order/views.py:1633 +#, python-brace-format msgid "{serial} is not in stock" msgstr "" -#: order/views.py:1631 +#: order/views.py:1641 #, python-brace-format msgid "{serial} already allocated to an order" msgstr "" -#: order/views.py:1685 +#: order/views.py:1695 msgid "Allocate Stock to Order" msgstr "" -#: order/views.py:1759 +#: order/views.py:1769 msgid "Edit Allocation Quantity" msgstr "" -#: order/views.py:1774 +#: order/views.py:1784 msgid "Remove allocation" msgstr "" -#: order/views.py:1846 +#: order/views.py:1856 msgid "Sales order not found" msgstr "" -#: order/views.py:1852 +#: order/views.py:1862 msgid "Price not found" msgstr "" -#: order/views.py:1855 +#: order/views.py:1865 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:1860 +#: order/views.py:1870 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/bom.py:138 part/models.py:72 part/models.py:762 +#: part/bom.py:138 part/models.py:72 part/models.py:747 #: part/templates/part/category.html:66 part/templates/part/detail.html:90 msgid "Default Location" msgstr "" @@ -3632,7 +3724,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:122 part/models.py:2168 +#: part/forms.py:122 part/models.py:2191 msgid "Parent Part" msgstr "" @@ -3708,7 +3800,7 @@ msgstr "" msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:344 part/models.py:2263 +#: part/forms.py:344 part/models.py:2286 msgid "Sub part" msgstr "" @@ -3728,7 +3820,7 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:82 part/models.py:2214 +#: part/models.py:82 part/models.py:2237 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -3739,365 +3831,360 @@ msgstr "" msgid "Part Categories" msgstr "" -#: part/models.py:446 part/models.py:458 +#: part/models.py:448 part/models.py:460 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:555 +#: part/models.py:557 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:559 +#: part/models.py:561 msgid "Next available serial number is" msgstr "" -#: part/models.py:564 +#: part/models.py:566 msgid "Most recent serial number is" msgstr "" -#: part/models.py:643 +#: part/models.py:645 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:654 -msgid "Part must be unique for name, IPN and revision" -msgstr "" - -#: part/models.py:685 part/templates/part/detail.html:22 +#: part/models.py:670 part/templates/part/detail.html:22 msgid "Part name" msgstr "" -#: part/models.py:692 +#: part/models.py:677 msgid "Is Template" msgstr "" -#: part/models.py:693 +#: part/models.py:678 msgid "Is this part a template part?" msgstr "" -#: part/models.py:704 +#: part/models.py:689 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:705 part/templates/part/detail.html:60 +#: part/models.py:690 part/templates/part/detail.html:60 msgid "Variant Of" msgstr "" -#: part/models.py:711 +#: part/models.py:696 msgid "Part description" msgstr "" -#: part/models.py:716 part/templates/part/category.html:73 +#: part/models.py:701 part/templates/part/category.html:73 #: part/templates/part/detail.html:67 msgid "Keywords" msgstr "" -#: part/models.py:717 +#: part/models.py:702 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:724 part/models.py:2213 part/templates/part/detail.html:73 -#: part/templates/part/set_category.html:15 templates/js/part.js:451 +#: part/models.py:709 part/models.py:2236 part/templates/part/detail.html:73 +#: part/templates/part/set_category.html:15 templates/js/part.js:452 msgid "Category" msgstr "" -#: part/models.py:725 +#: part/models.py:710 msgid "Part category" msgstr "" -#: part/models.py:730 part/templates/part/detail.html:28 +#: part/models.py:715 part/templates/part/detail.html:28 #: part/templates/part/part_base.html:87 templates/js/part.js:169 #: templates/js/part.js:296 msgid "IPN" msgstr "" -#: part/models.py:731 +#: part/models.py:716 msgid "Internal Part Number" msgstr "" -#: part/models.py:737 +#: part/models.py:722 msgid "Part revision or version number" msgstr "" -#: part/models.py:738 part/templates/part/detail.html:35 report/models.py:198 +#: part/models.py:723 part/templates/part/detail.html:35 report/models.py:199 #: templates/js/part.js:173 msgid "Revision" msgstr "" -#: part/models.py:760 +#: part/models.py:745 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:807 part/templates/part/detail.html:97 +#: part/models.py:792 part/templates/part/detail.html:97 msgid "Default Supplier" msgstr "" -#: part/models.py:808 +#: part/models.py:793 msgid "Default supplier part" msgstr "" -#: part/models.py:815 +#: part/models.py:800 msgid "Default Expiry" msgstr "" -#: part/models.py:816 +#: part/models.py:801 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:821 part/templates/part/detail.html:113 +#: part/models.py:806 part/templates/part/detail.html:113 msgid "Minimum Stock" msgstr "" -#: part/models.py:822 +#: part/models.py:807 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:828 part/models.py:2142 part/templates/part/detail.html:106 -#: part/templates/part/params.html:29 -msgid "Units" -msgstr "" - -#: part/models.py:829 +#: part/models.py:814 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:835 +#: part/models.py:820 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:841 +#: part/models.py:826 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:847 +#: part/models.py:832 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:852 +#: part/models.py:837 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:857 +#: part/models.py:842 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:861 part/templates/part/detail.html:227 +#: part/models.py:846 part/templates/part/detail.html:227 #: templates/js/table_filters.js:21 templates/js/table_filters.js:65 #: templates/js/table_filters.js:241 templates/js/table_filters.js:310 msgid "Active" msgstr "" -#: part/models.py:862 +#: part/models.py:847 msgid "Is this part active?" msgstr "" -#: part/models.py:867 +#: part/models.py:852 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:872 +#: part/models.py:857 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:875 +#: part/models.py:860 msgid "BOM checksum" msgstr "" -#: part/models.py:875 +#: part/models.py:860 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:878 +#: part/models.py:863 msgid "BOM checked by" msgstr "" -#: part/models.py:880 +#: part/models.py:865 msgid "BOM checked date" msgstr "" -#: part/models.py:884 +#: part/models.py:869 msgid "Creation User" msgstr "" -#: part/models.py:1616 +#: part/models.py:1608 msgid "Sell multiple" msgstr "" -#: part/models.py:2040 +#: part/models.py:2063 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2057 +#: part/models.py:2080 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2077 templates/js/part.js:716 templates/js/stock.js:117 +#: part/models.py:2100 templates/js/part.js:717 templates/js/stock.js:117 msgid "Test Name" msgstr "" -#: part/models.py:2078 +#: part/models.py:2101 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2083 +#: part/models.py:2106 msgid "Test Description" msgstr "" -#: part/models.py:2084 +#: part/models.py:2107 msgid "Enter description for this test" msgstr "" -#: part/models.py:2089 templates/js/part.js:725 +#: part/models.py:2112 templates/js/part.js:726 #: templates/js/table_filters.js:227 msgid "Required" msgstr "" -#: part/models.py:2090 +#: part/models.py:2113 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2095 templates/js/part.js:733 +#: part/models.py:2118 templates/js/part.js:734 msgid "Requires Value" msgstr "" -#: part/models.py:2096 +#: part/models.py:2119 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2101 templates/js/part.js:740 +#: part/models.py:2124 templates/js/part.js:741 msgid "Requires Attachment" msgstr "" -#: part/models.py:2102 +#: part/models.py:2125 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2135 +#: part/models.py:2158 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2140 +#: part/models.py:2163 msgid "Parameter Name" msgstr "" -#: part/models.py:2142 +#: part/models.py:2165 msgid "Parameter Units" msgstr "" -#: part/models.py:2170 part/models.py:2219 part/models.py:2220 +#: part/models.py:2193 part/models.py:2242 part/models.py:2243 #: templates/InvenTree/settings/category.html:62 msgid "Parameter Template" msgstr "" -#: part/models.py:2172 +#: part/models.py:2195 msgid "Data" msgstr "" -#: part/models.py:2172 +#: part/models.py:2195 msgid "Parameter Value" msgstr "" -#: part/models.py:2224 templates/InvenTree/settings/category.html:67 +#: part/models.py:2247 templates/InvenTree/settings/category.html:67 msgid "Default Value" msgstr "" -#: part/models.py:2225 +#: part/models.py:2248 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2255 +#: part/models.py:2278 msgid "Select parent part" msgstr "" -#: part/models.py:2264 +#: part/models.py:2287 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2270 +#: part/models.py:2293 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2272 templates/js/bom.js:216 templates/js/bom.js:285 +#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:285 msgid "Optional" msgstr "" -#: part/models.py:2272 +#: part/models.py:2295 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2275 +#: part/models.py:2298 msgid "Overage" msgstr "" -#: part/models.py:2276 +#: part/models.py:2299 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2279 +#: part/models.py:2302 msgid "BOM item reference" msgstr "" -#: part/models.py:2282 +#: part/models.py:2305 msgid "BOM item notes" msgstr "" -#: part/models.py:2284 +#: part/models.py:2307 msgid "Checksum" msgstr "" -#: part/models.py:2284 +#: part/models.py:2307 msgid "BOM line checksum" msgstr "" -#: part/models.py:2288 templates/js/bom.js:302 templates/js/bom.js:309 +#: part/models.py:2311 templates/js/bom.js:302 templates/js/bom.js:309 #: templates/js/table_filters.js:51 msgid "Inherited" msgstr "" -#: part/models.py:2289 +#: part/models.py:2312 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2294 templates/js/bom.js:294 +#: part/models.py:2317 templates/js/bom.js:294 msgid "Allow Variants" msgstr "" -#: part/models.py:2295 +#: part/models.py:2318 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2371 part/views.py:1681 part/views.py:1733 +#: part/models.py:2394 part/views.py:1692 part/views.py:1744 #: stock/models.py:294 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2380 part/models.py:2382 +#: part/models.py:2403 part/models.py:2405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2385 +#: part/models.py:2408 msgid "BOM Item" msgstr "" -#: part/models.py:2502 +#: part/models.py:2527 msgid "Part 1" msgstr "" -#: part/models.py:2506 +#: part/models.py:2531 msgid "Part 2" msgstr "" -#: part/models.py:2506 +#: part/models.py:2531 msgid "Select Related Part" msgstr "" -#: part/models.py:2538 +#: part/models.py:2563 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" #: part/templates/part/allocation.html:11 -msgid "Part Stock Allocations" +msgid "Build Order Allocations" +msgstr "" + +#: part/templates/part/allocation.html:24 +msgid "Sales Order Allocations" msgstr "" #: part/templates/part/attachments.html:10 @@ -4112,8 +4199,8 @@ msgstr "" msgid "Deleting this entry will remove the BOM row from the following part" msgstr "" -#: part/templates/part/bom.html:10 part/templates/part/navbar.html:48 -#: part/templates/part/navbar.html:51 +#: part/templates/part/bom.html:10 part/templates/part/navbar.html:50 +#: part/templates/part/navbar.html:53 msgid "Bill of Materials" msgstr "" @@ -4160,7 +4247,7 @@ msgstr "" msgid "Validate Bill of Materials" msgstr "" -#: part/templates/part/bom.html:61 part/views.py:1976 +#: part/templates/part/bom.html:61 part/views.py:1987 msgid "Export Bill of Materials" msgstr "" @@ -4177,7 +4264,7 @@ msgid "All selected BOM items will be deleted" msgstr "" #: part/templates/part/bom.html:160 part/views.py:585 -#: templates/js/stock.js:1288 +#: templates/js/stock.js:1313 msgid "Create New Part" msgstr "" @@ -4258,7 +4345,7 @@ msgstr "" msgid "All parts" msgstr "" -#: part/templates/part/category.html:29 part/views.py:2379 +#: part/templates/part/category.html:29 part/views.py:2397 msgid "Create new part category" msgstr "" @@ -4318,7 +4405,7 @@ msgid "View grid display" msgstr "" #: part/templates/part/category.html:209 -#: stock/templates/stock/location.html:192 templates/js/stock.js:712 +#: stock/templates/stock/location.html:192 templates/js/stock.js:737 msgid "Create new location" msgstr "" @@ -4373,14 +4460,8 @@ msgstr "" msgid "If this category is deleted, these parts will be moved to the top-level category Teile" msgstr "" -#: part/templates/part/category_navbar.html:34 -#: part/templates/part/category_navbar.html:37 -#: part/templates/part/navbar.html:22 -msgid "Parameters" -msgstr "" - #: part/templates/part/category_parametric.html:10 -#: part/templates/part/navbar.html:19 part/templates/part/params.html:10 +#: part/templates/part/navbar.html:21 part/templates/part/params.html:10 msgid "Part Parameters" msgstr "" @@ -4408,7 +4489,7 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:11 part/templates/part/navbar.html:11 +#: part/templates/part/detail.html:11 part/templates/part/navbar.html:13 msgid "Part Details" msgstr "" @@ -4488,6 +4569,36 @@ msgstr "" msgid "Part is not active" msgstr "" +#: part/templates/part/internal_prices.html:11 +#: part/templates/part/navbar.html:100 +msgid "Internal Price Information" +msgstr "" + +#: part/templates/part/internal_prices.html:19 part/views.py:2822 +msgid "Add Internal Price Break" +msgstr "" + +#: part/templates/part/internal_prices.html:28 templates/403.html:5 +#: templates/403.html:11 +msgid "Permission Denied" +msgstr "" + +#: part/templates/part/internal_prices.html:31 templates/403.html:14 +msgid "You do not have permission to view this page." +msgstr "" + +#: part/templates/part/internal_prices.html:59 +msgid "No internal price break information found" +msgstr "" + +#: part/templates/part/internal_prices.html:110 +msgid "Edit internal price break" +msgstr "" + +#: part/templates/part/internal_prices.html:111 +msgid "Delete internal price break" +msgstr "" + #: part/templates/part/manufacturer.html:11 msgid "Part Manufacturers" msgstr "" @@ -4501,127 +4612,141 @@ msgstr "" msgid "Create new manufacturer" msgstr "" -#: part/templates/part/navbar.html:26 part/templates/part/variants.html:11 +#: part/templates/part/navbar.html:28 part/templates/part/variants.html:11 msgid "Part Variants" msgstr "" -#: part/templates/part/navbar.html:29 +#: part/templates/part/navbar.html:31 msgid "Variants" msgstr "" -#: part/templates/part/navbar.html:40 +#: part/templates/part/navbar.html:42 msgid "Allocated Stock" msgstr "" -#: part/templates/part/navbar.html:43 +#: part/templates/part/navbar.html:45 msgid "Allocations" msgstr "" -#: part/templates/part/navbar.html:64 part/templates/part/navbar.html:67 +#: part/templates/part/navbar.html:66 part/templates/part/navbar.html:69 msgid "Used In" msgstr "" -#: part/templates/part/navbar.html:72 part/templates/part/order_prices.html:12 +#: part/templates/part/navbar.html:74 part/templates/part/order_prices.html:12 msgid "Order Price Information" msgstr "" -#: part/templates/part/navbar.html:75 +#: part/templates/part/navbar.html:77 msgid "Order Price" msgstr "" -#: part/templates/part/navbar.html:98 +#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:93 +#: part/templates/part/part_pricing.html:82 +msgid "Internal Price" +msgstr "" + +#: part/templates/part/navbar.html:106 msgid "Sales Price Information" msgstr "" -#: part/templates/part/navbar.html:112 part/templates/part/part_tests.html:10 +#: part/templates/part/navbar.html:120 part/templates/part/part_tests.html:10 msgid "Part Test Templates" msgstr "" -#: part/templates/part/navbar.html:115 stock/templates/stock/item_base.html:409 +#: part/templates/part/navbar.html:123 stock/templates/stock/item_base.html:414 msgid "Tests" msgstr "" -#: part/templates/part/navbar.html:119 part/templates/part/navbar.html:122 +#: part/templates/part/navbar.html:127 part/templates/part/navbar.html:130 #: part/templates/part/related.html:10 msgid "Related Parts" msgstr "" -#: part/templates/part/navbar.html:131 part/templates/part/notes.html:12 +#: part/templates/part/navbar.html:139 part/templates/part/notes.html:12 msgid "Part Notes" msgstr "" -#: part/templates/part/order_prices.html:21 +#: part/templates/part/order_prices.html:24 +#: part/templates/part/part_base.html:282 +msgid "Calculate" +msgstr "" + +#: part/templates/part/order_prices.html:31 msgid "Pricing ranges" msgstr "" -#: part/templates/part/order_prices.html:26 -#: part/templates/part/part_pricing.html:19 +#: part/templates/part/order_prices.html:36 +#: part/templates/part/part_pricing.html:22 msgid "Supplier Pricing" msgstr "" -#: part/templates/part/order_prices.html:27 -#: part/templates/part/order_prices.html:52 -#: part/templates/part/order_prices.html:83 -#: part/templates/part/part_pricing.html:23 -#: part/templates/part/part_pricing.html:49 -#: part/templates/part/part_pricing.html:81 +#: part/templates/part/order_prices.html:37 +#: part/templates/part/order_prices.html:62 +#: part/templates/part/order_prices.html:94 +#: part/templates/part/order_prices.html:108 +#: part/templates/part/part_pricing.html:26 +#: part/templates/part/part_pricing.html:52 +#: part/templates/part/part_pricing.html:85 +#: part/templates/part/part_pricing.html:100 msgid "Unit Cost" msgstr "" -#: part/templates/part/order_prices.html:34 -#: part/templates/part/order_prices.html:59 -#: part/templates/part/order_prices.html:88 -#: part/templates/part/part_pricing.html:29 -#: part/templates/part/part_pricing.html:55 -#: part/templates/part/part_pricing.html:85 +#: part/templates/part/order_prices.html:44 +#: part/templates/part/order_prices.html:69 +#: part/templates/part/order_prices.html:99 +#: part/templates/part/order_prices.html:113 +#: part/templates/part/part_pricing.html:32 +#: part/templates/part/part_pricing.html:58 +#: part/templates/part/part_pricing.html:89 +#: part/templates/part/part_pricing.html:104 msgid "Total Cost" msgstr "" -#: part/templates/part/order_prices.html:42 -#: part/templates/part/part_pricing.html:37 +#: part/templates/part/order_prices.html:52 +#: part/templates/part/part_pricing.html:40 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/order_prices.html:51 -#: part/templates/part/order_prices.html:103 -#: part/templates/part/part_pricing.html:45 +#: part/templates/part/order_prices.html:61 +#: part/templates/part/order_prices.html:128 +#: part/templates/part/part_pricing.html:48 msgid "BOM Pricing" msgstr "" -#: part/templates/part/order_prices.html:67 -#: part/templates/part/part_pricing.html:63 +#: part/templates/part/order_prices.html:77 +#: part/templates/part/part_pricing.html:66 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/order_prices.html:74 -#: part/templates/part/part_pricing.html:70 +#: part/templates/part/order_prices.html:84 +#: part/templates/part/part_pricing.html:73 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/order_prices.html:97 -#: part/templates/part/part_pricing.html:94 +#: part/templates/part/order_prices.html:122 +#: part/templates/part/part_pricing.html:113 msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/order_prices.html:113 +#: part/templates/part/order_prices.html:138 msgid "Stock Pricing" msgstr "" -#: part/templates/part/order_prices.html:121 +#: part/templates/part/order_prices.html:146 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/order_prices.html:140 +#: part/templates/part/order_prices.html:165 #, python-format msgid "Single Price - %(currency)s" msgstr "" -#: part/templates/part/order_prices.html:152 +#: part/templates/part/order_prices.html:177 #, python-format msgid "Single Price Difference - %(currency)s" msgstr "" -#: part/templates/part/order_prices.html:163 +#: part/templates/part/order_prices.html:189 #, python-format msgid "Part Single Price - %(currency)s" msgstr "" @@ -4630,19 +4755,6 @@ msgstr "" msgid "Add new parameter" msgstr "" -#: part/templates/part/params.html:18 -#: templates/InvenTree/settings/category.html:29 -#: templates/InvenTree/settings/part.html:44 -msgid "New Parameter" -msgstr "" - -#: part/templates/part/params.html:28 -#: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1756 templates/InvenTree/settings/header.html:8 -#: templates/js/stock.js:137 -msgid "Value" -msgstr "" - #: part/templates/part/params.html:41 templates/InvenTree/settings/user.html:19 msgid "Edit" msgstr "" @@ -4660,7 +4772,7 @@ msgid "Part List" msgstr "" #: part/templates/part/part_base.html:26 templates/js/company.js:156 -#: templates/js/company.js:254 templates/js/part.js:84 templates/js/part.js:161 +#: templates/js/company.js:355 templates/js/part.js:84 templates/js/part.js:161 msgid "Inactive" msgstr "" @@ -4740,14 +4852,10 @@ msgid "Can Build" msgstr "" #: part/templates/part/part_base.html:178 templates/js/part.js:312 -#: templates/js/part.js:484 +#: templates/js/part.js:485 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:265 -msgid "Calculate" -msgstr "" - #: part/templates/part/part_tests.html:17 msgid "Add Test Template" msgstr "" @@ -4816,7 +4924,7 @@ msgid "Showing stock for all variants of %(full_name)s" msgstr "" #: part/templates/part/stock_count.html:7 templates/js/bom.js:239 -#: templates/js/part.js:302 templates/js/part.js:488 +#: templates/js/part.js:302 templates/js/part.js:489 msgid "No Stock" msgstr "" @@ -4853,7 +4961,7 @@ msgstr "" msgid "New Variant" msgstr "" -#: part/templatetags/inventree_extras.py:98 +#: part/templatetags/inventree_extras.py:99 msgid "Unknown database" msgstr "" @@ -4922,227 +5030,239 @@ msgstr "" msgid "Created new part" msgstr "" -#: part/views.py:914 +#: part/views.py:925 msgid "Part QR Code" msgstr "" -#: part/views.py:1016 +#: part/views.py:1027 msgid "Upload Part Image" msgstr "" -#: part/views.py:1022 part/views.py:1057 +#: part/views.py:1033 part/views.py:1068 msgid "Updated part image" msgstr "" -#: part/views.py:1031 +#: part/views.py:1042 msgid "Select Part Image" msgstr "" -#: part/views.py:1060 +#: part/views.py:1071 msgid "Part image not found" msgstr "" -#: part/views.py:1071 +#: part/views.py:1082 msgid "Edit Part Properties" msgstr "" -#: part/views.py:1106 +#: part/views.py:1117 msgid "Duplicate BOM" msgstr "" -#: part/views.py:1136 +#: part/views.py:1147 msgid "Confirm duplication of BOM from parent" msgstr "" -#: part/views.py:1157 +#: part/views.py:1168 msgid "Validate BOM" msgstr "" -#: part/views.py:1178 +#: part/views.py:1189 msgid "Confirm that the BOM is valid" msgstr "" -#: part/views.py:1189 +#: part/views.py:1200 msgid "Validated Bill of Materials" msgstr "" -#: part/views.py:1323 +#: part/views.py:1334 msgid "No BOM file provided" msgstr "" -#: part/views.py:1684 +#: part/views.py:1695 msgid "Enter a valid quantity" msgstr "" -#: part/views.py:1709 part/views.py:1712 +#: part/views.py:1720 part/views.py:1723 msgid "Select valid part" msgstr "" -#: part/views.py:1718 +#: part/views.py:1729 msgid "Duplicate part selected" msgstr "" -#: part/views.py:1756 +#: part/views.py:1767 msgid "Select a part" msgstr "" -#: part/views.py:1762 +#: part/views.py:1773 msgid "Selected part creates a circular BOM" msgstr "" -#: part/views.py:1766 +#: part/views.py:1777 msgid "Specify quantity" msgstr "" -#: part/views.py:2028 +#: part/views.py:2039 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:2035 +#: part/views.py:2046 msgid "Part was deleted" msgstr "" -#: part/views.py:2044 +#: part/views.py:2055 msgid "Part Pricing" msgstr "" -#: part/views.py:2178 +#: part/views.py:2196 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:2188 +#: part/views.py:2206 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:2195 +#: part/views.py:2213 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:2203 +#: part/views.py:2221 msgid "Create Part Parameter" msgstr "" -#: part/views.py:2253 +#: part/views.py:2271 msgid "Edit Part Parameter" msgstr "" -#: part/views.py:2267 +#: part/views.py:2285 msgid "Delete Part Parameter" msgstr "" -#: part/views.py:2327 +#: part/views.py:2345 msgid "Edit Part Category" msgstr "" -#: part/views.py:2365 +#: part/views.py:2383 msgid "Delete Part Category" msgstr "" -#: part/views.py:2371 +#: part/views.py:2389 msgid "Part category was deleted" msgstr "" -#: part/views.py:2423 +#: part/views.py:2441 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:2524 +#: part/views.py:2542 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:2580 +#: part/views.py:2598 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:2599 +#: part/views.py:2617 msgid "Create BOM Item" msgstr "" -#: part/views.py:2669 +#: part/views.py:2687 msgid "Edit BOM item" msgstr "" -#: part/views.py:2725 +#: part/views.py:2743 msgid "Confim BOM item deletion" msgstr "" -#: report/models.py:180 +#: part/views.py:2831 +msgid "Edit Internal Price Break" +msgstr "" + +#: part/views.py:2839 +msgid "Delete Internal Price Break" +msgstr "" + +#: report/models.py:181 msgid "Template name" msgstr "" -#: report/models.py:186 +#: report/models.py:187 msgid "Report template file" msgstr "" -#: report/models.py:193 +#: report/models.py:194 msgid "Report template description" msgstr "" -#: report/models.py:199 +#: report/models.py:200 msgid "Report revision number (auto-increments)" msgstr "" -#: report/models.py:275 +#: report/models.py:291 +msgid "Pattern for generating report filenames" +msgstr "" + +#: report/models.py:298 msgid "Report template is enabled" msgstr "" -#: report/models.py:295 +#: report/models.py:318 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:303 +#: report/models.py:326 msgid "Include Installed Tests" msgstr "" -#: report/models.py:304 +#: report/models.py:327 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:347 +#: report/models.py:371 msgid "Build Filters" msgstr "" -#: report/models.py:348 +#: report/models.py:372 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:385 +#: report/models.py:410 msgid "Part Filters" msgstr "" -#: report/models.py:386 +#: report/models.py:411 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:416 +#: report/models.py:441 msgid "Purchase order query filters" msgstr "" -#: report/models.py:450 +#: report/models.py:475 msgid "Sales order query filters" msgstr "" -#: report/models.py:500 +#: report/models.py:525 msgid "Snippet" msgstr "" -#: report/models.py:501 +#: report/models.py:526 msgid "Report snippet file" msgstr "" -#: report/models.py:505 +#: report/models.py:530 msgid "Snippet file description" msgstr "" -#: report/models.py:540 +#: report/models.py:565 msgid "Asset" msgstr "" -#: report/models.py:541 +#: report/models.py:566 msgid "Report asset file" msgstr "" -#: report/models.py:544 +#: report/models.py:569 msgid "Asset file description" msgstr "" @@ -5174,7 +5294,7 @@ msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/order.js:195 templates/js/stock.js:987 +#: templates/js/order.js:195 templates/js/stock.js:1012 msgid "Date" msgstr "" @@ -5197,7 +5317,7 @@ msgid "Moved {n} parts to {loc}" msgstr "" #: stock/forms.py:114 stock/forms.py:418 stock/models.py:509 -#: stock/templates/stock/item_base.html:376 templates/js/stock.js:654 +#: stock/templates/stock/item_base.html:381 templates/js/stock.js:658 msgid "Expiry Date" msgstr "" @@ -5483,12 +5603,12 @@ msgid "Stock Item Attachments" msgstr "" #: stock/templates/stock/item_base.html:33 -#: stock/templates/stock/item_base.html:380 templates/js/table_filters.js:150 +#: stock/templates/stock/item_base.html:385 templates/js/table_filters.js:150 msgid "Expired" msgstr "" #: stock/templates/stock/item_base.html:43 -#: stock/templates/stock/item_base.html:382 templates/js/table_filters.js:155 +#: stock/templates/stock/item_base.html:387 templates/js/table_filters.js:155 msgid "Stale" msgstr "" @@ -5618,7 +5738,7 @@ msgstr "" msgid "Stock Item Details" msgstr "" -#: stock/templates/stock/item_base.html:289 templates/js/build.js:508 +#: stock/templates/stock/item_base.html:289 templates/js/build.js:593 msgid "No location set" msgstr "" @@ -5630,25 +5750,29 @@ msgstr "" msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:380 +#: stock/templates/stock/item_base.html:356 +msgid "No manufacturer set" +msgstr "" + +#: stock/templates/stock/item_base.html:385 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:382 +#: stock/templates/stock/item_base.html:387 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:389 templates/js/stock.js:660 +#: stock/templates/stock/item_base.html:394 templates/js/stock.js:664 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:394 +#: stock/templates/stock/item_base.html:399 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:398 +#: stock/templates/stock/item_base.html:403 msgid "No stocktake performed" msgstr "" @@ -5945,7 +6069,7 @@ msgstr "" msgid "Add Stock Items" msgstr "" -#: stock/views.py:1001 users/models.py:183 +#: stock/views.py:1001 users/models.py:187 msgid "Add" msgstr "" @@ -6011,7 +6135,7 @@ msgstr "" msgid "Serialize Stock" msgstr "" -#: stock/views.py:1575 templates/js/build.js:244 +#: stock/views.py:1575 templates/js/build.js:326 msgid "Create new Stock Item" msgstr "" @@ -6043,14 +6167,6 @@ msgstr "" msgid "Add Stock Tracking Entry" msgstr "" -#: templates/403.html:5 templates/403.html:11 -msgid "Permission Denied" -msgstr "" - -#: templates/403.html:14 -msgid "You do not have permission to view this page." -msgstr "" - #: templates/404.html:5 templates/404.html:11 msgid "Page Not Found" msgstr "" @@ -6119,11 +6235,11 @@ msgstr "" msgid "Enter a search query" msgstr "" -#: templates/InvenTree/search.html:268 templates/js/stock.js:298 +#: templates/InvenTree/search.html:268 templates/js/stock.js:303 msgid "Shipped to customer" msgstr "" -#: templates/InvenTree/search.html:271 templates/js/stock.js:308 +#: templates/InvenTree/search.html:271 templates/js/stock.js:313 msgid "No stock location set" msgstr "" @@ -6168,12 +6284,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/category.html:70 -#: templates/InvenTree/settings/part.html:81 +#: templates/InvenTree/settings/part.html:85 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/category.html:71 -#: templates/InvenTree/settings/part.html:82 +#: templates/InvenTree/settings/part.html:86 msgid "Delete Template" msgstr "" @@ -6221,11 +6337,11 @@ msgstr "" msgid "Part Options" msgstr "" -#: templates/InvenTree/settings/part.html:40 +#: templates/InvenTree/settings/part.html:44 msgid "Part Parameter Templates" msgstr "" -#: templates/InvenTree/settings/part.html:61 +#: templates/InvenTree/settings/part.html:65 msgid "No part parameter templates found" msgstr "" @@ -6341,47 +6457,51 @@ msgid "API Version" msgstr "" #: templates/about.html:39 +msgid "Python Version" +msgstr "" + +#: templates/about.html:44 msgid "Django Version" msgstr "" -#: templates/about.html:46 +#: templates/about.html:51 msgid "Commit Hash" msgstr "" -#: templates/about.html:53 +#: templates/about.html:58 msgid "Commit Date" msgstr "" -#: templates/about.html:58 +#: templates/about.html:63 msgid "InvenTree Documentation" msgstr "" -#: templates/about.html:63 +#: templates/about.html:68 msgid "View Code on GitHub" msgstr "" -#: templates/about.html:68 +#: templates/about.html:73 msgid "Credits" msgstr "" -#: templates/about.html:73 +#: templates/about.html:78 msgid "Mobile App" msgstr "" -#: templates/about.html:78 +#: templates/about.html:83 msgid "Submit Bug Report" msgstr "" -#: templates/about.html:85 templates/clip.html:4 +#: templates/about.html:90 templates/clip.html:4 msgid "copy to clipboard" msgstr "" -#: templates/about.html:85 +#: templates/about.html:90 msgid "copy version information" msgstr "" -#: templates/about.html:95 templates/js/modals.js:568 -#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54 +#: templates/about.html:100 templates/js/modals.js:568 +#: templates/js/modals.js:861 templates/modals.html:29 templates/modals.html:54 #: templates/modals.html:97 msgid "Close" msgstr "" @@ -6442,7 +6562,7 @@ msgstr "" msgid "Unknown response from server" msgstr "" -#: templates/js/barcode.js:119 templates/js/modals.js:901 +#: templates/js/barcode.js:119 templates/js/modals.js:921 msgid "Invalid server response" msgstr "" @@ -6506,7 +6626,7 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/bom.js:175 templates/js/build.js:1004 +#: templates/js/bom.js:175 templates/js/build.js:1091 msgid "Open subassembly" msgstr "" @@ -6542,7 +6662,7 @@ msgstr "" msgid "Delete BOM Item" msgstr "" -#: templates/js/bom.js:470 templates/js/build.js:340 templates/js/build.js:1102 +#: templates/js/bom.js:470 templates/js/build.js:423 templates/js/build.js:1189 msgid "No BOM items found" msgstr "" @@ -6562,37 +6682,45 @@ msgstr "" msgid "Delete build output" msgstr "" -#: templates/js/build.js:243 templates/stock_table.html:20 +#: templates/js/build.js:184 +msgid "No build order allocations found" +msgstr "" + +#: templates/js/build.js:222 templates/js/order.js:382 +msgid "Location not specified" +msgstr "" + +#: templates/js/build.js:325 templates/stock_table.html:20 msgid "New Stock Item" msgstr "" -#: templates/js/build.js:559 +#: templates/js/build.js:644 msgid "Required Part" msgstr "" -#: templates/js/build.js:580 +#: templates/js/build.js:665 msgid "Quantity Per" msgstr "" -#: templates/js/build.js:648 templates/js/build.js:1066 +#: templates/js/build.js:735 templates/js/build.js:1153 #: templates/stock_table.html:59 msgid "Order stock" msgstr "" -#: templates/js/build.js:701 +#: templates/js/build.js:788 msgid "No builds matching query" msgstr "" -#: templates/js/build.js:718 templates/js/part.js:390 templates/js/part.js:634 -#: templates/js/stock.js:509 templates/js/stock.js:941 +#: templates/js/build.js:805 templates/js/part.js:390 templates/js/part.js:635 +#: templates/js/stock.js:514 templates/js/stock.js:966 msgid "Select" msgstr "" -#: templates/js/build.js:738 +#: templates/js/build.js:825 msgid "Build order is overdue" msgstr "" -#: templates/js/build.js:837 +#: templates/js/build.js:924 msgid "No parts allocated for" msgstr "" @@ -6612,17 +6740,29 @@ msgstr "" msgid "No manufacturer parts found" msgstr "" -#: templates/js/company.js:148 templates/js/company.js:246 +#: templates/js/company.js:148 templates/js/company.js:347 #: templates/js/part.js:68 templates/js/part.js:153 msgid "Template part" msgstr "" -#: templates/js/company.js:152 templates/js/company.js:250 +#: templates/js/company.js:152 templates/js/company.js:351 #: templates/js/part.js:72 templates/js/part.js:157 msgid "Assembled part" msgstr "" -#: templates/js/company.js:227 +#: templates/js/company.js:226 +msgid "No parameters found" +msgstr "" + +#: templates/js/company.js:262 +msgid "Edit parameter" +msgstr "" + +#: templates/js/company.js:263 +msgid "Delete parameter" +msgstr "" + +#: templates/js/company.js:328 msgid "No supplier parts found" msgstr "" @@ -6710,76 +6850,76 @@ msgstr "" msgid "Loading Data" msgstr "" -#: templates/js/modals.js:567 templates/js/modals.js:845 +#: templates/js/modals.js:567 templates/js/modals.js:860 #: templates/modals.html:30 templates/modals.html:55 msgid "Submit" msgstr "" -#: templates/js/modals.js:797 +#: templates/js/modals.js:811 msgid "Invalid response from server" msgstr "" -#: templates/js/modals.js:797 +#: templates/js/modals.js:811 msgid "Form data missing from server response" msgstr "" -#: templates/js/modals.js:810 +#: templates/js/modals.js:824 msgid "Error posting form data" msgstr "" -#: templates/js/modals.js:901 +#: templates/js/modals.js:921 msgid "JSON response missing form data" msgstr "" -#: templates/js/modals.js:911 +#: templates/js/modals.js:931 msgid "No Response" msgstr "" -#: templates/js/modals.js:912 +#: templates/js/modals.js:932 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/modals.js:916 +#: templates/js/modals.js:936 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/modals.js:917 +#: templates/js/modals.js:937 msgid "Server returned error code 400" msgstr "" -#: templates/js/modals.js:921 +#: templates/js/modals.js:941 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/modals.js:922 +#: templates/js/modals.js:942 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/modals.js:926 +#: templates/js/modals.js:946 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/modals.js:927 +#: templates/js/modals.js:947 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/modals.js:931 +#: templates/js/modals.js:951 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/modals.js:932 +#: templates/js/modals.js:952 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/modals.js:936 +#: templates/js/modals.js:956 msgid "Error 408: Timeout" msgstr "" -#: templates/js/modals.js:937 +#: templates/js/modals.js:957 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/modals.js:940 +#: templates/js/modals.js:960 msgid "Error requesting form data" msgstr "" @@ -6795,6 +6935,10 @@ msgstr "" msgid "No sales orders found" msgstr "" +#: templates/js/order.js:343 +msgid "No sales order allocations found" +msgstr "" + #: templates/js/part.js:10 msgid "YES" msgstr "" @@ -6823,39 +6967,39 @@ msgstr "" msgid "No variants found" msgstr "" -#: templates/js/part.js:280 templates/js/part.js:518 +#: templates/js/part.js:280 templates/js/part.js:519 msgid "No parts found" msgstr "" -#: templates/js/part.js:457 +#: templates/js/part.js:458 msgid "No category" msgstr "" -#: templates/js/part.js:475 templates/js/table_filters.js:323 +#: templates/js/part.js:476 templates/js/table_filters.js:323 msgid "Low stock" msgstr "" -#: templates/js/part.js:659 templates/js/stock.js:965 +#: templates/js/part.js:660 templates/js/stock.js:990 msgid "Path" msgstr "" -#: templates/js/part.js:702 +#: templates/js/part.js:703 msgid "No test templates matching query" msgstr "" -#: templates/js/part.js:753 templates/js/stock.js:75 +#: templates/js/part.js:754 templates/js/stock.js:75 msgid "Edit test result" msgstr "" -#: templates/js/part.js:754 templates/js/stock.js:76 +#: templates/js/part.js:755 templates/js/stock.js:76 msgid "Delete test result" msgstr "" -#: templates/js/part.js:760 +#: templates/js/part.js:761 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/part.js:805 +#: templates/js/part.js:806 msgid "Single Price Difference" msgstr "" @@ -6953,155 +7097,155 @@ msgstr "" msgid "Test Date" msgstr "" -#: templates/js/stock.js:290 +#: templates/js/stock.js:295 msgid "In production" msgstr "" -#: templates/js/stock.js:294 +#: templates/js/stock.js:299 msgid "Installed in Stock Item" msgstr "" -#: templates/js/stock.js:302 +#: templates/js/stock.js:307 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/stock.js:334 +#: templates/js/stock.js:339 msgid "No stock items matching query" msgstr "" -#: templates/js/stock.js:355 +#: templates/js/stock.js:360 msgid "items" msgstr "" -#: templates/js/stock.js:447 +#: templates/js/stock.js:452 msgid "batches" msgstr "" -#: templates/js/stock.js:474 +#: templates/js/stock.js:479 msgid "locations" msgstr "" -#: templates/js/stock.js:476 +#: templates/js/stock.js:481 msgid "Undefined location" msgstr "" -#: templates/js/stock.js:577 +#: templates/js/stock.js:582 msgid "Stock item is in production" msgstr "" -#: templates/js/stock.js:582 +#: templates/js/stock.js:587 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/stock.js:585 +#: templates/js/stock.js:590 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/stock.js:589 +#: templates/js/stock.js:594 msgid "Stock item has expired" msgstr "" -#: templates/js/stock.js:591 +#: templates/js/stock.js:596 msgid "Stock item will expire soon" msgstr "" -#: templates/js/stock.js:595 +#: templates/js/stock.js:600 msgid "Stock item has been allocated" msgstr "" -#: templates/js/stock.js:599 +#: templates/js/stock.js:604 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/stock.js:607 +#: templates/js/stock.js:611 msgid "Stock item has been rejected" msgstr "" -#: templates/js/stock.js:611 +#: templates/js/stock.js:615 msgid "Stock item is lost" msgstr "" -#: templates/js/stock.js:614 +#: templates/js/stock.js:618 msgid "Stock item is destroyed" msgstr "" -#: templates/js/stock.js:618 templates/js/table_filters.js:143 +#: templates/js/stock.js:622 templates/js/table_filters.js:143 msgid "Depleted" msgstr "" -#: templates/js/stock.js:647 +#: templates/js/stock.js:651 msgid "Stocktake" msgstr "" -#: templates/js/stock.js:828 +#: templates/js/stock.js:853 msgid "Stock Status" msgstr "" -#: templates/js/stock.js:843 +#: templates/js/stock.js:868 msgid "Set Stock Status" msgstr "" -#: templates/js/stock.js:857 +#: templates/js/stock.js:882 msgid "Select Status Code" msgstr "" -#: templates/js/stock.js:858 +#: templates/js/stock.js:883 msgid "Status code must be selected" msgstr "" -#: templates/js/stock.js:997 +#: templates/js/stock.js:1022 msgid "Invalid date" msgstr "" -#: templates/js/stock.js:1044 +#: templates/js/stock.js:1069 msgid "Location no longer exists" msgstr "" -#: templates/js/stock.js:1063 +#: templates/js/stock.js:1088 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/stock.js:1082 +#: templates/js/stock.js:1107 msgid "Customer no longer exists" msgstr "" -#: templates/js/stock.js:1100 +#: templates/js/stock.js:1125 msgid "Stock item no longer exists" msgstr "" -#: templates/js/stock.js:1123 +#: templates/js/stock.js:1148 msgid "Added" msgstr "" -#: templates/js/stock.js:1131 +#: templates/js/stock.js:1156 msgid "Removed" msgstr "" -#: templates/js/stock.js:1163 +#: templates/js/stock.js:1188 msgid "No user information" msgstr "" -#: templates/js/stock.js:1175 +#: templates/js/stock.js:1200 msgid "Edit tracking entry" msgstr "" -#: templates/js/stock.js:1176 +#: templates/js/stock.js:1201 msgid "Delete tracking entry" msgstr "" -#: templates/js/stock.js:1300 +#: templates/js/stock.js:1325 msgid "Create New Location" msgstr "" -#: templates/js/stock.js:1341 +#: templates/js/stock.js:1366 msgid "No installed items" msgstr "" -#: templates/js/stock.js:1364 +#: templates/js/stock.js:1389 msgid "Serial" msgstr "" -#: templates/js/stock.js:1392 +#: templates/js/stock.js:1417 msgid "Uninstall Stock Item" msgstr "" @@ -7267,56 +7411,56 @@ msgstr "" msgid "Purchasable" msgstr "" -#: templates/js/tables.js:321 +#: templates/js/tables.js:323 msgid "Loading data" msgstr "" -#: templates/js/tables.js:324 +#: templates/js/tables.js:326 msgid "rows per page" msgstr "" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "Showing" msgstr "" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "to" msgstr "" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "of" msgstr "" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "rows" msgstr "" -#: templates/js/tables.js:330 templates/search_form.html:6 +#: templates/js/tables.js:332 templates/search_form.html:6 #: templates/search_form.html:8 msgid "Search" msgstr "" -#: templates/js/tables.js:333 +#: templates/js/tables.js:335 msgid "No matching results" msgstr "" -#: templates/js/tables.js:336 +#: templates/js/tables.js:338 msgid "Hide/Show pagination" msgstr "" -#: templates/js/tables.js:339 +#: templates/js/tables.js:341 msgid "Refresh" msgstr "" -#: templates/js/tables.js:342 +#: templates/js/tables.js:344 msgid "Toggle" msgstr "" -#: templates/js/tables.js:345 +#: templates/js/tables.js:347 msgid "Columns" msgstr "" -#: templates/js/tables.js:348 +#: templates/js/tables.js:350 msgid "All" msgstr "" @@ -7560,35 +7704,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:170 +#: users/models.py:174 msgid "Permission set" msgstr "" -#: users/models.py:178 +#: users/models.py:182 msgid "Group" msgstr "" -#: users/models.py:181 +#: users/models.py:185 msgid "View" msgstr "" -#: users/models.py:181 +#: users/models.py:185 msgid "Permission to view items" msgstr "" -#: users/models.py:183 +#: users/models.py:187 msgid "Permission to add items" msgstr "" -#: users/models.py:185 +#: users/models.py:189 msgid "Change" msgstr "" -#: users/models.py:185 +#: users/models.py:189 msgid "Permissions to edit items" msgstr "" -#: users/models.py:187 +#: users/models.py:191 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po index f5afd1b0fe..fa6df1a934 100644 --- a/InvenTree/locale/ja/LC_MESSAGES/django.po +++ b/InvenTree/locale/ja/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-06-16 22:40+0000\n" -"PO-Revision-Date: 2021-06-16 22:41\n" +"POT-Creation-Date: 2021-06-24 21:38+0000\n" +"PO-Revision-Date: 2021-06-24 21:40\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Language: ja_JP\n" @@ -77,7 +77,7 @@ msgstr "" msgid "Duplicate serial: {n}" msgstr "" -#: InvenTree/helpers.py:384 order/models.py:247 order/models.py:357 +#: InvenTree/helpers.py:384 order/models.py:248 order/models.py:358 #: stock/views.py:1795 msgid "Invalid quantity provided" msgstr "" @@ -122,9 +122,9 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1999 +#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:2022 #: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/stock.js:1154 +#: templates/js/stock.js:1179 msgid "User" msgstr "" @@ -132,34 +132,35 @@ msgstr "" msgid "upload date" msgstr "" -#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102 -#: part/models.py:686 part/models.py:2140 part/templates/part/params.html:27 -#: report/models.py:179 templates/InvenTree/search.html:137 -#: templates/InvenTree/search.html:289 templates/js/part.js:118 -#: templates/js/part.js:641 templates/js/stock.js:947 +#: InvenTree/models.py:107 InvenTree/models.py:108 company/models.py:396 +#: label/models.py:102 part/models.py:671 part/models.py:2163 +#: part/templates/part/params.html:27 report/models.py:180 +#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289 +#: templates/js/company.js:235 templates/js/part.js:118 +#: templates/js/part.js:642 templates/js/stock.js:972 msgid "Name" msgstr "" #: InvenTree/models.py:114 build/models.py:135 #: build/templates/build/detail.html:21 company/models.py:339 -#: company/models.py:491 company/templates/company/detail.html:27 +#: company/models.py:532 company/templates/company/detail.html:27 #: company/templates/company/manufacturer_part_base.html:72 #: company/templates/company/supplier_part_base.html:71 #: company/templates/company/supplier_part_detail.html:31 label/models.py:109 -#: order/models.py:103 order/templates/order/purchase_order_detail.html:147 -#: part/models.py:710 part/templates/part/detail.html:54 -#: part/templates/part/set_category.html:14 report/models.py:192 -#: report/models.py:505 report/models.py:544 +#: order/models.py:104 order/templates/order/purchase_order_detail.html:147 +#: part/models.py:695 part/templates/part/detail.html:54 +#: part/templates/part/set_category.html:14 report/models.py:193 +#: report/models.py:530 report/models.py:569 #: report/templates/report/inventree_build_order_base.html:118 #: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224 #: templates/InvenTree/search.html:296 #: templates/InvenTree/settings/header.html:9 templates/js/bom.js:190 -#: templates/js/build.js:746 templates/js/build.js:1014 +#: templates/js/build.js:833 templates/js/build.js:1101 #: templates/js/company.js:56 templates/js/order.js:183 #: templates/js/order.js:280 templates/js/part.js:177 templates/js/part.js:260 -#: templates/js/part.js:437 templates/js/part.js:653 templates/js/part.js:721 -#: templates/js/stock.js:552 templates/js/stock.js:959 -#: templates/js/stock.js:1004 +#: templates/js/part.js:437 templates/js/part.js:654 templates/js/part.js:722 +#: templates/js/stock.js:557 templates/js/stock.js:984 +#: templates/js/stock.js:1029 msgid "Description" msgstr "" @@ -191,15 +192,15 @@ msgstr "" msgid "Turkish" msgstr "" -#: InvenTree/status.py:93 +#: InvenTree/status.py:94 msgid "Background worker check failed" msgstr "" -#: InvenTree/status.py:97 +#: InvenTree/status.py:98 msgid "Email backend not configured" msgstr "" -#: InvenTree/status.py:100 +#: InvenTree/status.py:101 msgid "InvenTree system health checks failed" msgstr "" @@ -372,27 +373,27 @@ msgstr "" msgid "Overage must be an integer value or a percentage" msgstr "" -#: InvenTree/views.py:605 +#: InvenTree/views.py:608 msgid "Delete Item" msgstr "" -#: InvenTree/views.py:654 +#: InvenTree/views.py:657 msgid "Check box to confirm item deletion" msgstr "" -#: InvenTree/views.py:669 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:672 templates/InvenTree/settings/user.html:18 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:683 templates/InvenTree/settings/user.html:22 msgid "Set Password" msgstr "" -#: InvenTree/views.py:699 +#: InvenTree/views.py:702 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:950 templates/navbar.html:95 +#: InvenTree/views.py:953 templates/navbar.html:95 msgid "System Information" msgstr "" @@ -445,11 +446,11 @@ msgid "Order target date" msgstr "" #: build/forms.py:42 build/templates/build/build_base.html:146 -#: build/templates/build/detail.html:121 order/forms.py:109 order/forms.py:144 +#: build/templates/build/detail.html:121 order/forms.py:114 order/forms.py:149 #: order/templates/order/order_base.html:124 #: order/templates/order/sales_order_base.html:119 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/build.js:793 templates/js/order.js:200 +#: templates/js/build.js:880 templates/js/order.js:200 #: templates/js/order.js:298 msgid "Target Date" msgstr "" @@ -462,22 +463,21 @@ msgstr "" #: build/templates/build/allocation_card.html:23 #: build/templates/build/auto_allocate.html:17 #: build/templates/build/build_base.html:133 -#: build/templates/build/detail.html:31 common/models.py:699 -#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77 -#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262 -#: order/forms.py:279 order/models.py:616 order/models.py:817 +#: build/templates/build/detail.html:31 common/models.py:720 +#: company/forms.py:191 company/templates/company/supplier_part_pricing.html:77 +#: order/forms.py:193 order/forms.py:211 order/forms.py:246 order/forms.py:268 +#: order/forms.py:285 order/models.py:617 order/models.py:841 #: order/templates/order/order_wizard/match_parts.html:29 -#: order/templates/order/order_wizard/select_parts.html:32 +#: order/templates/order/order_wizard/select_parts.html:34 #: order/templates/order/purchase_order_detail.html:179 #: order/templates/order/sales_order_detail.html:70 #: order/templates/order/sales_order_detail.html:77 #: order/templates/order/sales_order_detail.html:162 -#: order/templates/order/sales_order_detail.html:230 part/forms.py:342 -#: part/forms.py:372 part/forms.py:388 part/models.py:2270 -#: part/templates/part/allocation.html:19 -#: part/templates/part/allocation.html:53 -#: part/templates/part/order_prices.html:175 -#: part/templates/part/part_pricing.html:13 +#: order/templates/order/sales_order_detail.html:234 part/forms.py:342 +#: part/forms.py:372 part/forms.py:388 part/forms.py:404 part/models.py:2293 +#: part/templates/part/internal_prices.html:98 +#: part/templates/part/order_prices.html:202 +#: part/templates/part/part_pricing.html:16 #: part/templates/part/sale_prices.html:85 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -486,9 +486,10 @@ msgstr "" #: stock/forms.py:175 stock/forms.py:308 #: stock/templates/stock/item_base.html:255 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364 -#: templates/js/bom.js:205 templates/js/build.js:486 templates/js/build.js:1024 -#: templates/js/part.js:795 templates/js/stock.js:1139 -#: templates/js/stock.js:1358 +#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:571 +#: templates/js/build.js:1111 templates/js/order.js:393 +#: templates/js/part.js:796 templates/js/stock.js:1164 +#: templates/js/stock.js:1383 msgid "Quantity" msgstr "" @@ -500,7 +501,7 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/forms.py:95 order/forms.py:234 stock/forms.py:118 +#: build/forms.py:95 order/forms.py:240 stock/forms.py:118 msgid "Serial Numbers" msgstr "" @@ -529,12 +530,12 @@ msgid "Mark build as complete" msgstr "" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 -#: order/forms.py:82 stock/forms.py:347 -#: stock/templates/stock/item_base.html:285 +#: stock/forms.py:347 stock/templates/stock/item_base.html:285 #: stock/templates/stock/stock_adjust.html:17 #: templates/InvenTree/search.html:260 templates/js/barcode.js:363 -#: templates/js/barcode.js:531 templates/js/build.js:500 -#: templates/js/stock.js:639 templates/js/stock.js:1031 +#: templates/js/barcode.js:531 templates/js/build.js:218 +#: templates/js/build.js:585 templates/js/order.js:378 +#: templates/js/stock.js:643 templates/js/stock.js:1056 msgid "Location" msgstr "" @@ -543,13 +544,13 @@ msgid "Location of completed parts" msgstr "" #: build/forms.py:215 build/templates/build/build_base.html:138 -#: build/templates/build/detail.html:59 order/models.py:468 +#: build/templates/build/detail.html:59 order/models.py:469 #: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:403 templates/InvenTree/search.html:252 -#: templates/js/barcode.js:119 templates/js/build.js:780 +#: stock/templates/stock/item_base.html:408 templates/InvenTree/search.html:252 +#: templates/js/barcode.js:119 templates/js/build.js:867 #: templates/js/order.js:187 templates/js/order.js:285 -#: templates/js/stock.js:626 templates/js/stock.js:1108 -#: templates/js/stock.js:1374 +#: templates/js/stock.js:630 templates/js/stock.js:1133 +#: templates/js/stock.js:1399 msgid "Status" msgstr "" @@ -583,16 +584,16 @@ msgstr "" #: build/models.py:66 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:73 -#: part/templates/part/allocation.html:23 #: report/templates/report/inventree_build_order_base.html:106 +#: templates/js/build.js:195 msgid "Build Order" msgstr "" #: build/models.py:67 build/templates/build/index.html:8 #: build/templates/build/index.html:15 order/templates/order/so_builds.html:12 #: order/templates/order/so_navbar.html:19 -#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:55 -#: part/templates/part/navbar.html:58 templates/InvenTree/index.html:183 +#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:57 +#: part/templates/part/navbar.html:60 templates/InvenTree/index.html:183 #: templates/InvenTree/search.html:185 #: templates/InvenTree/settings/tabs.html:34 users/models.py:43 msgid "Build Orders" @@ -602,12 +603,12 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:128 order/models.py:101 order/models.py:618 +#: build/models.py:128 order/models.py:102 order/models.py:619 #: order/templates/order/purchase_order_detail.html:174 -#: order/templates/order/sales_order_detail.html:225 part/models.py:2279 +#: order/templates/order/sales_order_detail.html:229 part/models.py:2302 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197 -#: templates/js/build.js:575 templates/js/build.js:1018 +#: templates/js/build.js:660 templates/js/build.js:1105 msgid "Reference" msgstr "" @@ -626,27 +627,27 @@ msgstr "" #: build/models.py:153 build/templates/build/auto_allocate.html:16 #: build/templates/build/build_base.html:128 -#: build/templates/build/detail.html:26 company/models.py:622 -#: order/models.py:660 order/models.py:693 -#: order/templates/order/order_wizard/select_parts.html:30 +#: build/templates/build/detail.html:26 company/models.py:663 +#: order/models.py:661 order/models.py:717 +#: order/templates/order/order_wizard/select_parts.html:32 #: order/templates/order/purchase_order_detail.html:132 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:213 part/models.py:321 -#: part/models.py:1967 part/models.py:1979 part/models.py:1997 -#: part/models.py:2072 part/models.py:2168 part/models.py:2254 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29 +#: order/templates/order/sales_order_detail.html:214 part/models.py:321 +#: part/models.py:1975 part/models.py:1987 part/models.py:2002 +#: part/models.py:2020 part/models.py:2095 part/models.py:2191 +#: part/models.py:2277 part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 part/templates/part/related.html:29 #: part/templates/part/set_category.html:13 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 #: templates/InvenTree/search.html:112 templates/InvenTree/search.html:210 #: templates/js/barcode.js:362 templates/js/bom.js:163 -#: templates/js/build.js:466 templates/js/build.js:751 -#: templates/js/build.js:991 templates/js/company.js:140 -#: templates/js/company.js:238 templates/js/part.js:241 -#: templates/js/part.js:404 templates/js/stock.js:521 -#: templates/js/stock.js:1346 +#: templates/js/build.js:551 templates/js/build.js:838 +#: templates/js/build.js:1078 templates/js/company.js:140 +#: templates/js/company.js:339 templates/js/part.js:241 +#: templates/js/part.js:404 templates/js/stock.js:526 +#: templates/js/stock.js:1371 msgid "Part" msgstr "" @@ -710,16 +711,16 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:220 order/models.py:107 part/models.py:882 +#: build/models.py:220 order/models.py:108 part/models.py:867 #: part/templates/part/detail.html:126 templates/js/order.js:293 msgid "Creation Date" msgstr "" -#: build/models.py:224 order/models.py:474 +#: build/models.py:224 order/models.py:475 msgid "Target completion date" msgstr "" -#: build/models.py:228 order/models.py:220 templates/js/build.js:798 +#: build/models.py:228 order/models.py:221 templates/js/build.js:885 msgid "Completion Date" msgstr "" @@ -736,9 +737,9 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:251 build/templates/build/build_base.html:184 -#: build/templates/build/detail.html:105 order/models.py:121 +#: build/templates/build/detail.html:105 order/models.py:122 #: order/templates/order/order_base.html:138 -#: order/templates/order/sales_order_base.html:140 part/models.py:886 +#: order/templates/order/sales_order_base.html:140 part/models.py:871 #: report/templates/report/inventree_build_order_base.html:159 msgid "Responsible" msgstr "" @@ -757,26 +758,26 @@ msgstr "" msgid "External Link" msgstr "" -#: build/models.py:258 part/models.py:744 stock/models.py:462 +#: build/models.py:258 part/models.py:729 stock/models.py:462 msgid "Link to external URL" msgstr "" #: build/models.py:262 build/templates/build/navbar.html:53 -#: company/models.py:132 company/models.py:498 +#: company/models.py:132 company/models.py:539 #: company/templates/company/navbar.html:70 -#: company/templates/company/navbar.html:73 order/models.py:125 -#: order/models.py:620 order/templates/order/po_navbar.html:29 -#: order/templates/order/po_navbar.html:32 -#: order/templates/order/purchase_order_detail.html:239 -#: order/templates/order/sales_order_detail.html:278 +#: company/templates/company/navbar.html:73 order/models.py:126 +#: order/models.py:621 order/templates/order/po_navbar.html:38 +#: order/templates/order/po_navbar.html:41 +#: order/templates/order/purchase_order_detail.html:243 +#: order/templates/order/sales_order_detail.html:309 #: order/templates/order/so_navbar.html:33 -#: order/templates/order/so_navbar.html:36 part/models.py:871 -#: part/templates/part/navbar.html:134 +#: order/templates/order/so_navbar.html:36 part/models.py:856 +#: part/templates/part/navbar.html:142 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377 #: stock/models.py:532 stock/models.py:1667 stock/models.py:1769 #: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37 -#: templates/js/bom.js:356 templates/js/stock.js:141 templates/js/stock.js:674 +#: templates/js/bom.js:356 templates/js/stock.js:141 templates/js/stock.js:699 msgid "Notes" msgstr "" @@ -809,11 +810,11 @@ msgstr "" msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1188 order/models.py:791 +#: build/models.py:1188 order/models.py:815 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1192 order/models.py:794 +#: build/models.py:1192 order/models.py:818 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -827,7 +828,7 @@ msgid "Selected stock item not found in BOM for part '{p}'" msgstr "" #: build/models.py:1316 stock/templates/stock/item_base.html:317 -#: templates/InvenTree/search.html:183 templates/js/build.js:724 +#: templates/InvenTree/search.html:183 templates/js/build.js:811 #: templates/navbar.html:29 msgid "Build" msgstr "" @@ -836,15 +837,13 @@ msgstr "" msgid "Build to allocate parts" msgstr "" -#: build/models.py:1333 part/templates/part/allocation.html:18 -#: part/templates/part/allocation.html:24 -#: part/templates/part/allocation.html:31 -#: part/templates/part/allocation.html:49 -#: stock/templates/stock/item_base.html:8 +#: build/models.py:1333 stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:31 #: stock/templates/stock/item_base.html:339 -#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:841 -#: templates/js/stock.js:1090 +#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:206 +#: templates/js/build.js:211 templates/js/build.js:928 +#: templates/js/order.js:366 templates/js/order.js:371 +#: templates/js/stock.js:1115 msgid "Stock Item" msgstr "" @@ -880,7 +879,7 @@ msgstr "" msgid "Auto Allocate" msgstr "" -#: build/templates/build/allocate.html:25 templates/js/build.js:656 +#: build/templates/build/allocate.html:25 templates/js/build.js:743 msgid "Unallocate stock" msgstr "" @@ -917,15 +916,15 @@ msgstr "" #: order/templates/order/sales_order_detail.html:160 #: report/templates/report/inventree_test_report_base.html:75 #: stock/models.py:454 stock/templates/stock/item_base.html:249 -#: templates/js/build.js:484 +#: templates/js/build.js:569 msgid "Serial Number" msgstr "" #: build/templates/build/attachments.html:12 #: build/templates/build/navbar.html:43 build/templates/build/navbar.html:46 -#: order/templates/order/po_navbar.html:26 -#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:125 -#: part/templates/part/navbar.html:128 stock/templates/stock/navbar.html:47 +#: order/templates/order/po_navbar.html:35 +#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:133 +#: part/templates/part/navbar.html:136 stock/templates/stock/navbar.html:47 #: stock/templates/stock/navbar.html:50 msgid "Attachments" msgstr "" @@ -1037,11 +1036,10 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:170 -#: build/templates/build/detail.html:84 order/models.py:691 +#: build/templates/build/detail.html:84 order/models.py:715 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:35 #: order/templates/order/sales_order_ship.html:25 -#: part/templates/part/allocation.html:30 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 #: stock/templates/stock/item_base.html:279 templates/js/order.js:245 @@ -1185,7 +1183,10 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:46 stock/forms.py:169 stock/forms.py:375 +#: build/templates/build/detail.html:46 order/forms.py:85 order/models.py:678 +#: order/templates/order/purchase_order_detail.html:239 +#: order/templates/order/receive_parts.html:25 stock/forms.py:169 +#: stock/forms.py:375 msgid "Destination" msgstr "" @@ -1194,15 +1195,15 @@ msgid "Destination location not specified" msgstr "" #: build/templates/build/detail.html:70 -#: stock/templates/stock/item_base.html:303 templates/js/stock.js:634 -#: templates/js/stock.js:1381 templates/js/table_filters.js:112 +#: stock/templates/stock/item_base.html:303 templates/js/stock.js:638 +#: templates/js/stock.js:1406 templates/js/table_filters.js:112 #: templates/js/table_filters.js:206 msgid "Batch" msgstr "" #: build/templates/build/detail.html:116 #: order/templates/order/order_base.html:111 -#: order/templates/order/sales_order_base.html:113 templates/js/build.js:788 +#: order/templates/order/sales_order_base.html:113 templates/js/build.js:875 msgid "Created" msgstr "" @@ -1210,7 +1211,7 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:132 templates/js/build.js:766 +#: build/templates/build/detail.html:132 templates/js/build.js:853 msgid "Completed" msgstr "" @@ -1248,9 +1249,9 @@ msgstr "" #: build/templates/build/navbar.html:15 #: company/templates/company/navbar.html:15 -#: order/templates/order/po_navbar.html:14 -#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15 -#: templates/js/stock.js:1019 +#: order/templates/order/po_navbar.html:15 +#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:17 +#: templates/js/stock.js:1044 msgid "Details" msgstr "" @@ -1285,8 +1286,8 @@ msgstr "" #: build/templates/build/notes.html:26 company/templates/company/notes.html:24 #: order/templates/order/order_notes.html:27 #: order/templates/order/sales_order_notes.html:29 -#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:482 -#: stock/templates/stock/item_base.html:492 +#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:487 +#: stock/templates/stock/item_base.html:497 #: stock/templates/stock/item_notes.html:26 msgid "Save" msgstr "" @@ -1411,8 +1412,8 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:585 -#: templates/js/build.js:848 templates/js/build.js:1031 +#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:670 +#: templates/js/build.js:935 templates/js/build.js:1118 msgid "Available" msgstr "" @@ -1598,8 +1599,8 @@ msgstr "" msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:153 part/models.py:2170 part/templates/part/detail.html:160 -#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25 +#: common/models.py:153 part/models.py:2193 part/templates/part/detail.html:160 +#: report/models.py:186 stock/forms.py:259 templates/js/table_filters.js:25 #: templates/js/table_filters.js:315 msgid "Template" msgstr "" @@ -1608,7 +1609,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:160 part/models.py:834 part/templates/part/detail.html:170 +#: common/models.py:160 part/models.py:819 part/templates/part/detail.html:170 #: templates/js/table_filters.js:128 templates/js/table_filters.js:327 msgid "Assembly" msgstr "" @@ -1617,7 +1618,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:167 part/models.py:840 part/templates/part/detail.html:180 +#: common/models.py:167 part/models.py:825 part/templates/part/detail.html:180 #: templates/js/table_filters.js:331 msgid "Component" msgstr "" @@ -1626,7 +1627,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:174 part/models.py:851 part/templates/part/detail.html:200 +#: common/models.py:174 part/models.py:836 part/templates/part/detail.html:200 msgid "Purchaseable" msgstr "" @@ -1634,7 +1635,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:181 part/models.py:856 part/templates/part/detail.html:210 +#: common/models.py:181 part/models.py:841 part/templates/part/detail.html:210 #: templates/js/table_filters.js:339 msgid "Salable" msgstr "" @@ -1643,7 +1644,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:188 part/models.py:846 part/templates/part/detail.html:190 +#: common/models.py:188 part/models.py:831 part/templates/part/detail.html:190 #: templates/js/table_filters.js:33 templates/js/table_filters.js:343 msgid "Trackable" msgstr "" @@ -1652,7 +1653,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:195 part/models.py:866 part/templates/part/detail.html:150 +#: common/models.py:195 part/models.py:851 part/templates/part/detail.html:150 #: templates/js/table_filters.js:29 msgid "Virtual" msgstr "" @@ -1669,160 +1670,185 @@ msgstr "" msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:209 templates/stats.html:25 -msgid "Debug Mode" +#: common/models.py:209 +msgid "Show Price in Forms" msgstr "" #: common/models.py:210 -msgid "Generate reports in debug mode (HTML output)" +msgid "Display part price in some forms" msgstr "" #: common/models.py:216 -msgid "Page Size" +msgid "Internal Prices" msgstr "" #: common/models.py:217 +msgid "Enable internal prices for parts" +msgstr "" + +#: common/models.py:223 +msgid "Internal Price as BOM-Price" +msgstr "" + +#: common/models.py:224 +msgid "Use the internal price (if set) in BOM-price calculations" +msgstr "" + +#: common/models.py:230 templates/stats.html:25 +msgid "Debug Mode" +msgstr "" + +#: common/models.py:231 +msgid "Generate reports in debug mode (HTML output)" +msgstr "" + +#: common/models.py:237 +msgid "Page Size" +msgstr "" + +#: common/models.py:238 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:227 +#: common/models.py:248 msgid "Test Reports" msgstr "" -#: common/models.py:228 +#: common/models.py:249 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:234 +#: common/models.py:255 msgid "Stock Expiry" msgstr "" -#: common/models.py:235 +#: common/models.py:256 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:241 +#: common/models.py:262 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:242 +#: common/models.py:263 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:248 +#: common/models.py:269 msgid "Stock Stale Time" msgstr "" -#: common/models.py:249 +#: common/models.py:270 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:251 part/templates/part/detail.html:121 +#: common/models.py:272 part/templates/part/detail.html:121 msgid "days" msgstr "" -#: common/models.py:256 +#: common/models.py:277 msgid "Build Expired Stock" msgstr "" -#: common/models.py:257 +#: common/models.py:278 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:263 +#: common/models.py:284 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:264 +#: common/models.py:285 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:270 +#: common/models.py:291 msgid "Group by Part" msgstr "" -#: common/models.py:271 +#: common/models.py:292 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:277 +#: common/models.py:298 msgid "Recent Stock Count" msgstr "" -#: common/models.py:278 +#: common/models.py:299 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:284 +#: common/models.py:305 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:285 +#: common/models.py:306 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:290 +#: common/models.py:311 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:291 +#: common/models.py:312 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:295 +#: common/models.py:316 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:296 +#: common/models.py:317 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:301 +#: common/models.py:322 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:302 +#: common/models.py:323 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:525 +#: common/models.py:546 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:527 +#: common/models.py:548 msgid "Settings value" msgstr "" -#: common/models.py:562 +#: common/models.py:583 msgid "Must be an integer value" msgstr "" -#: common/models.py:585 +#: common/models.py:606 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:596 +#: common/models.py:617 msgid "Value must be an integer value" msgstr "" -#: common/models.py:619 +#: common/models.py:640 msgid "Key string must be unique" msgstr "" -#: common/models.py:700 company/forms.py:177 +#: common/models.py:721 company/forms.py:192 msgid "Price break quantity" msgstr "" -#: common/models.py:708 company/templates/company/supplier_part_pricing.html:82 +#: common/models.py:729 company/templates/company/supplier_part_pricing.html:82 +#: part/templates/part/internal_prices.html:103 #: part/templates/part/sale_prices.html:90 templates/js/bom.js:271 msgid "Price" msgstr "" -#: common/models.py:709 +#: common/models.py:730 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:798 +#: common/models.py:822 msgid "Default" msgstr "" @@ -1843,7 +1869,9 @@ msgid "Supplied value must be a boolean" msgstr "" #: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42 -#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27 +#: order/templates/order/po_navbar.html:19 +#: order/templates/order/po_navbar.html:22 order/views.py:582 +#: part/templates/part/bom_upload/upload_file.html:27 msgid "Upload File" msgstr "" @@ -1877,29 +1905,29 @@ msgstr "" msgid "Image URL" msgstr "" -#: company/forms.py:118 templates/js/part.js:786 +#: company/forms.py:133 templates/js/part.js:787 msgid "Single Price" msgstr "" -#: company/forms.py:120 +#: company/forms.py:135 msgid "Single quantity price" msgstr "" -#: company/forms.py:128 company/models.py:321 +#: company/forms.py:143 company/models.py:321 msgid "Select manufacturer" msgstr "" -#: company/forms.py:134 company/models.py:328 +#: company/forms.py:149 company/models.py:328 msgid "Manufacturer Part Number" msgstr "" -#: company/forms.py:136 company/models.py:327 +#: company/forms.py:151 company/models.py:327 #: company/templates/company/manufacturer_part_base.html:89 #: company/templates/company/manufacturer_part_detail.html:26 #: company/templates/company/supplier_part_base.html:102 #: company/templates/company/supplier_part_detail.html:35 #: order/templates/order/purchase_order_detail.html:162 part/bom.py:171 -#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307 +#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:408 msgid "MPN" msgstr "" @@ -1952,11 +1980,11 @@ msgstr "" msgid "Point of contact" msgstr "" -#: company/models.py:121 company/models.py:333 company/models.py:485 -#: order/models.py:105 part/models.py:743 +#: company/models.py:121 company/models.py:333 company/models.py:526 +#: order/models.py:106 part/models.py:728 #: report/templates/report/inventree_build_order_base.html:165 -#: templates/js/company.js:188 templates/js/company.js:318 -#: templates/js/part.js:497 +#: templates/js/company.js:188 templates/js/company.js:419 +#: templates/js/part.js:498 msgid "Link" msgstr "" @@ -1964,7 +1992,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:129 part/models.py:753 +#: company/models.py:129 part/models.py:738 msgid "Image" msgstr "" @@ -1992,12 +2020,12 @@ msgstr "" msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:305 company/models.py:456 stock/models.py:407 +#: company/models.py:305 company/models.py:497 stock/models.py:407 #: stock/templates/stock/item_base.html:235 msgid "Base Part" msgstr "" -#: company/models.py:309 company/models.py:460 order/views.py:1587 +#: company/models.py:309 company/models.py:501 order/views.py:1597 msgid "Select part" msgstr "" @@ -2008,7 +2036,7 @@ msgstr "" #: company/templates/company/supplier_part_detail.html:34 part/bom.py:170 #: part/bom.py:241 stock/templates/stock/item_base.html:352 #: templates/js/company.js:44 templates/js/company.js:165 -#: templates/js/company.js:289 +#: templates/js/company.js:390 msgid "Manufacturer" msgstr "" @@ -2020,87 +2048,112 @@ msgstr "" msgid "Manufacturer part description" msgstr "" -#: company/models.py:466 company/templates/company/detail.html:62 +#: company/models.py:390 company/models.py:520 +#: company/templates/company/manufacturer_part_base.html:6 +#: company/templates/company/manufacturer_part_base.html:19 +#: stock/templates/stock/item_base.html:362 +msgid "Manufacturer Part" +msgstr "" + +#: company/models.py:397 +msgid "Parameter name" +msgstr "" + +#: company/models.py:403 part/templates/part/params.html:28 +#: report/templates/report/inventree_test_report_base.html:90 +#: stock/models.py:1756 templates/InvenTree/settings/header.html:8 +#: templates/js/company.js:241 templates/js/stock.js:137 +msgid "Value" +msgstr "" + +#: company/models.py:404 +msgid "Parameter value" +msgstr "" + +#: company/models.py:410 part/models.py:813 part/models.py:2165 +#: part/templates/part/detail.html:106 part/templates/part/params.html:29 +#: templates/js/company.js:247 +msgid "Units" +msgstr "" + +#: company/models.py:411 +msgid "Parameter units" +msgstr "" + +#: company/models.py:507 company/templates/company/detail.html:62 #: company/templates/company/supplier_part_base.html:84 -#: company/templates/company/supplier_part_detail.html:25 order/models.py:192 +#: company/templates/company/supplier_part_detail.html:25 order/models.py:193 #: order/templates/order/order_base.html:92 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175 -#: part/bom.py:286 stock/templates/stock/item_base.html:364 -#: templates/js/company.js:48 templates/js/company.js:263 +#: part/bom.py:286 stock/templates/stock/item_base.html:369 +#: templates/js/company.js:48 templates/js/company.js:364 #: templates/js/order.js:170 msgid "Supplier" msgstr "" -#: company/models.py:467 +#: company/models.py:508 msgid "Select supplier" msgstr "" -#: company/models.py:472 company/templates/company/supplier_part_base.html:88 +#: company/models.py:513 company/templates/company/supplier_part_base.html:88 #: company/templates/company/supplier_part_detail.html:26 #: order/templates/order/purchase_order_detail.html:153 part/bom.py:176 #: part/bom.py:287 msgid "SKU" msgstr "" -#: company/models.py:473 +#: company/models.py:514 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:479 -#: company/templates/company/manufacturer_part_base.html:6 -#: company/templates/company/manufacturer_part_base.html:19 -#: stock/templates/stock/item_base.html:357 -msgid "Manufacturer Part" -msgstr "" - -#: company/models.py:480 +#: company/models.py:521 msgid "Select manufacturer part" msgstr "" -#: company/models.py:486 +#: company/models.py:527 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:492 +#: company/models.py:533 msgid "Supplier part description" msgstr "" -#: company/models.py:497 company/templates/company/supplier_part_base.html:116 -#: company/templates/company/supplier_part_detail.html:38 part/models.py:2282 +#: company/models.py:538 company/templates/company/supplier_part_base.html:116 +#: company/templates/company/supplier_part_detail.html:38 part/models.py:2305 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" -#: company/models.py:501 part/models.py:1614 +#: company/models.py:542 part/models.py:1606 msgid "base cost" msgstr "" -#: company/models.py:501 part/models.py:1614 +#: company/models.py:542 part/models.py:1606 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:503 company/templates/company/supplier_part_base.html:109 +#: company/models.py:544 company/templates/company/supplier_part_base.html:109 #: stock/models.py:431 stock/templates/stock/item_base.html:310 -#: templates/js/stock.js:670 +#: templates/js/stock.js:695 msgid "Packaging" msgstr "" -#: company/models.py:503 +#: company/models.py:544 msgid "Part packaging" msgstr "" -#: company/models.py:505 part/models.py:1616 +#: company/models.py:546 part/models.py:1608 msgid "multiple" msgstr "" -#: company/models.py:505 +#: company/models.py:546 msgid "Order multiple" msgstr "" #: company/templates/company/assigned_stock.html:10 #: company/templates/company/navbar.html:62 -#: company/templates/company/navbar.html:65 templates/js/build.js:477 +#: company/templates/company/navbar.html:65 templates/js/build.js:562 msgid "Assigned Stock" msgstr "" @@ -2165,11 +2218,11 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/detail.html:67 order/models.py:463 +#: company/templates/company/detail.html:67 order/models.py:464 #: order/templates/order/sales_order_base.html:94 stock/models.py:449 #: stock/models.py:450 stock/templates/stock/item_base.html:262 #: templates/js/company.js:40 templates/js/order.js:267 -#: templates/js/stock.js:1072 +#: templates/js/stock.js:1097 msgid "Customer" msgstr "" @@ -2215,7 +2268,7 @@ msgstr "" #: company/templates/company/detail_manufacturer_part.html:66 #: company/templates/company/detail_supplier_part.html:66 #: part/templates/part/bom.html:159 part/templates/part/category.html:118 -#: templates/js/stock.js:1287 +#: templates/js/stock.js:1312 msgid "New Part" msgstr "" @@ -2248,13 +2301,12 @@ msgstr "" #: company/templates/company/detail_supplier_part.html:11 #: company/templates/company/manufacturer_part_navbar.html:11 -#: company/templates/company/manufacturer_part_suppliers.html:10 #: templates/InvenTree/search.html:164 msgid "Supplier Parts" msgstr "" #: company/templates/company/detail_supplier_part.html:21 -#: order/templates/order/order_wizard/select_parts.html:42 +#: order/templates/order/order_wizard/select_parts.html:44 #: order/templates/order/purchase_order_detail.html:50 msgid "Create new supplier part" msgstr "" @@ -2262,12 +2314,12 @@ msgstr "" #: company/templates/company/detail_supplier_part.html:22 #: company/templates/company/manufacturer_part_suppliers.html:17 #: order/templates/order/purchase_order_detail.html:49 -#: part/templates/part/supplier.html:17 templates/js/stock.js:1293 +#: part/templates/part/supplier.html:17 templates/js/stock.js:1318 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail_supplier_part.html:72 -#: company/templates/company/manufacturer_part_suppliers.html:47 +#: company/templates/company/manufacturer_part_suppliers.html:82 #: company/views.py:64 order/templates/order/purchase_orders.html:185 #: part/templates/part/supplier.html:50 msgid "New Supplier" @@ -2319,8 +2371,9 @@ msgid "There are %(count)s suppliers defined for this manufacturer part. If you msgstr "" #: company/templates/company/manufacturer_part_navbar.html:14 -#: company/views.py:63 part/templates/part/navbar.html:84 -#: part/templates/part/navbar.html:87 templates/InvenTree/search.html:316 +#: company/templates/company/manufacturer_part_suppliers.html:10 +#: company/views.py:63 part/templates/part/navbar.html:86 +#: part/templates/part/navbar.html:89 templates/InvenTree/search.html:316 #: templates/navbar.html:35 msgid "Suppliers" msgstr "" @@ -2332,13 +2385,13 @@ msgstr "" #: company/templates/company/manufacturer_part_navbar.html:22 #: company/templates/company/navbar.html:41 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:36 stock/api.py:54 +#: part/templates/part/navbar.html:38 stock/api.py:54 #: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196 #: templates/InvenTree/search.html:232 #: templates/InvenTree/settings/tabs.html:31 templates/js/part.js:181 -#: templates/js/part.js:305 templates/js/part.js:464 templates/js/stock.js:561 +#: templates/js/part.js:305 templates/js/part.js:465 templates/js/stock.js:566 #: templates/navbar.html:26 msgid "Stock" msgstr "" @@ -2360,11 +2413,25 @@ msgstr "" #: company/templates/company/manufacturer_part_suppliers.html:22 #: part/templates/part/manufacturer.html:24 part/templates/part/params.html:44 #: part/templates/part/related.html:44 part/templates/part/supplier.html:22 -#: stock/views.py:1002 users/models.py:187 +#: stock/views.py:1002 users/models.py:191 msgid "Delete" msgstr "" -#: company/templates/company/manufacturer_part_suppliers.html:48 +#: company/templates/company/manufacturer_part_suppliers.html:37 +#: part/templates/part/category_navbar.html:34 +#: part/templates/part/category_navbar.html:37 +#: part/templates/part/navbar.html:24 +msgid "Parameters" +msgstr "" + +#: company/templates/company/manufacturer_part_suppliers.html:43 +#: part/templates/part/params.html:18 +#: templates/InvenTree/settings/category.html:29 +#: templates/InvenTree/settings/part.html:48 +msgid "New Parameter" +msgstr "" + +#: company/templates/company/manufacturer_part_suppliers.html:83 #: part/templates/part/supplier.html:51 msgid "Create new supplier" msgstr "" @@ -2379,13 +2446,13 @@ msgstr "" msgid "Supplied Parts" msgstr "" -#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:33 +#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:35 #: stock/templates/stock/location.html:107 #: stock/templates/stock/location.html:122 #: stock/templates/stock/location.html:136 #: stock/templates/stock/location_navbar.html:22 #: stock/templates/stock/location_navbar.html:29 -#: templates/InvenTree/search.html:198 templates/js/stock.js:971 +#: templates/InvenTree/search.html:198 templates/js/stock.js:996 #: templates/stats.html:93 templates/stats.html:102 users/models.py:42 msgid "Stock Items" msgstr "" @@ -2396,7 +2463,7 @@ msgstr "" #: company/templates/company/sales_orders.html:11 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:13 -#: part/templates/part/navbar.html:104 part/templates/part/navbar.html:107 +#: part/templates/part/navbar.html:112 part/templates/part/navbar.html:115 #: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228 #: templates/InvenTree/search.html:345 #: templates/InvenTree/settings/tabs.html:40 templates/navbar.html:46 @@ -2408,7 +2475,7 @@ msgstr "" #: company/templates/company/purchase_orders.html:10 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:13 -#: part/templates/part/navbar.html:90 part/templates/part/navbar.html:93 +#: part/templates/part/navbar.html:92 part/templates/part/navbar.html:95 #: part/templates/part/orders.html:10 templates/InvenTree/index.html:205 #: templates/InvenTree/search.html:325 #: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:37 @@ -2442,7 +2509,7 @@ msgstr "" #: company/templates/company/supplier_part_base.html:7 #: company/templates/company/supplier_part_base.html:20 stock/models.py:416 -#: stock/templates/stock/item_base.html:369 templates/js/company.js:279 +#: stock/templates/stock/item_base.html:374 templates/js/company.js:380 msgid "Supplier Part" msgstr "" @@ -2490,8 +2557,8 @@ msgstr "" msgid "Pricing Information" msgstr "" -#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794 -#: part/templates/part/sale_prices.html:17 part/views.py:2733 +#: company/templates/company/supplier_part_pricing.html:19 company/views.py:855 +#: part/templates/part/sale_prices.html:17 part/views.py:2751 msgid "Add Price Break" msgstr "" @@ -2510,8 +2577,8 @@ msgstr "" msgid "Delete price break" msgstr "" -#: company/views.py:70 part/templates/part/navbar.html:78 -#: part/templates/part/navbar.html:81 templates/InvenTree/search.html:306 +#: company/views.py:70 part/templates/part/navbar.html:80 +#: part/templates/part/navbar.html:83 templates/InvenTree/search.html:306 #: templates/navbar.html:36 msgid "Manufacturers" msgstr "" @@ -2533,20 +2600,20 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:169 part/views.py:937 +#: company/views.py:169 part/views.py:948 msgid "Download Image" msgstr "" -#: company/views.py:198 part/views.py:969 +#: company/views.py:198 part/views.py:980 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:205 part/views.py:976 +#: company/views.py:205 part/views.py:987 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:214 part/views.py:985 +#: company/views.py:214 part/views.py:996 msgid "Supplied URL is not a valid image file" msgstr "" @@ -2594,27 +2661,35 @@ msgstr "" msgid "Delete Manufacturer Part" msgstr "" -#: company/views.py:528 +#: company/views.py:514 +msgid "Add Manufacturer Part Parameter" +msgstr "" + +#: company/views.py:548 +msgid "Edit Manufacturer Part Parameter" +msgstr "" + +#: company/views.py:588 msgid "Edit Supplier Part" msgstr "" -#: company/views.py:578 templates/js/stock.js:1294 +#: company/views.py:639 templates/js/stock.js:1319 msgid "Create new Supplier Part" msgstr "" -#: company/views.py:722 +#: company/views.py:783 msgid "Delete Supplier Part" msgstr "" -#: company/views.py:799 part/views.py:2737 +#: company/views.py:860 part/views.py:2755 msgid "Added new price break" msgstr "" -#: company/views.py:855 part/views.py:2781 +#: company/views.py:916 part/views.py:2799 msgid "Edit Price Break" msgstr "" -#: company/views.py:870 part/views.py:2795 +#: company/views.py:931 part/views.py:2813 msgid "Delete Price Break" msgstr "" @@ -2638,7 +2713,7 @@ msgstr "" msgid "Label template file" msgstr "" -#: label/models.py:124 report/models.py:274 +#: label/models.py:124 report/models.py:297 msgid "Enabled" msgstr "" @@ -2662,7 +2737,7 @@ msgstr "" msgid "Label height, specified in mm" msgstr "" -#: label/models.py:144 +#: label/models.py:144 report/models.py:290 msgid "Filename Pattern" msgstr "" @@ -2674,8 +2749,8 @@ msgstr "" msgid "Query filters (comma-separated list of key=value pairs" msgstr "" -#: label/models.py:245 label/models.py:298 report/models.py:294 -#: report/models.py:415 report/models.py:449 +#: label/models.py:245 label/models.py:298 report/models.py:317 +#: report/models.py:440 report/models.py:474 msgid "Filters" msgstr "" @@ -2696,237 +2771,239 @@ msgstr "" msgid "Ship order" msgstr "" -#: order/forms.py:82 +#: order/forms.py:86 msgid "Receive parts to this location" msgstr "" -#: order/forms.py:103 +#: order/forms.py:108 msgid "Purchase Order reference" msgstr "" -#: order/forms.py:110 +#: order/forms.py:115 msgid "Target date for order delivery. Order will be overdue after this date." msgstr "" -#: order/forms.py:138 +#: order/forms.py:143 msgid "Enter sales order number" msgstr "" -#: order/forms.py:145 order/models.py:475 +#: order/forms.py:150 order/models.py:476 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/forms.py:236 +#: order/forms.py:242 msgid "Enter stock item serial numbers" msgstr "" -#: order/forms.py:242 +#: order/forms.py:248 msgid "Enter quantity of stock items" msgstr "" -#: order/models.py:101 +#: order/models.py:102 msgid "Order reference" msgstr "" -#: order/models.py:103 +#: order/models.py:104 msgid "Order description" msgstr "" -#: order/models.py:105 +#: order/models.py:106 msgid "Link to external page" msgstr "" -#: order/models.py:113 part/templates/part/detail.html:132 +#: order/models.py:114 part/templates/part/detail.html:132 msgid "Created By" msgstr "" -#: order/models.py:120 +#: order/models.py:121 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:125 +#: order/models.py:126 msgid "Order notes" msgstr "" -#: order/models.py:184 order/models.py:468 +#: order/models.py:185 order/models.py:469 msgid "Purchase order status" msgstr "" -#: order/models.py:193 +#: order/models.py:194 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:196 order/templates/order/order_base.html:98 +#: order/models.py:197 order/templates/order/order_base.html:98 #: templates/js/order.js:179 msgid "Supplier Reference" msgstr "" -#: order/models.py:196 +#: order/models.py:197 msgid "Supplier order reference code" msgstr "" -#: order/models.py:203 +#: order/models.py:204 msgid "received by" msgstr "" -#: order/models.py:208 +#: order/models.py:209 msgid "Issue Date" msgstr "" -#: order/models.py:209 +#: order/models.py:210 msgid "Date order was issued" msgstr "" -#: order/models.py:214 +#: order/models.py:215 msgid "Target Delivery Date" msgstr "" -#: order/models.py:215 +#: order/models.py:216 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:221 +#: order/models.py:222 msgid "Date order was completed" msgstr "" -#: order/models.py:245 part/views.py:1675 stock/models.py:304 +#: order/models.py:246 part/views.py:1686 stock/models.py:304 #: stock/models.py:1020 msgid "Quantity must be greater than zero" msgstr "" -#: order/models.py:250 +#: order/models.py:251 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:348 +#: order/models.py:349 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:352 +#: order/models.py:353 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:354 +#: order/models.py:355 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:464 +#: order/models.py:465 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:470 +#: order/models.py:471 msgid "Customer Reference " msgstr "" -#: order/models.py:470 +#: order/models.py:471 msgid "Customer order reference code" msgstr "" -#: order/models.py:478 templates/js/order.js:303 +#: order/models.py:479 templates/js/order.js:303 msgid "Shipment Date" msgstr "" -#: order/models.py:485 +#: order/models.py:486 msgid "shipped by" msgstr "" -#: order/models.py:529 +#: order/models.py:530 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:616 +#: order/models.py:617 msgid "Item quantity" msgstr "" -#: order/models.py:618 +#: order/models.py:619 msgid "Line item reference" msgstr "" -#: order/models.py:620 +#: order/models.py:621 msgid "Line item notes" msgstr "" -#: order/models.py:646 order/models.py:691 -#: part/templates/part/allocation.html:17 -#: part/templates/part/allocation.html:45 +#: order/models.py:647 order/models.py:715 templates/js/order.js:353 msgid "Order" msgstr "" -#: order/models.py:647 order/templates/order/order_base.html:9 +#: order/models.py:648 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:324 templates/js/order.js:148 -#: templates/js/stock.js:1053 +#: templates/js/stock.js:669 templates/js/stock.js:1078 msgid "Purchase Order" msgstr "" -#: order/models.py:661 +#: order/models.py:662 msgid "Supplier part" msgstr "" -#: order/models.py:664 order/templates/order/order_base.html:131 +#: order/models.py:665 order/templates/order/order_base.html:131 #: order/templates/order/purchase_order_detail.html:219 #: order/templates/order/receive_parts.html:22 #: order/templates/order/sales_order_base.html:133 msgid "Received" msgstr "" -#: order/models.py:664 +#: order/models.py:665 msgid "Number of items received" msgstr "" -#: order/models.py:671 stock/models.py:542 -#: stock/templates/stock/item_base.html:331 templates/js/stock.js:665 +#: order/models.py:672 stock/models.py:542 +#: stock/templates/stock/item_base.html:331 templates/js/stock.js:690 msgid "Purchase Price" msgstr "" -#: order/models.py:672 +#: order/models.py:673 msgid "Unit purchase price" msgstr "" -#: order/models.py:700 part/templates/part/navbar.html:101 -#: part/templates/part/order_prices.html:82 -#: part/templates/part/part_pricing.html:78 +#: order/models.py:681 +msgid "Where does the Purchaser want this item to be stored?" +msgstr "" + +#: order/models.py:724 part/templates/part/navbar.html:109 +#: part/templates/part/order_prices.html:107 +#: part/templates/part/part_pricing.html:97 msgid "Sale Price" msgstr "" -#: order/models.py:701 +#: order/models.py:725 msgid "Unit sale price" msgstr "" -#: order/models.py:776 order/models.py:778 +#: order/models.py:800 order/models.py:802 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:782 +#: order/models.py:806 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:784 +#: order/models.py:808 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:787 +#: order/models.py:811 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:797 +#: order/models.py:821 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:802 +#: order/models.py:826 msgid "Line" msgstr "" -#: order/models.py:813 +#: order/models.py:837 msgid "Item" msgstr "" -#: order/models.py:814 +#: order/models.py:838 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:817 +#: order/models.py:841 msgid "Enter stock allocation quantity" msgstr "" @@ -2955,7 +3032,7 @@ msgid "Export order to file" msgstr "" #: order/templates/order/order_base.html:72 -#: order/templates/order/po_navbar.html:11 +#: order/templates/order/po_navbar.html:12 msgid "Purchase Order Details" msgstr "" @@ -2977,8 +3054,8 @@ msgstr "" #: order/templates/order/order_base.html:180 #: order/templates/order/purchase_order_detail.html:100 #: part/templates/part/category.html:208 part/templates/part/category.html:250 -#: stock/templates/stock/location.html:191 templates/js/stock.js:711 -#: templates/js/stock.js:1299 +#: stock/templates/stock/location.html:191 templates/js/stock.js:736 +#: templates/js/stock.js:1324 msgid "New Location" msgstr "" @@ -3081,28 +3158,32 @@ msgstr "" msgid "Order is already processed. Files cannot be uploaded." msgstr "" -#: order/templates/order/order_wizard/select_parts.html:9 +#: order/templates/order/order_wizard/select_parts.html:11 msgid "Step 1 of 2 - Select Part Suppliers" msgstr "" -#: order/templates/order/order_wizard/select_parts.html:14 +#: order/templates/order/order_wizard/select_parts.html:16 msgid "Select suppliers" msgstr "" -#: order/templates/order/order_wizard/select_parts.html:18 +#: order/templates/order/order_wizard/select_parts.html:20 msgid "No purchaseable parts selected" msgstr "" -#: order/templates/order/order_wizard/select_parts.html:31 +#: order/templates/order/order_wizard/select_parts.html:33 msgid "Select Supplier" msgstr "" #: order/templates/order/order_wizard/select_parts.html:57 +msgid "No price" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:65 #, python-format msgid "Select a supplier for %(name)s" msgstr "" -#: order/templates/order/order_wizard/select_parts.html:69 +#: order/templates/order/order_wizard/select_parts.html:77 #: part/templates/part/set_category.html:32 msgid "Remove part" msgstr "" @@ -3135,15 +3216,20 @@ msgid "Select a purchase order for %(name)s" msgstr "" #: order/templates/order/po_attachments.html:12 -#: order/templates/order/po_navbar.html:23 +#: order/templates/order/po_navbar.html:32 msgid "Purchase Order Attachments" msgstr "" -#: order/templates/order/po_navbar.html:17 +#: order/templates/order/po_lineitem_delete.html:5 +#: order/templates/order/so_lineitem_delete.html:5 +msgid "Are you sure you wish to delete this line item?" +msgstr "" + +#: order/templates/order/po_navbar.html:26 msgid "Received Stock Items" msgstr "" -#: order/templates/order/po_navbar.html:20 +#: order/templates/order/po_navbar.html:29 #: order/templates/order/po_received_items.html:12 msgid "Received Items" msgstr "" @@ -3153,8 +3239,8 @@ msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:24 -#: order/templates/order/sales_order_detail.html:22 order/views.py:1311 -#: order/views.py:1394 +#: order/templates/order/sales_order_detail.html:22 order/views.py:1321 +#: order/views.py:1404 msgid "Add Line Item" msgstr "" @@ -3162,25 +3248,31 @@ msgstr "" msgid "No line items found" msgstr "" +#: order/templates/order/purchase_order_detail.html:142 +#: order/templates/order/sales_order_detail.html:223 +msgid "Total" +msgstr "" + #: order/templates/order/purchase_order_detail.html:191 -#: order/templates/order/sales_order_detail.html:235 +#: order/templates/order/sales_order_detail.html:246 msgid "Unit Price" msgstr "" #: order/templates/order/purchase_order_detail.html:198 +#: order/templates/order/sales_order_detail.html:253 msgid "Total price" msgstr "" -#: order/templates/order/purchase_order_detail.html:251 -#: order/templates/order/sales_order_detail.html:328 +#: order/templates/order/purchase_order_detail.html:255 +#: order/templates/order/sales_order_detail.html:359 msgid "Edit line item" msgstr "" -#: order/templates/order/purchase_order_detail.html:252 +#: order/templates/order/purchase_order_detail.html:256 msgid "Delete line item" msgstr "" -#: order/templates/order/purchase_order_detail.html:257 +#: order/templates/order/purchase_order_detail.html:261 msgid "Receive line item" msgstr "" @@ -3201,7 +3293,7 @@ msgstr "" #: part/templates/part/category_navbar.html:29 #: part/templates/part/category_partlist.html:10 #: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114 -#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:665 +#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:666 #: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89 #: users/models.py:40 msgid "Parts" @@ -3216,7 +3308,7 @@ msgid "Order Code" msgstr "" #: order/templates/order/receive_parts.html:21 -#: part/templates/part/part_base.html:136 templates/js/part.js:480 +#: part/templates/part/part_base.html:136 templates/js/part.js:481 msgid "On Order" msgstr "" @@ -3224,11 +3316,11 @@ msgstr "" msgid "Receive" msgstr "" -#: order/templates/order/receive_parts.html:36 +#: order/templates/order/receive_parts.html:37 msgid "Error: Referenced part has been removed" msgstr "" -#: order/templates/order/receive_parts.html:57 +#: order/templates/order/receive_parts.html:61 msgid "Remove line" msgstr "" @@ -3265,17 +3357,17 @@ msgid "Sales Order Items" msgstr "" #: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:365 -#: templates/js/build.js:637 templates/js/build.js:1054 +#: templates/js/build.js:724 templates/js/build.js:1141 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:525 -#: templates/js/build.js:859 +#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:610 +#: templates/js/build.js:946 msgid "Edit stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:527 -#: templates/js/build.js:860 +#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:612 +#: templates/js/build.js:947 msgid "Delete stock allocation" msgstr "" @@ -3283,50 +3375,50 @@ msgstr "" msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:205 +#: order/templates/order/sales_order_detail.html:206 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:589 -#: templates/js/build.js:855 +#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:675 +#: templates/js/build.js:942 msgid "Allocated" msgstr "" -#: order/templates/order/sales_order_detail.html:245 +#: order/templates/order/sales_order_detail.html:276 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:282 +#: order/templates/order/sales_order_detail.html:313 msgid "PO" msgstr "" -#: order/templates/order/sales_order_detail.html:312 +#: order/templates/order/sales_order_detail.html:343 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:651 +#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:738 msgid "Allocate stock" msgstr "" -#: order/templates/order/sales_order_detail.html:318 +#: order/templates/order/sales_order_detail.html:349 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:644 -#: templates/js/build.js:1062 +#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:731 +#: templates/js/build.js:1149 msgid "Build stock" msgstr "" -#: order/templates/order/sales_order_detail.html:325 -#: order/templates/order/sales_order_detail.html:434 +#: order/templates/order/sales_order_detail.html:356 +#: order/templates/order/sales_order_detail.html:465 msgid "Calculate price" msgstr "" -#: order/templates/order/sales_order_detail.html:329 +#: order/templates/order/sales_order_detail.html:360 msgid "Delete line item " msgstr "" -#: order/templates/order/sales_order_detail.html:440 +#: order/templates/order/sales_order_detail.html:471 msgid "Update Unit Price" msgstr "" @@ -3367,10 +3459,6 @@ msgstr "" msgid "Sales Order Attachments" msgstr "" -#: order/templates/order/so_lineitem_delete.html:5 -msgid "Are you sure you wish to delete this line item?" -msgstr "" - #: order/views.py:104 msgid "Add Purchase Order Attachment" msgstr "" @@ -3471,90 +3559,94 @@ msgstr "" msgid "No lines specified" msgstr "" -#: order/views.py:1260 +#: order/views.py:1012 +msgid "Update prices" +msgstr "" + +#: order/views.py:1270 #, python-brace-format msgid "Ordered {n} parts" msgstr "" -#: order/views.py:1320 +#: order/views.py:1330 msgid "Supplier part must be specified" msgstr "" -#: order/views.py:1326 +#: order/views.py:1336 msgid "Supplier must match for Part and Order" msgstr "" -#: order/views.py:1457 order/views.py:1475 +#: order/views.py:1467 order/views.py:1485 msgid "Edit Line Item" msgstr "" -#: order/views.py:1491 order/views.py:1503 +#: order/views.py:1501 order/views.py:1513 msgid "Delete Line Item" msgstr "" -#: order/views.py:1496 order/views.py:1508 +#: order/views.py:1506 order/views.py:1518 msgid "Deleted line item" msgstr "" -#: order/views.py:1521 +#: order/views.py:1531 msgid "Allocate Serial Numbers" msgstr "" -#: order/views.py:1566 +#: order/views.py:1576 #, python-brace-format msgid "Allocated {n} items" msgstr "" -#: order/views.py:1582 +#: order/views.py:1592 msgid "Select line item" msgstr "" -#: order/views.py:1613 -#, python-brace-format -msgid "No matching item for serial {serial}" -msgstr "" - #: order/views.py:1623 #, python-brace-format +msgid "No matching item for serial {serial}" +msgstr "" + +#: order/views.py:1633 +#, python-brace-format msgid "{serial} is not in stock" msgstr "" -#: order/views.py:1631 +#: order/views.py:1641 #, python-brace-format msgid "{serial} already allocated to an order" msgstr "" -#: order/views.py:1685 +#: order/views.py:1695 msgid "Allocate Stock to Order" msgstr "" -#: order/views.py:1759 +#: order/views.py:1769 msgid "Edit Allocation Quantity" msgstr "" -#: order/views.py:1774 +#: order/views.py:1784 msgid "Remove allocation" msgstr "" -#: order/views.py:1846 +#: order/views.py:1856 msgid "Sales order not found" msgstr "" -#: order/views.py:1852 +#: order/views.py:1862 msgid "Price not found" msgstr "" -#: order/views.py:1855 +#: order/views.py:1865 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:1860 +#: order/views.py:1870 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/bom.py:138 part/models.py:72 part/models.py:762 +#: part/bom.py:138 part/models.py:72 part/models.py:747 #: part/templates/part/category.html:66 part/templates/part/detail.html:90 msgid "Default Location" msgstr "" @@ -3632,7 +3724,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:122 part/models.py:2168 +#: part/forms.py:122 part/models.py:2191 msgid "Parent Part" msgstr "" @@ -3708,7 +3800,7 @@ msgstr "" msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:344 part/models.py:2263 +#: part/forms.py:344 part/models.py:2286 msgid "Sub part" msgstr "" @@ -3728,7 +3820,7 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:82 part/models.py:2214 +#: part/models.py:82 part/models.py:2237 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -3739,365 +3831,360 @@ msgstr "" msgid "Part Categories" msgstr "" -#: part/models.py:446 part/models.py:458 +#: part/models.py:448 part/models.py:460 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:555 +#: part/models.py:557 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:559 +#: part/models.py:561 msgid "Next available serial number is" msgstr "" -#: part/models.py:564 +#: part/models.py:566 msgid "Most recent serial number is" msgstr "" -#: part/models.py:643 +#: part/models.py:645 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:654 -msgid "Part must be unique for name, IPN and revision" -msgstr "" - -#: part/models.py:685 part/templates/part/detail.html:22 +#: part/models.py:670 part/templates/part/detail.html:22 msgid "Part name" msgstr "" -#: part/models.py:692 +#: part/models.py:677 msgid "Is Template" msgstr "" -#: part/models.py:693 +#: part/models.py:678 msgid "Is this part a template part?" msgstr "" -#: part/models.py:704 +#: part/models.py:689 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:705 part/templates/part/detail.html:60 +#: part/models.py:690 part/templates/part/detail.html:60 msgid "Variant Of" msgstr "" -#: part/models.py:711 +#: part/models.py:696 msgid "Part description" msgstr "" -#: part/models.py:716 part/templates/part/category.html:73 +#: part/models.py:701 part/templates/part/category.html:73 #: part/templates/part/detail.html:67 msgid "Keywords" msgstr "" -#: part/models.py:717 +#: part/models.py:702 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:724 part/models.py:2213 part/templates/part/detail.html:73 -#: part/templates/part/set_category.html:15 templates/js/part.js:451 +#: part/models.py:709 part/models.py:2236 part/templates/part/detail.html:73 +#: part/templates/part/set_category.html:15 templates/js/part.js:452 msgid "Category" msgstr "" -#: part/models.py:725 +#: part/models.py:710 msgid "Part category" msgstr "" -#: part/models.py:730 part/templates/part/detail.html:28 +#: part/models.py:715 part/templates/part/detail.html:28 #: part/templates/part/part_base.html:87 templates/js/part.js:169 #: templates/js/part.js:296 msgid "IPN" msgstr "" -#: part/models.py:731 +#: part/models.py:716 msgid "Internal Part Number" msgstr "" -#: part/models.py:737 +#: part/models.py:722 msgid "Part revision or version number" msgstr "" -#: part/models.py:738 part/templates/part/detail.html:35 report/models.py:198 +#: part/models.py:723 part/templates/part/detail.html:35 report/models.py:199 #: templates/js/part.js:173 msgid "Revision" msgstr "" -#: part/models.py:760 +#: part/models.py:745 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:807 part/templates/part/detail.html:97 +#: part/models.py:792 part/templates/part/detail.html:97 msgid "Default Supplier" msgstr "" -#: part/models.py:808 +#: part/models.py:793 msgid "Default supplier part" msgstr "" -#: part/models.py:815 +#: part/models.py:800 msgid "Default Expiry" msgstr "" -#: part/models.py:816 +#: part/models.py:801 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:821 part/templates/part/detail.html:113 +#: part/models.py:806 part/templates/part/detail.html:113 msgid "Minimum Stock" msgstr "" -#: part/models.py:822 +#: part/models.py:807 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:828 part/models.py:2142 part/templates/part/detail.html:106 -#: part/templates/part/params.html:29 -msgid "Units" -msgstr "" - -#: part/models.py:829 +#: part/models.py:814 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:835 +#: part/models.py:820 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:841 +#: part/models.py:826 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:847 +#: part/models.py:832 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:852 +#: part/models.py:837 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:857 +#: part/models.py:842 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:861 part/templates/part/detail.html:227 +#: part/models.py:846 part/templates/part/detail.html:227 #: templates/js/table_filters.js:21 templates/js/table_filters.js:65 #: templates/js/table_filters.js:241 templates/js/table_filters.js:310 msgid "Active" msgstr "" -#: part/models.py:862 +#: part/models.py:847 msgid "Is this part active?" msgstr "" -#: part/models.py:867 +#: part/models.py:852 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:872 +#: part/models.py:857 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:875 +#: part/models.py:860 msgid "BOM checksum" msgstr "" -#: part/models.py:875 +#: part/models.py:860 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:878 +#: part/models.py:863 msgid "BOM checked by" msgstr "" -#: part/models.py:880 +#: part/models.py:865 msgid "BOM checked date" msgstr "" -#: part/models.py:884 +#: part/models.py:869 msgid "Creation User" msgstr "" -#: part/models.py:1616 +#: part/models.py:1608 msgid "Sell multiple" msgstr "" -#: part/models.py:2040 +#: part/models.py:2063 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2057 +#: part/models.py:2080 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2077 templates/js/part.js:716 templates/js/stock.js:117 +#: part/models.py:2100 templates/js/part.js:717 templates/js/stock.js:117 msgid "Test Name" msgstr "" -#: part/models.py:2078 +#: part/models.py:2101 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2083 +#: part/models.py:2106 msgid "Test Description" msgstr "" -#: part/models.py:2084 +#: part/models.py:2107 msgid "Enter description for this test" msgstr "" -#: part/models.py:2089 templates/js/part.js:725 +#: part/models.py:2112 templates/js/part.js:726 #: templates/js/table_filters.js:227 msgid "Required" msgstr "" -#: part/models.py:2090 +#: part/models.py:2113 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2095 templates/js/part.js:733 +#: part/models.py:2118 templates/js/part.js:734 msgid "Requires Value" msgstr "" -#: part/models.py:2096 +#: part/models.py:2119 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2101 templates/js/part.js:740 +#: part/models.py:2124 templates/js/part.js:741 msgid "Requires Attachment" msgstr "" -#: part/models.py:2102 +#: part/models.py:2125 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2135 +#: part/models.py:2158 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2140 +#: part/models.py:2163 msgid "Parameter Name" msgstr "" -#: part/models.py:2142 +#: part/models.py:2165 msgid "Parameter Units" msgstr "" -#: part/models.py:2170 part/models.py:2219 part/models.py:2220 +#: part/models.py:2193 part/models.py:2242 part/models.py:2243 #: templates/InvenTree/settings/category.html:62 msgid "Parameter Template" msgstr "" -#: part/models.py:2172 +#: part/models.py:2195 msgid "Data" msgstr "" -#: part/models.py:2172 +#: part/models.py:2195 msgid "Parameter Value" msgstr "" -#: part/models.py:2224 templates/InvenTree/settings/category.html:67 +#: part/models.py:2247 templates/InvenTree/settings/category.html:67 msgid "Default Value" msgstr "" -#: part/models.py:2225 +#: part/models.py:2248 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2255 +#: part/models.py:2278 msgid "Select parent part" msgstr "" -#: part/models.py:2264 +#: part/models.py:2287 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2270 +#: part/models.py:2293 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2272 templates/js/bom.js:216 templates/js/bom.js:285 +#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:285 msgid "Optional" msgstr "" -#: part/models.py:2272 +#: part/models.py:2295 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2275 +#: part/models.py:2298 msgid "Overage" msgstr "" -#: part/models.py:2276 +#: part/models.py:2299 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2279 +#: part/models.py:2302 msgid "BOM item reference" msgstr "" -#: part/models.py:2282 +#: part/models.py:2305 msgid "BOM item notes" msgstr "" -#: part/models.py:2284 +#: part/models.py:2307 msgid "Checksum" msgstr "" -#: part/models.py:2284 +#: part/models.py:2307 msgid "BOM line checksum" msgstr "" -#: part/models.py:2288 templates/js/bom.js:302 templates/js/bom.js:309 +#: part/models.py:2311 templates/js/bom.js:302 templates/js/bom.js:309 #: templates/js/table_filters.js:51 msgid "Inherited" msgstr "" -#: part/models.py:2289 +#: part/models.py:2312 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2294 templates/js/bom.js:294 +#: part/models.py:2317 templates/js/bom.js:294 msgid "Allow Variants" msgstr "" -#: part/models.py:2295 +#: part/models.py:2318 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2371 part/views.py:1681 part/views.py:1733 +#: part/models.py:2394 part/views.py:1692 part/views.py:1744 #: stock/models.py:294 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2380 part/models.py:2382 +#: part/models.py:2403 part/models.py:2405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2385 +#: part/models.py:2408 msgid "BOM Item" msgstr "" -#: part/models.py:2502 +#: part/models.py:2527 msgid "Part 1" msgstr "" -#: part/models.py:2506 +#: part/models.py:2531 msgid "Part 2" msgstr "" -#: part/models.py:2506 +#: part/models.py:2531 msgid "Select Related Part" msgstr "" -#: part/models.py:2538 +#: part/models.py:2563 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" #: part/templates/part/allocation.html:11 -msgid "Part Stock Allocations" +msgid "Build Order Allocations" +msgstr "" + +#: part/templates/part/allocation.html:24 +msgid "Sales Order Allocations" msgstr "" #: part/templates/part/attachments.html:10 @@ -4112,8 +4199,8 @@ msgstr "" msgid "Deleting this entry will remove the BOM row from the following part" msgstr "" -#: part/templates/part/bom.html:10 part/templates/part/navbar.html:48 -#: part/templates/part/navbar.html:51 +#: part/templates/part/bom.html:10 part/templates/part/navbar.html:50 +#: part/templates/part/navbar.html:53 msgid "Bill of Materials" msgstr "" @@ -4160,7 +4247,7 @@ msgstr "" msgid "Validate Bill of Materials" msgstr "" -#: part/templates/part/bom.html:61 part/views.py:1976 +#: part/templates/part/bom.html:61 part/views.py:1987 msgid "Export Bill of Materials" msgstr "" @@ -4177,7 +4264,7 @@ msgid "All selected BOM items will be deleted" msgstr "" #: part/templates/part/bom.html:160 part/views.py:585 -#: templates/js/stock.js:1288 +#: templates/js/stock.js:1313 msgid "Create New Part" msgstr "" @@ -4258,7 +4345,7 @@ msgstr "" msgid "All parts" msgstr "" -#: part/templates/part/category.html:29 part/views.py:2379 +#: part/templates/part/category.html:29 part/views.py:2397 msgid "Create new part category" msgstr "" @@ -4318,7 +4405,7 @@ msgid "View grid display" msgstr "" #: part/templates/part/category.html:209 -#: stock/templates/stock/location.html:192 templates/js/stock.js:712 +#: stock/templates/stock/location.html:192 templates/js/stock.js:737 msgid "Create new location" msgstr "" @@ -4373,14 +4460,8 @@ msgstr "" msgid "If this category is deleted, these parts will be moved to the top-level category Teile" msgstr "" -#: part/templates/part/category_navbar.html:34 -#: part/templates/part/category_navbar.html:37 -#: part/templates/part/navbar.html:22 -msgid "Parameters" -msgstr "" - #: part/templates/part/category_parametric.html:10 -#: part/templates/part/navbar.html:19 part/templates/part/params.html:10 +#: part/templates/part/navbar.html:21 part/templates/part/params.html:10 msgid "Part Parameters" msgstr "" @@ -4408,7 +4489,7 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:11 part/templates/part/navbar.html:11 +#: part/templates/part/detail.html:11 part/templates/part/navbar.html:13 msgid "Part Details" msgstr "" @@ -4488,6 +4569,36 @@ msgstr "" msgid "Part is not active" msgstr "" +#: part/templates/part/internal_prices.html:11 +#: part/templates/part/navbar.html:100 +msgid "Internal Price Information" +msgstr "" + +#: part/templates/part/internal_prices.html:19 part/views.py:2822 +msgid "Add Internal Price Break" +msgstr "" + +#: part/templates/part/internal_prices.html:28 templates/403.html:5 +#: templates/403.html:11 +msgid "Permission Denied" +msgstr "" + +#: part/templates/part/internal_prices.html:31 templates/403.html:14 +msgid "You do not have permission to view this page." +msgstr "" + +#: part/templates/part/internal_prices.html:59 +msgid "No internal price break information found" +msgstr "" + +#: part/templates/part/internal_prices.html:110 +msgid "Edit internal price break" +msgstr "" + +#: part/templates/part/internal_prices.html:111 +msgid "Delete internal price break" +msgstr "" + #: part/templates/part/manufacturer.html:11 msgid "Part Manufacturers" msgstr "" @@ -4501,127 +4612,141 @@ msgstr "" msgid "Create new manufacturer" msgstr "" -#: part/templates/part/navbar.html:26 part/templates/part/variants.html:11 +#: part/templates/part/navbar.html:28 part/templates/part/variants.html:11 msgid "Part Variants" msgstr "" -#: part/templates/part/navbar.html:29 +#: part/templates/part/navbar.html:31 msgid "Variants" msgstr "" -#: part/templates/part/navbar.html:40 +#: part/templates/part/navbar.html:42 msgid "Allocated Stock" msgstr "" -#: part/templates/part/navbar.html:43 +#: part/templates/part/navbar.html:45 msgid "Allocations" msgstr "" -#: part/templates/part/navbar.html:64 part/templates/part/navbar.html:67 +#: part/templates/part/navbar.html:66 part/templates/part/navbar.html:69 msgid "Used In" msgstr "" -#: part/templates/part/navbar.html:72 part/templates/part/order_prices.html:12 +#: part/templates/part/navbar.html:74 part/templates/part/order_prices.html:12 msgid "Order Price Information" msgstr "" -#: part/templates/part/navbar.html:75 +#: part/templates/part/navbar.html:77 msgid "Order Price" msgstr "" -#: part/templates/part/navbar.html:98 +#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:93 +#: part/templates/part/part_pricing.html:82 +msgid "Internal Price" +msgstr "" + +#: part/templates/part/navbar.html:106 msgid "Sales Price Information" msgstr "" -#: part/templates/part/navbar.html:112 part/templates/part/part_tests.html:10 +#: part/templates/part/navbar.html:120 part/templates/part/part_tests.html:10 msgid "Part Test Templates" msgstr "" -#: part/templates/part/navbar.html:115 stock/templates/stock/item_base.html:409 +#: part/templates/part/navbar.html:123 stock/templates/stock/item_base.html:414 msgid "Tests" msgstr "" -#: part/templates/part/navbar.html:119 part/templates/part/navbar.html:122 +#: part/templates/part/navbar.html:127 part/templates/part/navbar.html:130 #: part/templates/part/related.html:10 msgid "Related Parts" msgstr "" -#: part/templates/part/navbar.html:131 part/templates/part/notes.html:12 +#: part/templates/part/navbar.html:139 part/templates/part/notes.html:12 msgid "Part Notes" msgstr "" -#: part/templates/part/order_prices.html:21 +#: part/templates/part/order_prices.html:24 +#: part/templates/part/part_base.html:282 +msgid "Calculate" +msgstr "" + +#: part/templates/part/order_prices.html:31 msgid "Pricing ranges" msgstr "" -#: part/templates/part/order_prices.html:26 -#: part/templates/part/part_pricing.html:19 +#: part/templates/part/order_prices.html:36 +#: part/templates/part/part_pricing.html:22 msgid "Supplier Pricing" msgstr "" -#: part/templates/part/order_prices.html:27 -#: part/templates/part/order_prices.html:52 -#: part/templates/part/order_prices.html:83 -#: part/templates/part/part_pricing.html:23 -#: part/templates/part/part_pricing.html:49 -#: part/templates/part/part_pricing.html:81 +#: part/templates/part/order_prices.html:37 +#: part/templates/part/order_prices.html:62 +#: part/templates/part/order_prices.html:94 +#: part/templates/part/order_prices.html:108 +#: part/templates/part/part_pricing.html:26 +#: part/templates/part/part_pricing.html:52 +#: part/templates/part/part_pricing.html:85 +#: part/templates/part/part_pricing.html:100 msgid "Unit Cost" msgstr "" -#: part/templates/part/order_prices.html:34 -#: part/templates/part/order_prices.html:59 -#: part/templates/part/order_prices.html:88 -#: part/templates/part/part_pricing.html:29 -#: part/templates/part/part_pricing.html:55 -#: part/templates/part/part_pricing.html:85 +#: part/templates/part/order_prices.html:44 +#: part/templates/part/order_prices.html:69 +#: part/templates/part/order_prices.html:99 +#: part/templates/part/order_prices.html:113 +#: part/templates/part/part_pricing.html:32 +#: part/templates/part/part_pricing.html:58 +#: part/templates/part/part_pricing.html:89 +#: part/templates/part/part_pricing.html:104 msgid "Total Cost" msgstr "" -#: part/templates/part/order_prices.html:42 -#: part/templates/part/part_pricing.html:37 +#: part/templates/part/order_prices.html:52 +#: part/templates/part/part_pricing.html:40 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/order_prices.html:51 -#: part/templates/part/order_prices.html:103 -#: part/templates/part/part_pricing.html:45 +#: part/templates/part/order_prices.html:61 +#: part/templates/part/order_prices.html:128 +#: part/templates/part/part_pricing.html:48 msgid "BOM Pricing" msgstr "" -#: part/templates/part/order_prices.html:67 -#: part/templates/part/part_pricing.html:63 +#: part/templates/part/order_prices.html:77 +#: part/templates/part/part_pricing.html:66 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/order_prices.html:74 -#: part/templates/part/part_pricing.html:70 +#: part/templates/part/order_prices.html:84 +#: part/templates/part/part_pricing.html:73 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/order_prices.html:97 -#: part/templates/part/part_pricing.html:94 +#: part/templates/part/order_prices.html:122 +#: part/templates/part/part_pricing.html:113 msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/order_prices.html:113 +#: part/templates/part/order_prices.html:138 msgid "Stock Pricing" msgstr "" -#: part/templates/part/order_prices.html:121 +#: part/templates/part/order_prices.html:146 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/order_prices.html:140 +#: part/templates/part/order_prices.html:165 #, python-format msgid "Single Price - %(currency)s" msgstr "" -#: part/templates/part/order_prices.html:152 +#: part/templates/part/order_prices.html:177 #, python-format msgid "Single Price Difference - %(currency)s" msgstr "" -#: part/templates/part/order_prices.html:163 +#: part/templates/part/order_prices.html:189 #, python-format msgid "Part Single Price - %(currency)s" msgstr "" @@ -4630,19 +4755,6 @@ msgstr "" msgid "Add new parameter" msgstr "" -#: part/templates/part/params.html:18 -#: templates/InvenTree/settings/category.html:29 -#: templates/InvenTree/settings/part.html:44 -msgid "New Parameter" -msgstr "" - -#: part/templates/part/params.html:28 -#: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1756 templates/InvenTree/settings/header.html:8 -#: templates/js/stock.js:137 -msgid "Value" -msgstr "" - #: part/templates/part/params.html:41 templates/InvenTree/settings/user.html:19 msgid "Edit" msgstr "" @@ -4660,7 +4772,7 @@ msgid "Part List" msgstr "" #: part/templates/part/part_base.html:26 templates/js/company.js:156 -#: templates/js/company.js:254 templates/js/part.js:84 templates/js/part.js:161 +#: templates/js/company.js:355 templates/js/part.js:84 templates/js/part.js:161 msgid "Inactive" msgstr "" @@ -4740,14 +4852,10 @@ msgid "Can Build" msgstr "" #: part/templates/part/part_base.html:178 templates/js/part.js:312 -#: templates/js/part.js:484 +#: templates/js/part.js:485 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:265 -msgid "Calculate" -msgstr "" - #: part/templates/part/part_tests.html:17 msgid "Add Test Template" msgstr "" @@ -4816,7 +4924,7 @@ msgid "Showing stock for all variants of %(full_name)s" msgstr "" #: part/templates/part/stock_count.html:7 templates/js/bom.js:239 -#: templates/js/part.js:302 templates/js/part.js:488 +#: templates/js/part.js:302 templates/js/part.js:489 msgid "No Stock" msgstr "" @@ -4853,7 +4961,7 @@ msgstr "" msgid "New Variant" msgstr "" -#: part/templatetags/inventree_extras.py:98 +#: part/templatetags/inventree_extras.py:99 msgid "Unknown database" msgstr "" @@ -4922,227 +5030,239 @@ msgstr "" msgid "Created new part" msgstr "" -#: part/views.py:914 +#: part/views.py:925 msgid "Part QR Code" msgstr "" -#: part/views.py:1016 +#: part/views.py:1027 msgid "Upload Part Image" msgstr "" -#: part/views.py:1022 part/views.py:1057 +#: part/views.py:1033 part/views.py:1068 msgid "Updated part image" msgstr "" -#: part/views.py:1031 +#: part/views.py:1042 msgid "Select Part Image" msgstr "" -#: part/views.py:1060 +#: part/views.py:1071 msgid "Part image not found" msgstr "" -#: part/views.py:1071 +#: part/views.py:1082 msgid "Edit Part Properties" msgstr "" -#: part/views.py:1106 +#: part/views.py:1117 msgid "Duplicate BOM" msgstr "" -#: part/views.py:1136 +#: part/views.py:1147 msgid "Confirm duplication of BOM from parent" msgstr "" -#: part/views.py:1157 +#: part/views.py:1168 msgid "Validate BOM" msgstr "" -#: part/views.py:1178 +#: part/views.py:1189 msgid "Confirm that the BOM is valid" msgstr "" -#: part/views.py:1189 +#: part/views.py:1200 msgid "Validated Bill of Materials" msgstr "" -#: part/views.py:1323 +#: part/views.py:1334 msgid "No BOM file provided" msgstr "" -#: part/views.py:1684 +#: part/views.py:1695 msgid "Enter a valid quantity" msgstr "" -#: part/views.py:1709 part/views.py:1712 +#: part/views.py:1720 part/views.py:1723 msgid "Select valid part" msgstr "" -#: part/views.py:1718 +#: part/views.py:1729 msgid "Duplicate part selected" msgstr "" -#: part/views.py:1756 +#: part/views.py:1767 msgid "Select a part" msgstr "" -#: part/views.py:1762 +#: part/views.py:1773 msgid "Selected part creates a circular BOM" msgstr "" -#: part/views.py:1766 +#: part/views.py:1777 msgid "Specify quantity" msgstr "" -#: part/views.py:2028 +#: part/views.py:2039 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:2035 +#: part/views.py:2046 msgid "Part was deleted" msgstr "" -#: part/views.py:2044 +#: part/views.py:2055 msgid "Part Pricing" msgstr "" -#: part/views.py:2178 +#: part/views.py:2196 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:2188 +#: part/views.py:2206 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:2195 +#: part/views.py:2213 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:2203 +#: part/views.py:2221 msgid "Create Part Parameter" msgstr "" -#: part/views.py:2253 +#: part/views.py:2271 msgid "Edit Part Parameter" msgstr "" -#: part/views.py:2267 +#: part/views.py:2285 msgid "Delete Part Parameter" msgstr "" -#: part/views.py:2327 +#: part/views.py:2345 msgid "Edit Part Category" msgstr "" -#: part/views.py:2365 +#: part/views.py:2383 msgid "Delete Part Category" msgstr "" -#: part/views.py:2371 +#: part/views.py:2389 msgid "Part category was deleted" msgstr "" -#: part/views.py:2423 +#: part/views.py:2441 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:2524 +#: part/views.py:2542 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:2580 +#: part/views.py:2598 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:2599 +#: part/views.py:2617 msgid "Create BOM Item" msgstr "" -#: part/views.py:2669 +#: part/views.py:2687 msgid "Edit BOM item" msgstr "" -#: part/views.py:2725 +#: part/views.py:2743 msgid "Confim BOM item deletion" msgstr "" -#: report/models.py:180 +#: part/views.py:2831 +msgid "Edit Internal Price Break" +msgstr "" + +#: part/views.py:2839 +msgid "Delete Internal Price Break" +msgstr "" + +#: report/models.py:181 msgid "Template name" msgstr "" -#: report/models.py:186 +#: report/models.py:187 msgid "Report template file" msgstr "" -#: report/models.py:193 +#: report/models.py:194 msgid "Report template description" msgstr "" -#: report/models.py:199 +#: report/models.py:200 msgid "Report revision number (auto-increments)" msgstr "" -#: report/models.py:275 +#: report/models.py:291 +msgid "Pattern for generating report filenames" +msgstr "" + +#: report/models.py:298 msgid "Report template is enabled" msgstr "" -#: report/models.py:295 +#: report/models.py:318 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:303 +#: report/models.py:326 msgid "Include Installed Tests" msgstr "" -#: report/models.py:304 +#: report/models.py:327 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:347 +#: report/models.py:371 msgid "Build Filters" msgstr "" -#: report/models.py:348 +#: report/models.py:372 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:385 +#: report/models.py:410 msgid "Part Filters" msgstr "" -#: report/models.py:386 +#: report/models.py:411 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:416 +#: report/models.py:441 msgid "Purchase order query filters" msgstr "" -#: report/models.py:450 +#: report/models.py:475 msgid "Sales order query filters" msgstr "" -#: report/models.py:500 +#: report/models.py:525 msgid "Snippet" msgstr "" -#: report/models.py:501 +#: report/models.py:526 msgid "Report snippet file" msgstr "" -#: report/models.py:505 +#: report/models.py:530 msgid "Snippet file description" msgstr "" -#: report/models.py:540 +#: report/models.py:565 msgid "Asset" msgstr "" -#: report/models.py:541 +#: report/models.py:566 msgid "Report asset file" msgstr "" -#: report/models.py:544 +#: report/models.py:569 msgid "Asset file description" msgstr "" @@ -5174,7 +5294,7 @@ msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/order.js:195 templates/js/stock.js:987 +#: templates/js/order.js:195 templates/js/stock.js:1012 msgid "Date" msgstr "" @@ -5197,7 +5317,7 @@ msgid "Moved {n} parts to {loc}" msgstr "" #: stock/forms.py:114 stock/forms.py:418 stock/models.py:509 -#: stock/templates/stock/item_base.html:376 templates/js/stock.js:654 +#: stock/templates/stock/item_base.html:381 templates/js/stock.js:658 msgid "Expiry Date" msgstr "" @@ -5483,12 +5603,12 @@ msgid "Stock Item Attachments" msgstr "" #: stock/templates/stock/item_base.html:33 -#: stock/templates/stock/item_base.html:380 templates/js/table_filters.js:150 +#: stock/templates/stock/item_base.html:385 templates/js/table_filters.js:150 msgid "Expired" msgstr "" #: stock/templates/stock/item_base.html:43 -#: stock/templates/stock/item_base.html:382 templates/js/table_filters.js:155 +#: stock/templates/stock/item_base.html:387 templates/js/table_filters.js:155 msgid "Stale" msgstr "" @@ -5618,7 +5738,7 @@ msgstr "" msgid "Stock Item Details" msgstr "" -#: stock/templates/stock/item_base.html:289 templates/js/build.js:508 +#: stock/templates/stock/item_base.html:289 templates/js/build.js:593 msgid "No location set" msgstr "" @@ -5630,25 +5750,29 @@ msgstr "" msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:380 +#: stock/templates/stock/item_base.html:356 +msgid "No manufacturer set" +msgstr "" + +#: stock/templates/stock/item_base.html:385 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:382 +#: stock/templates/stock/item_base.html:387 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:389 templates/js/stock.js:660 +#: stock/templates/stock/item_base.html:394 templates/js/stock.js:664 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:394 +#: stock/templates/stock/item_base.html:399 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:398 +#: stock/templates/stock/item_base.html:403 msgid "No stocktake performed" msgstr "" @@ -5945,7 +6069,7 @@ msgstr "" msgid "Add Stock Items" msgstr "" -#: stock/views.py:1001 users/models.py:183 +#: stock/views.py:1001 users/models.py:187 msgid "Add" msgstr "" @@ -6011,7 +6135,7 @@ msgstr "" msgid "Serialize Stock" msgstr "" -#: stock/views.py:1575 templates/js/build.js:244 +#: stock/views.py:1575 templates/js/build.js:326 msgid "Create new Stock Item" msgstr "" @@ -6043,14 +6167,6 @@ msgstr "" msgid "Add Stock Tracking Entry" msgstr "" -#: templates/403.html:5 templates/403.html:11 -msgid "Permission Denied" -msgstr "" - -#: templates/403.html:14 -msgid "You do not have permission to view this page." -msgstr "" - #: templates/404.html:5 templates/404.html:11 msgid "Page Not Found" msgstr "" @@ -6119,11 +6235,11 @@ msgstr "" msgid "Enter a search query" msgstr "" -#: templates/InvenTree/search.html:268 templates/js/stock.js:298 +#: templates/InvenTree/search.html:268 templates/js/stock.js:303 msgid "Shipped to customer" msgstr "" -#: templates/InvenTree/search.html:271 templates/js/stock.js:308 +#: templates/InvenTree/search.html:271 templates/js/stock.js:313 msgid "No stock location set" msgstr "" @@ -6168,12 +6284,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/category.html:70 -#: templates/InvenTree/settings/part.html:81 +#: templates/InvenTree/settings/part.html:85 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/category.html:71 -#: templates/InvenTree/settings/part.html:82 +#: templates/InvenTree/settings/part.html:86 msgid "Delete Template" msgstr "" @@ -6221,11 +6337,11 @@ msgstr "" msgid "Part Options" msgstr "" -#: templates/InvenTree/settings/part.html:40 +#: templates/InvenTree/settings/part.html:44 msgid "Part Parameter Templates" msgstr "" -#: templates/InvenTree/settings/part.html:61 +#: templates/InvenTree/settings/part.html:65 msgid "No part parameter templates found" msgstr "" @@ -6341,47 +6457,51 @@ msgid "API Version" msgstr "" #: templates/about.html:39 +msgid "Python Version" +msgstr "" + +#: templates/about.html:44 msgid "Django Version" msgstr "" -#: templates/about.html:46 +#: templates/about.html:51 msgid "Commit Hash" msgstr "" -#: templates/about.html:53 +#: templates/about.html:58 msgid "Commit Date" msgstr "" -#: templates/about.html:58 +#: templates/about.html:63 msgid "InvenTree Documentation" msgstr "" -#: templates/about.html:63 +#: templates/about.html:68 msgid "View Code on GitHub" msgstr "" -#: templates/about.html:68 +#: templates/about.html:73 msgid "Credits" msgstr "" -#: templates/about.html:73 +#: templates/about.html:78 msgid "Mobile App" msgstr "" -#: templates/about.html:78 +#: templates/about.html:83 msgid "Submit Bug Report" msgstr "" -#: templates/about.html:85 templates/clip.html:4 +#: templates/about.html:90 templates/clip.html:4 msgid "copy to clipboard" msgstr "" -#: templates/about.html:85 +#: templates/about.html:90 msgid "copy version information" msgstr "" -#: templates/about.html:95 templates/js/modals.js:568 -#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54 +#: templates/about.html:100 templates/js/modals.js:568 +#: templates/js/modals.js:861 templates/modals.html:29 templates/modals.html:54 #: templates/modals.html:97 msgid "Close" msgstr "" @@ -6442,7 +6562,7 @@ msgstr "" msgid "Unknown response from server" msgstr "" -#: templates/js/barcode.js:119 templates/js/modals.js:901 +#: templates/js/barcode.js:119 templates/js/modals.js:921 msgid "Invalid server response" msgstr "" @@ -6506,7 +6626,7 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/bom.js:175 templates/js/build.js:1004 +#: templates/js/bom.js:175 templates/js/build.js:1091 msgid "Open subassembly" msgstr "" @@ -6542,7 +6662,7 @@ msgstr "" msgid "Delete BOM Item" msgstr "" -#: templates/js/bom.js:470 templates/js/build.js:340 templates/js/build.js:1102 +#: templates/js/bom.js:470 templates/js/build.js:423 templates/js/build.js:1189 msgid "No BOM items found" msgstr "" @@ -6562,37 +6682,45 @@ msgstr "" msgid "Delete build output" msgstr "" -#: templates/js/build.js:243 templates/stock_table.html:20 +#: templates/js/build.js:184 +msgid "No build order allocations found" +msgstr "" + +#: templates/js/build.js:222 templates/js/order.js:382 +msgid "Location not specified" +msgstr "" + +#: templates/js/build.js:325 templates/stock_table.html:20 msgid "New Stock Item" msgstr "" -#: templates/js/build.js:559 +#: templates/js/build.js:644 msgid "Required Part" msgstr "" -#: templates/js/build.js:580 +#: templates/js/build.js:665 msgid "Quantity Per" msgstr "" -#: templates/js/build.js:648 templates/js/build.js:1066 +#: templates/js/build.js:735 templates/js/build.js:1153 #: templates/stock_table.html:59 msgid "Order stock" msgstr "" -#: templates/js/build.js:701 +#: templates/js/build.js:788 msgid "No builds matching query" msgstr "" -#: templates/js/build.js:718 templates/js/part.js:390 templates/js/part.js:634 -#: templates/js/stock.js:509 templates/js/stock.js:941 +#: templates/js/build.js:805 templates/js/part.js:390 templates/js/part.js:635 +#: templates/js/stock.js:514 templates/js/stock.js:966 msgid "Select" msgstr "" -#: templates/js/build.js:738 +#: templates/js/build.js:825 msgid "Build order is overdue" msgstr "" -#: templates/js/build.js:837 +#: templates/js/build.js:924 msgid "No parts allocated for" msgstr "" @@ -6612,17 +6740,29 @@ msgstr "" msgid "No manufacturer parts found" msgstr "" -#: templates/js/company.js:148 templates/js/company.js:246 +#: templates/js/company.js:148 templates/js/company.js:347 #: templates/js/part.js:68 templates/js/part.js:153 msgid "Template part" msgstr "" -#: templates/js/company.js:152 templates/js/company.js:250 +#: templates/js/company.js:152 templates/js/company.js:351 #: templates/js/part.js:72 templates/js/part.js:157 msgid "Assembled part" msgstr "" -#: templates/js/company.js:227 +#: templates/js/company.js:226 +msgid "No parameters found" +msgstr "" + +#: templates/js/company.js:262 +msgid "Edit parameter" +msgstr "" + +#: templates/js/company.js:263 +msgid "Delete parameter" +msgstr "" + +#: templates/js/company.js:328 msgid "No supplier parts found" msgstr "" @@ -6710,76 +6850,76 @@ msgstr "" msgid "Loading Data" msgstr "" -#: templates/js/modals.js:567 templates/js/modals.js:845 +#: templates/js/modals.js:567 templates/js/modals.js:860 #: templates/modals.html:30 templates/modals.html:55 msgid "Submit" msgstr "" -#: templates/js/modals.js:797 +#: templates/js/modals.js:811 msgid "Invalid response from server" msgstr "" -#: templates/js/modals.js:797 +#: templates/js/modals.js:811 msgid "Form data missing from server response" msgstr "" -#: templates/js/modals.js:810 +#: templates/js/modals.js:824 msgid "Error posting form data" msgstr "" -#: templates/js/modals.js:901 +#: templates/js/modals.js:921 msgid "JSON response missing form data" msgstr "" -#: templates/js/modals.js:911 +#: templates/js/modals.js:931 msgid "No Response" msgstr "" -#: templates/js/modals.js:912 +#: templates/js/modals.js:932 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/modals.js:916 +#: templates/js/modals.js:936 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/modals.js:917 +#: templates/js/modals.js:937 msgid "Server returned error code 400" msgstr "" -#: templates/js/modals.js:921 +#: templates/js/modals.js:941 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/modals.js:922 +#: templates/js/modals.js:942 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/modals.js:926 +#: templates/js/modals.js:946 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/modals.js:927 +#: templates/js/modals.js:947 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/modals.js:931 +#: templates/js/modals.js:951 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/modals.js:932 +#: templates/js/modals.js:952 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/modals.js:936 +#: templates/js/modals.js:956 msgid "Error 408: Timeout" msgstr "" -#: templates/js/modals.js:937 +#: templates/js/modals.js:957 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/modals.js:940 +#: templates/js/modals.js:960 msgid "Error requesting form data" msgstr "" @@ -6795,6 +6935,10 @@ msgstr "" msgid "No sales orders found" msgstr "" +#: templates/js/order.js:343 +msgid "No sales order allocations found" +msgstr "" + #: templates/js/part.js:10 msgid "YES" msgstr "" @@ -6823,39 +6967,39 @@ msgstr "" msgid "No variants found" msgstr "" -#: templates/js/part.js:280 templates/js/part.js:518 +#: templates/js/part.js:280 templates/js/part.js:519 msgid "No parts found" msgstr "" -#: templates/js/part.js:457 +#: templates/js/part.js:458 msgid "No category" msgstr "" -#: templates/js/part.js:475 templates/js/table_filters.js:323 +#: templates/js/part.js:476 templates/js/table_filters.js:323 msgid "Low stock" msgstr "" -#: templates/js/part.js:659 templates/js/stock.js:965 +#: templates/js/part.js:660 templates/js/stock.js:990 msgid "Path" msgstr "" -#: templates/js/part.js:702 +#: templates/js/part.js:703 msgid "No test templates matching query" msgstr "" -#: templates/js/part.js:753 templates/js/stock.js:75 +#: templates/js/part.js:754 templates/js/stock.js:75 msgid "Edit test result" msgstr "" -#: templates/js/part.js:754 templates/js/stock.js:76 +#: templates/js/part.js:755 templates/js/stock.js:76 msgid "Delete test result" msgstr "" -#: templates/js/part.js:760 +#: templates/js/part.js:761 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/part.js:805 +#: templates/js/part.js:806 msgid "Single Price Difference" msgstr "" @@ -6953,155 +7097,155 @@ msgstr "" msgid "Test Date" msgstr "" -#: templates/js/stock.js:290 +#: templates/js/stock.js:295 msgid "In production" msgstr "" -#: templates/js/stock.js:294 +#: templates/js/stock.js:299 msgid "Installed in Stock Item" msgstr "" -#: templates/js/stock.js:302 +#: templates/js/stock.js:307 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/stock.js:334 +#: templates/js/stock.js:339 msgid "No stock items matching query" msgstr "" -#: templates/js/stock.js:355 +#: templates/js/stock.js:360 msgid "items" msgstr "" -#: templates/js/stock.js:447 +#: templates/js/stock.js:452 msgid "batches" msgstr "" -#: templates/js/stock.js:474 +#: templates/js/stock.js:479 msgid "locations" msgstr "" -#: templates/js/stock.js:476 +#: templates/js/stock.js:481 msgid "Undefined location" msgstr "" -#: templates/js/stock.js:577 +#: templates/js/stock.js:582 msgid "Stock item is in production" msgstr "" -#: templates/js/stock.js:582 +#: templates/js/stock.js:587 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/stock.js:585 +#: templates/js/stock.js:590 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/stock.js:589 +#: templates/js/stock.js:594 msgid "Stock item has expired" msgstr "" -#: templates/js/stock.js:591 +#: templates/js/stock.js:596 msgid "Stock item will expire soon" msgstr "" -#: templates/js/stock.js:595 +#: templates/js/stock.js:600 msgid "Stock item has been allocated" msgstr "" -#: templates/js/stock.js:599 +#: templates/js/stock.js:604 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/stock.js:607 +#: templates/js/stock.js:611 msgid "Stock item has been rejected" msgstr "" -#: templates/js/stock.js:611 +#: templates/js/stock.js:615 msgid "Stock item is lost" msgstr "" -#: templates/js/stock.js:614 +#: templates/js/stock.js:618 msgid "Stock item is destroyed" msgstr "" -#: templates/js/stock.js:618 templates/js/table_filters.js:143 +#: templates/js/stock.js:622 templates/js/table_filters.js:143 msgid "Depleted" msgstr "" -#: templates/js/stock.js:647 +#: templates/js/stock.js:651 msgid "Stocktake" msgstr "" -#: templates/js/stock.js:828 +#: templates/js/stock.js:853 msgid "Stock Status" msgstr "" -#: templates/js/stock.js:843 +#: templates/js/stock.js:868 msgid "Set Stock Status" msgstr "" -#: templates/js/stock.js:857 +#: templates/js/stock.js:882 msgid "Select Status Code" msgstr "" -#: templates/js/stock.js:858 +#: templates/js/stock.js:883 msgid "Status code must be selected" msgstr "" -#: templates/js/stock.js:997 +#: templates/js/stock.js:1022 msgid "Invalid date" msgstr "" -#: templates/js/stock.js:1044 +#: templates/js/stock.js:1069 msgid "Location no longer exists" msgstr "" -#: templates/js/stock.js:1063 +#: templates/js/stock.js:1088 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/stock.js:1082 +#: templates/js/stock.js:1107 msgid "Customer no longer exists" msgstr "" -#: templates/js/stock.js:1100 +#: templates/js/stock.js:1125 msgid "Stock item no longer exists" msgstr "" -#: templates/js/stock.js:1123 +#: templates/js/stock.js:1148 msgid "Added" msgstr "" -#: templates/js/stock.js:1131 +#: templates/js/stock.js:1156 msgid "Removed" msgstr "" -#: templates/js/stock.js:1163 +#: templates/js/stock.js:1188 msgid "No user information" msgstr "" -#: templates/js/stock.js:1175 +#: templates/js/stock.js:1200 msgid "Edit tracking entry" msgstr "" -#: templates/js/stock.js:1176 +#: templates/js/stock.js:1201 msgid "Delete tracking entry" msgstr "" -#: templates/js/stock.js:1300 +#: templates/js/stock.js:1325 msgid "Create New Location" msgstr "" -#: templates/js/stock.js:1341 +#: templates/js/stock.js:1366 msgid "No installed items" msgstr "" -#: templates/js/stock.js:1364 +#: templates/js/stock.js:1389 msgid "Serial" msgstr "" -#: templates/js/stock.js:1392 +#: templates/js/stock.js:1417 msgid "Uninstall Stock Item" msgstr "" @@ -7267,56 +7411,56 @@ msgstr "" msgid "Purchasable" msgstr "" -#: templates/js/tables.js:321 +#: templates/js/tables.js:323 msgid "Loading data" msgstr "" -#: templates/js/tables.js:324 +#: templates/js/tables.js:326 msgid "rows per page" msgstr "" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "Showing" msgstr "" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "to" msgstr "" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "of" msgstr "" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "rows" msgstr "" -#: templates/js/tables.js:330 templates/search_form.html:6 +#: templates/js/tables.js:332 templates/search_form.html:6 #: templates/search_form.html:8 msgid "Search" msgstr "" -#: templates/js/tables.js:333 +#: templates/js/tables.js:335 msgid "No matching results" msgstr "" -#: templates/js/tables.js:336 +#: templates/js/tables.js:338 msgid "Hide/Show pagination" msgstr "" -#: templates/js/tables.js:339 +#: templates/js/tables.js:341 msgid "Refresh" msgstr "" -#: templates/js/tables.js:342 +#: templates/js/tables.js:344 msgid "Toggle" msgstr "" -#: templates/js/tables.js:345 +#: templates/js/tables.js:347 msgid "Columns" msgstr "" -#: templates/js/tables.js:348 +#: templates/js/tables.js:350 msgid "All" msgstr "" @@ -7560,35 +7704,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:170 +#: users/models.py:174 msgid "Permission set" msgstr "" -#: users/models.py:178 +#: users/models.py:182 msgid "Group" msgstr "" -#: users/models.py:181 +#: users/models.py:185 msgid "View" msgstr "" -#: users/models.py:181 +#: users/models.py:185 msgid "Permission to view items" msgstr "" -#: users/models.py:183 +#: users/models.py:187 msgid "Permission to add items" msgstr "" -#: users/models.py:185 +#: users/models.py:189 msgid "Change" msgstr "" -#: users/models.py:185 +#: users/models.py:189 msgid "Permissions to edit items" msgstr "" -#: users/models.py:187 +#: users/models.py:191 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po index 9b4e347ff7..4bc233a127 100644 --- a/InvenTree/locale/pl/LC_MESSAGES/django.po +++ b/InvenTree/locale/pl/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-06-16 22:40+0000\n" -"PO-Revision-Date: 2021-06-16 22:40\n" +"POT-Creation-Date: 2021-06-24 21:38+0000\n" +"PO-Revision-Date: 2021-06-24 21:40\n" "Last-Translator: \n" "Language-Team: Polish\n" "Language: pl_PL\n" @@ -77,7 +77,7 @@ msgstr "Wybierz kategorię" msgid "Duplicate serial: {n}" msgstr "Powtórzony numer seryjny: {n}" -#: InvenTree/helpers.py:384 order/models.py:247 order/models.py:357 +#: InvenTree/helpers.py:384 order/models.py:248 order/models.py:358 #: stock/views.py:1795 msgid "Invalid quantity provided" msgstr "Podano nieprawidłową ilość" @@ -122,9 +122,9 @@ msgstr "Komentarz" msgid "File comment" msgstr "Komentarz pliku" -#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1999 +#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:2022 #: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/stock.js:1154 +#: templates/js/stock.js:1179 msgid "User" msgstr "Użytkownik" @@ -132,34 +132,35 @@ msgstr "Użytkownik" msgid "upload date" msgstr "data przesłania" -#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102 -#: part/models.py:686 part/models.py:2140 part/templates/part/params.html:27 -#: report/models.py:179 templates/InvenTree/search.html:137 -#: templates/InvenTree/search.html:289 templates/js/part.js:118 -#: templates/js/part.js:641 templates/js/stock.js:947 +#: InvenTree/models.py:107 InvenTree/models.py:108 company/models.py:396 +#: label/models.py:102 part/models.py:671 part/models.py:2163 +#: part/templates/part/params.html:27 report/models.py:180 +#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289 +#: templates/js/company.js:235 templates/js/part.js:118 +#: templates/js/part.js:642 templates/js/stock.js:972 msgid "Name" msgstr "Nazwa" #: InvenTree/models.py:114 build/models.py:135 #: build/templates/build/detail.html:21 company/models.py:339 -#: company/models.py:491 company/templates/company/detail.html:27 +#: company/models.py:532 company/templates/company/detail.html:27 #: company/templates/company/manufacturer_part_base.html:72 #: company/templates/company/supplier_part_base.html:71 #: company/templates/company/supplier_part_detail.html:31 label/models.py:109 -#: order/models.py:103 order/templates/order/purchase_order_detail.html:147 -#: part/models.py:710 part/templates/part/detail.html:54 -#: part/templates/part/set_category.html:14 report/models.py:192 -#: report/models.py:505 report/models.py:544 +#: order/models.py:104 order/templates/order/purchase_order_detail.html:147 +#: part/models.py:695 part/templates/part/detail.html:54 +#: part/templates/part/set_category.html:14 report/models.py:193 +#: report/models.py:530 report/models.py:569 #: report/templates/report/inventree_build_order_base.html:118 #: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224 #: templates/InvenTree/search.html:296 #: templates/InvenTree/settings/header.html:9 templates/js/bom.js:190 -#: templates/js/build.js:746 templates/js/build.js:1014 +#: templates/js/build.js:833 templates/js/build.js:1101 #: templates/js/company.js:56 templates/js/order.js:183 #: templates/js/order.js:280 templates/js/part.js:177 templates/js/part.js:260 -#: templates/js/part.js:437 templates/js/part.js:653 templates/js/part.js:721 -#: templates/js/stock.js:552 templates/js/stock.js:959 -#: templates/js/stock.js:1004 +#: templates/js/part.js:437 templates/js/part.js:654 templates/js/part.js:722 +#: templates/js/stock.js:557 templates/js/stock.js:984 +#: templates/js/stock.js:1029 msgid "Description" msgstr "Opis" @@ -191,15 +192,15 @@ msgstr "Polski" msgid "Turkish" msgstr "Turecki" -#: InvenTree/status.py:93 +#: InvenTree/status.py:94 msgid "Background worker check failed" msgstr "" -#: InvenTree/status.py:97 +#: InvenTree/status.py:98 msgid "Email backend not configured" msgstr "Nie skonfigurowano backendu e-mail" -#: InvenTree/status.py:100 +#: InvenTree/status.py:101 msgid "InvenTree system health checks failed" msgstr "" @@ -372,27 +373,27 @@ msgstr "" msgid "Overage must be an integer value or a percentage" msgstr "" -#: InvenTree/views.py:605 +#: InvenTree/views.py:608 msgid "Delete Item" msgstr "Usuń element" -#: InvenTree/views.py:654 +#: InvenTree/views.py:657 msgid "Check box to confirm item deletion" msgstr "Zaznacz pole aby potwierdzić usunięcie elementu" -#: InvenTree/views.py:669 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:672 templates/InvenTree/settings/user.html:18 msgid "Edit User Information" msgstr "Edytuj informacje użytkownika" -#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:683 templates/InvenTree/settings/user.html:22 msgid "Set Password" msgstr "Ustaw hasło" -#: InvenTree/views.py:699 +#: InvenTree/views.py:702 msgid "Password fields must match" msgstr "Hasła muszą być zgodne" -#: InvenTree/views.py:950 templates/navbar.html:95 +#: InvenTree/views.py:953 templates/navbar.html:95 msgid "System Information" msgstr "Informacja systemowa" @@ -445,11 +446,11 @@ msgid "Order target date" msgstr "" #: build/forms.py:42 build/templates/build/build_base.html:146 -#: build/templates/build/detail.html:121 order/forms.py:109 order/forms.py:144 +#: build/templates/build/detail.html:121 order/forms.py:114 order/forms.py:149 #: order/templates/order/order_base.html:124 #: order/templates/order/sales_order_base.html:119 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/build.js:793 templates/js/order.js:200 +#: templates/js/build.js:880 templates/js/order.js:200 #: templates/js/order.js:298 msgid "Target Date" msgstr "Data docelowa" @@ -462,22 +463,21 @@ msgstr "" #: build/templates/build/allocation_card.html:23 #: build/templates/build/auto_allocate.html:17 #: build/templates/build/build_base.html:133 -#: build/templates/build/detail.html:31 common/models.py:699 -#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77 -#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262 -#: order/forms.py:279 order/models.py:616 order/models.py:817 +#: build/templates/build/detail.html:31 common/models.py:720 +#: company/forms.py:191 company/templates/company/supplier_part_pricing.html:77 +#: order/forms.py:193 order/forms.py:211 order/forms.py:246 order/forms.py:268 +#: order/forms.py:285 order/models.py:617 order/models.py:841 #: order/templates/order/order_wizard/match_parts.html:29 -#: order/templates/order/order_wizard/select_parts.html:32 +#: order/templates/order/order_wizard/select_parts.html:34 #: order/templates/order/purchase_order_detail.html:179 #: order/templates/order/sales_order_detail.html:70 #: order/templates/order/sales_order_detail.html:77 #: order/templates/order/sales_order_detail.html:162 -#: order/templates/order/sales_order_detail.html:230 part/forms.py:342 -#: part/forms.py:372 part/forms.py:388 part/models.py:2270 -#: part/templates/part/allocation.html:19 -#: part/templates/part/allocation.html:53 -#: part/templates/part/order_prices.html:175 -#: part/templates/part/part_pricing.html:13 +#: order/templates/order/sales_order_detail.html:234 part/forms.py:342 +#: part/forms.py:372 part/forms.py:388 part/forms.py:404 part/models.py:2293 +#: part/templates/part/internal_prices.html:98 +#: part/templates/part/order_prices.html:202 +#: part/templates/part/part_pricing.html:16 #: part/templates/part/sale_prices.html:85 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -486,9 +486,10 @@ msgstr "" #: stock/forms.py:175 stock/forms.py:308 #: stock/templates/stock/item_base.html:255 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364 -#: templates/js/bom.js:205 templates/js/build.js:486 templates/js/build.js:1024 -#: templates/js/part.js:795 templates/js/stock.js:1139 -#: templates/js/stock.js:1358 +#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:571 +#: templates/js/build.js:1111 templates/js/order.js:393 +#: templates/js/part.js:796 templates/js/stock.js:1164 +#: templates/js/stock.js:1383 msgid "Quantity" msgstr "Ilość" @@ -500,7 +501,7 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/forms.py:95 order/forms.py:234 stock/forms.py:118 +#: build/forms.py:95 order/forms.py:240 stock/forms.py:118 msgid "Serial Numbers" msgstr "Numer seryjny" @@ -529,12 +530,12 @@ msgid "Mark build as complete" msgstr "Oznacz budowę jako ukończoną" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 -#: order/forms.py:82 stock/forms.py:347 -#: stock/templates/stock/item_base.html:285 +#: stock/forms.py:347 stock/templates/stock/item_base.html:285 #: stock/templates/stock/stock_adjust.html:17 #: templates/InvenTree/search.html:260 templates/js/barcode.js:363 -#: templates/js/barcode.js:531 templates/js/build.js:500 -#: templates/js/stock.js:639 templates/js/stock.js:1031 +#: templates/js/barcode.js:531 templates/js/build.js:218 +#: templates/js/build.js:585 templates/js/order.js:378 +#: templates/js/stock.js:643 templates/js/stock.js:1056 msgid "Location" msgstr "Lokalizacja" @@ -543,13 +544,13 @@ msgid "Location of completed parts" msgstr "Lokalizacja ukończonych części" #: build/forms.py:215 build/templates/build/build_base.html:138 -#: build/templates/build/detail.html:59 order/models.py:468 +#: build/templates/build/detail.html:59 order/models.py:469 #: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:403 templates/InvenTree/search.html:252 -#: templates/js/barcode.js:119 templates/js/build.js:780 +#: stock/templates/stock/item_base.html:408 templates/InvenTree/search.html:252 +#: templates/js/barcode.js:119 templates/js/build.js:867 #: templates/js/order.js:187 templates/js/order.js:285 -#: templates/js/stock.js:626 templates/js/stock.js:1108 -#: templates/js/stock.js:1374 +#: templates/js/stock.js:630 templates/js/stock.js:1133 +#: templates/js/stock.js:1399 msgid "Status" msgstr "Status" @@ -583,16 +584,16 @@ msgstr "" #: build/models.py:66 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:73 -#: part/templates/part/allocation.html:23 #: report/templates/report/inventree_build_order_base.html:106 +#: templates/js/build.js:195 msgid "Build Order" msgstr "Zlecenie Budowy" #: build/models.py:67 build/templates/build/index.html:8 #: build/templates/build/index.html:15 order/templates/order/so_builds.html:12 #: order/templates/order/so_navbar.html:19 -#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:55 -#: part/templates/part/navbar.html:58 templates/InvenTree/index.html:183 +#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:57 +#: part/templates/part/navbar.html:60 templates/InvenTree/index.html:183 #: templates/InvenTree/search.html:185 #: templates/InvenTree/settings/tabs.html:34 users/models.py:43 msgid "Build Orders" @@ -602,12 +603,12 @@ msgstr "Zlecenia budowy" msgid "Build Order Reference" msgstr "Odwołanie do zamówienia wykonania" -#: build/models.py:128 order/models.py:101 order/models.py:618 +#: build/models.py:128 order/models.py:102 order/models.py:619 #: order/templates/order/purchase_order_detail.html:174 -#: order/templates/order/sales_order_detail.html:225 part/models.py:2279 +#: order/templates/order/sales_order_detail.html:229 part/models.py:2302 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197 -#: templates/js/build.js:575 templates/js/build.js:1018 +#: templates/js/build.js:660 templates/js/build.js:1105 msgid "Reference" msgstr "Referencja" @@ -626,27 +627,27 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana" #: build/models.py:153 build/templates/build/auto_allocate.html:16 #: build/templates/build/build_base.html:128 -#: build/templates/build/detail.html:26 company/models.py:622 -#: order/models.py:660 order/models.py:693 -#: order/templates/order/order_wizard/select_parts.html:30 +#: build/templates/build/detail.html:26 company/models.py:663 +#: order/models.py:661 order/models.py:717 +#: order/templates/order/order_wizard/select_parts.html:32 #: order/templates/order/purchase_order_detail.html:132 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:213 part/models.py:321 -#: part/models.py:1967 part/models.py:1979 part/models.py:1997 -#: part/models.py:2072 part/models.py:2168 part/models.py:2254 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29 +#: order/templates/order/sales_order_detail.html:214 part/models.py:321 +#: part/models.py:1975 part/models.py:1987 part/models.py:2002 +#: part/models.py:2020 part/models.py:2095 part/models.py:2191 +#: part/models.py:2277 part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 part/templates/part/related.html:29 #: part/templates/part/set_category.html:13 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 #: templates/InvenTree/search.html:112 templates/InvenTree/search.html:210 #: templates/js/barcode.js:362 templates/js/bom.js:163 -#: templates/js/build.js:466 templates/js/build.js:751 -#: templates/js/build.js:991 templates/js/company.js:140 -#: templates/js/company.js:238 templates/js/part.js:241 -#: templates/js/part.js:404 templates/js/stock.js:521 -#: templates/js/stock.js:1346 +#: templates/js/build.js:551 templates/js/build.js:838 +#: templates/js/build.js:1078 templates/js/company.js:140 +#: templates/js/company.js:339 templates/js/part.js:241 +#: templates/js/part.js:404 templates/js/stock.js:526 +#: templates/js/stock.js:1371 msgid "Part" msgstr "Część" @@ -710,16 +711,16 @@ msgstr "Kod partii" msgid "Batch code for this build output" msgstr "Kod partii dla wyjścia budowy" -#: build/models.py:220 order/models.py:107 part/models.py:882 +#: build/models.py:220 order/models.py:108 part/models.py:867 #: part/templates/part/detail.html:126 templates/js/order.js:293 msgid "Creation Date" msgstr "Data utworzenia" -#: build/models.py:224 order/models.py:474 +#: build/models.py:224 order/models.py:475 msgid "Target completion date" msgstr "Docelowy termin zakończenia" -#: build/models.py:228 order/models.py:220 templates/js/build.js:798 +#: build/models.py:228 order/models.py:221 templates/js/build.js:885 msgid "Completion Date" msgstr "Data zakończenia" @@ -736,9 +737,9 @@ msgid "User who issued this build order" msgstr "Użytkownik, który wydał to zamówienie" #: build/models.py:251 build/templates/build/build_base.html:184 -#: build/templates/build/detail.html:105 order/models.py:121 +#: build/templates/build/detail.html:105 order/models.py:122 #: order/templates/order/order_base.html:138 -#: order/templates/order/sales_order_base.html:140 part/models.py:886 +#: order/templates/order/sales_order_base.html:140 part/models.py:871 #: report/templates/report/inventree_build_order_base.html:159 msgid "Responsible" msgstr "Odpowiedzialny" @@ -757,26 +758,26 @@ msgstr "Użytkownik odpowiedzialny za to zamówienie budowy" msgid "External Link" msgstr "Link Zewnętrzny" -#: build/models.py:258 part/models.py:744 stock/models.py:462 +#: build/models.py:258 part/models.py:729 stock/models.py:462 msgid "Link to external URL" msgstr "Link do zewnętrznego adresu URL" #: build/models.py:262 build/templates/build/navbar.html:53 -#: company/models.py:132 company/models.py:498 +#: company/models.py:132 company/models.py:539 #: company/templates/company/navbar.html:70 -#: company/templates/company/navbar.html:73 order/models.py:125 -#: order/models.py:620 order/templates/order/po_navbar.html:29 -#: order/templates/order/po_navbar.html:32 -#: order/templates/order/purchase_order_detail.html:239 -#: order/templates/order/sales_order_detail.html:278 +#: company/templates/company/navbar.html:73 order/models.py:126 +#: order/models.py:621 order/templates/order/po_navbar.html:38 +#: order/templates/order/po_navbar.html:41 +#: order/templates/order/purchase_order_detail.html:243 +#: order/templates/order/sales_order_detail.html:309 #: order/templates/order/so_navbar.html:33 -#: order/templates/order/so_navbar.html:36 part/models.py:871 -#: part/templates/part/navbar.html:134 +#: order/templates/order/so_navbar.html:36 part/models.py:856 +#: part/templates/part/navbar.html:142 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377 #: stock/models.py:532 stock/models.py:1667 stock/models.py:1769 #: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37 -#: templates/js/bom.js:356 templates/js/stock.js:141 templates/js/stock.js:674 +#: templates/js/bom.js:356 templates/js/stock.js:141 templates/js/stock.js:699 msgid "Notes" msgstr "Uwagi" @@ -809,11 +810,11 @@ msgstr "" msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1188 order/models.py:791 +#: build/models.py:1188 order/models.py:815 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1192 order/models.py:794 +#: build/models.py:1192 order/models.py:818 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -827,7 +828,7 @@ msgid "Selected stock item not found in BOM for part '{p}'" msgstr "" #: build/models.py:1316 stock/templates/stock/item_base.html:317 -#: templates/InvenTree/search.html:183 templates/js/build.js:724 +#: templates/InvenTree/search.html:183 templates/js/build.js:811 #: templates/navbar.html:29 msgid "Build" msgstr "Budowa" @@ -836,15 +837,13 @@ msgstr "Budowa" msgid "Build to allocate parts" msgstr "" -#: build/models.py:1333 part/templates/part/allocation.html:18 -#: part/templates/part/allocation.html:24 -#: part/templates/part/allocation.html:31 -#: part/templates/part/allocation.html:49 -#: stock/templates/stock/item_base.html:8 +#: build/models.py:1333 stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:31 #: stock/templates/stock/item_base.html:339 -#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:841 -#: templates/js/stock.js:1090 +#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:206 +#: templates/js/build.js:211 templates/js/build.js:928 +#: templates/js/order.js:366 templates/js/order.js:371 +#: templates/js/stock.js:1115 msgid "Stock Item" msgstr "Element magazynowy" @@ -880,7 +879,7 @@ msgstr "Przydziel zapasy do budowy" msgid "Auto Allocate" msgstr "Automatyczne przypisywanie" -#: build/templates/build/allocate.html:25 templates/js/build.js:656 +#: build/templates/build/allocate.html:25 templates/js/build.js:743 msgid "Unallocate stock" msgstr "Cofnij przydział zapasów" @@ -917,15 +916,15 @@ msgstr "" #: order/templates/order/sales_order_detail.html:160 #: report/templates/report/inventree_test_report_base.html:75 #: stock/models.py:454 stock/templates/stock/item_base.html:249 -#: templates/js/build.js:484 +#: templates/js/build.js:569 msgid "Serial Number" msgstr "Numer Seryjny" #: build/templates/build/attachments.html:12 #: build/templates/build/navbar.html:43 build/templates/build/navbar.html:46 -#: order/templates/order/po_navbar.html:26 -#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:125 -#: part/templates/part/navbar.html:128 stock/templates/stock/navbar.html:47 +#: order/templates/order/po_navbar.html:35 +#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:133 +#: part/templates/part/navbar.html:136 stock/templates/stock/navbar.html:47 #: stock/templates/stock/navbar.html:50 msgid "Attachments" msgstr "Załączniki" @@ -1037,11 +1036,10 @@ msgid "Progress" msgstr "Postęp" #: build/templates/build/build_base.html:170 -#: build/templates/build/detail.html:84 order/models.py:691 +#: build/templates/build/detail.html:84 order/models.py:715 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:35 #: order/templates/order/sales_order_ship.html:25 -#: part/templates/part/allocation.html:30 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 #: stock/templates/stock/item_base.html:279 templates/js/order.js:245 @@ -1185,7 +1183,10 @@ msgstr "Źródło magazynu" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:46 stock/forms.py:169 stock/forms.py:375 +#: build/templates/build/detail.html:46 order/forms.py:85 order/models.py:678 +#: order/templates/order/purchase_order_detail.html:239 +#: order/templates/order/receive_parts.html:25 stock/forms.py:169 +#: stock/forms.py:375 msgid "Destination" msgstr "Przeznaczenie" @@ -1194,15 +1195,15 @@ msgid "Destination location not specified" msgstr "Nie określono lokalizacji docelowej" #: build/templates/build/detail.html:70 -#: stock/templates/stock/item_base.html:303 templates/js/stock.js:634 -#: templates/js/stock.js:1381 templates/js/table_filters.js:112 +#: stock/templates/stock/item_base.html:303 templates/js/stock.js:638 +#: templates/js/stock.js:1406 templates/js/table_filters.js:112 #: templates/js/table_filters.js:206 msgid "Batch" msgstr "Partia" #: build/templates/build/detail.html:116 #: order/templates/order/order_base.html:111 -#: order/templates/order/sales_order_base.html:113 templates/js/build.js:788 +#: order/templates/order/sales_order_base.html:113 templates/js/build.js:875 msgid "Created" msgstr "Utworzony" @@ -1210,7 +1211,7 @@ msgstr "Utworzony" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:132 templates/js/build.js:766 +#: build/templates/build/detail.html:132 templates/js/build.js:853 msgid "Completed" msgstr "Zakończone" @@ -1248,9 +1249,9 @@ msgstr "Szczegóły zlecenia budowy" #: build/templates/build/navbar.html:15 #: company/templates/company/navbar.html:15 -#: order/templates/order/po_navbar.html:14 -#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15 -#: templates/js/stock.js:1019 +#: order/templates/order/po_navbar.html:15 +#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:17 +#: templates/js/stock.js:1044 msgid "Details" msgstr "Szczegóły" @@ -1285,8 +1286,8 @@ msgstr "Edytuj uwagi" #: build/templates/build/notes.html:26 company/templates/company/notes.html:24 #: order/templates/order/order_notes.html:27 #: order/templates/order/sales_order_notes.html:29 -#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:482 -#: stock/templates/stock/item_base.html:492 +#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:487 +#: stock/templates/stock/item_base.html:497 #: stock/templates/stock/item_notes.html:26 msgid "Save" msgstr "Zapisz" @@ -1411,8 +1412,8 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:585 -#: templates/js/build.js:848 templates/js/build.js:1031 +#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:670 +#: templates/js/build.js:935 templates/js/build.js:1118 msgid "Available" msgstr "Dostępne" @@ -1598,8 +1599,8 @@ msgstr "" msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:153 part/models.py:2170 part/templates/part/detail.html:160 -#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25 +#: common/models.py:153 part/models.py:2193 part/templates/part/detail.html:160 +#: report/models.py:186 stock/forms.py:259 templates/js/table_filters.js:25 #: templates/js/table_filters.js:315 msgid "Template" msgstr "Szablon" @@ -1608,7 +1609,7 @@ msgstr "Szablon" msgid "Parts are templates by default" msgstr "" -#: common/models.py:160 part/models.py:834 part/templates/part/detail.html:170 +#: common/models.py:160 part/models.py:819 part/templates/part/detail.html:170 #: templates/js/table_filters.js:128 templates/js/table_filters.js:327 msgid "Assembly" msgstr "Złożenie" @@ -1617,7 +1618,7 @@ msgstr "Złożenie" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:167 part/models.py:840 part/templates/part/detail.html:180 +#: common/models.py:167 part/models.py:825 part/templates/part/detail.html:180 #: templates/js/table_filters.js:331 msgid "Component" msgstr "Komponent" @@ -1626,7 +1627,7 @@ msgstr "Komponent" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:174 part/models.py:851 part/templates/part/detail.html:200 +#: common/models.py:174 part/models.py:836 part/templates/part/detail.html:200 msgid "Purchaseable" msgstr "Możliwość zakupu" @@ -1634,7 +1635,7 @@ msgstr "Możliwość zakupu" msgid "Parts are purchaseable by default" msgstr "Części są domyślnie z możliwością zakupu" -#: common/models.py:181 part/models.py:856 part/templates/part/detail.html:210 +#: common/models.py:181 part/models.py:841 part/templates/part/detail.html:210 #: templates/js/table_filters.js:339 msgid "Salable" msgstr "Możliwość sprzedaży" @@ -1643,7 +1644,7 @@ msgstr "Możliwość sprzedaży" msgid "Parts are salable by default" msgstr "Części są domyślnie z możliwością sprzedaży" -#: common/models.py:188 part/models.py:846 part/templates/part/detail.html:190 +#: common/models.py:188 part/models.py:831 part/templates/part/detail.html:190 #: templates/js/table_filters.js:33 templates/js/table_filters.js:343 msgid "Trackable" msgstr "Możliwość śledzenia" @@ -1652,7 +1653,7 @@ msgstr "Możliwość śledzenia" msgid "Parts are trackable by default" msgstr "Części są domyślnie z możliwością śledzenia" -#: common/models.py:195 part/models.py:866 part/templates/part/detail.html:150 +#: common/models.py:195 part/models.py:851 part/templates/part/detail.html:150 #: templates/js/table_filters.js:29 msgid "Virtual" msgstr "Wirtualny" @@ -1669,160 +1670,185 @@ msgstr "" msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:209 templates/stats.html:25 -msgid "Debug Mode" -msgstr "Tryb Debugowania" +#: common/models.py:209 +msgid "Show Price in Forms" +msgstr "" #: common/models.py:210 -msgid "Generate reports in debug mode (HTML output)" +msgid "Display part price in some forms" msgstr "" #: common/models.py:216 +msgid "Internal Prices" +msgstr "" + +#: common/models.py:217 +msgid "Enable internal prices for parts" +msgstr "" + +#: common/models.py:223 +msgid "Internal Price as BOM-Price" +msgstr "" + +#: common/models.py:224 +msgid "Use the internal price (if set) in BOM-price calculations" +msgstr "" + +#: common/models.py:230 templates/stats.html:25 +msgid "Debug Mode" +msgstr "Tryb Debugowania" + +#: common/models.py:231 +msgid "Generate reports in debug mode (HTML output)" +msgstr "" + +#: common/models.py:237 msgid "Page Size" msgstr "Rozmiar strony" -#: common/models.py:217 +#: common/models.py:238 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:227 +#: common/models.py:248 msgid "Test Reports" msgstr "Raporty testów" -#: common/models.py:228 +#: common/models.py:249 msgid "Enable generation of test reports" msgstr "Włącz generowanie raportów testów" -#: common/models.py:234 +#: common/models.py:255 msgid "Stock Expiry" msgstr "" -#: common/models.py:235 +#: common/models.py:256 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:241 +#: common/models.py:262 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:242 +#: common/models.py:263 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:248 +#: common/models.py:269 msgid "Stock Stale Time" msgstr "" -#: common/models.py:249 +#: common/models.py:270 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:251 part/templates/part/detail.html:121 +#: common/models.py:272 part/templates/part/detail.html:121 msgid "days" msgstr "dni" -#: common/models.py:256 +#: common/models.py:277 msgid "Build Expired Stock" msgstr "" -#: common/models.py:257 +#: common/models.py:278 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:263 +#: common/models.py:284 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:264 +#: common/models.py:285 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:270 +#: common/models.py:291 msgid "Group by Part" msgstr "Grupuj według komponentu" -#: common/models.py:271 +#: common/models.py:292 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:277 +#: common/models.py:298 msgid "Recent Stock Count" msgstr "" -#: common/models.py:278 +#: common/models.py:299 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:284 +#: common/models.py:305 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:285 +#: common/models.py:306 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:290 +#: common/models.py:311 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:291 +#: common/models.py:312 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:295 +#: common/models.py:316 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:296 +#: common/models.py:317 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:301 +#: common/models.py:322 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:302 +#: common/models.py:323 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:525 +#: common/models.py:546 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:527 +#: common/models.py:548 msgid "Settings value" msgstr "Ustawienia wartości" -#: common/models.py:562 +#: common/models.py:583 msgid "Must be an integer value" msgstr "" -#: common/models.py:585 +#: common/models.py:606 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:596 +#: common/models.py:617 msgid "Value must be an integer value" msgstr "" -#: common/models.py:619 +#: common/models.py:640 msgid "Key string must be unique" msgstr "" -#: common/models.py:700 company/forms.py:177 +#: common/models.py:721 company/forms.py:192 msgid "Price break quantity" msgstr "" -#: common/models.py:708 company/templates/company/supplier_part_pricing.html:82 +#: common/models.py:729 company/templates/company/supplier_part_pricing.html:82 +#: part/templates/part/internal_prices.html:103 #: part/templates/part/sale_prices.html:90 templates/js/bom.js:271 msgid "Price" msgstr "Cena" -#: common/models.py:709 +#: common/models.py:730 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:798 +#: common/models.py:822 msgid "Default" msgstr "Domyślny" @@ -1843,9 +1869,11 @@ msgid "Supplied value must be a boolean" msgstr "" #: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42 -#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27 +#: order/templates/order/po_navbar.html:19 +#: order/templates/order/po_navbar.html:22 order/views.py:582 +#: part/templates/part/bom_upload/upload_file.html:27 msgid "Upload File" -msgstr "Wyślik plik" +msgstr "Wyślij plik" #: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:583 part/templates/part/bom_upload/select_fields.html:58 @@ -1877,29 +1905,29 @@ msgstr "URL" msgid "Image URL" msgstr "URL zdjęcia" -#: company/forms.py:118 templates/js/part.js:786 +#: company/forms.py:133 templates/js/part.js:787 msgid "Single Price" msgstr "Cena jednostkowa" -#: company/forms.py:120 +#: company/forms.py:135 msgid "Single quantity price" msgstr "Cena jednostkowa" -#: company/forms.py:128 company/models.py:321 +#: company/forms.py:143 company/models.py:321 msgid "Select manufacturer" msgstr "Wybierz producenta" -#: company/forms.py:134 company/models.py:328 +#: company/forms.py:149 company/models.py:328 msgid "Manufacturer Part Number" msgstr "Numer producenta" -#: company/forms.py:136 company/models.py:327 +#: company/forms.py:151 company/models.py:327 #: company/templates/company/manufacturer_part_base.html:89 #: company/templates/company/manufacturer_part_detail.html:26 #: company/templates/company/supplier_part_base.html:102 #: company/templates/company/supplier_part_detail.html:35 #: order/templates/order/purchase_order_detail.html:162 part/bom.py:171 -#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307 +#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:408 msgid "MPN" msgstr "MPN" @@ -1952,11 +1980,11 @@ msgstr "Kontakt" msgid "Point of contact" msgstr "Punkt kontaktowy" -#: company/models.py:121 company/models.py:333 company/models.py:485 -#: order/models.py:105 part/models.py:743 +#: company/models.py:121 company/models.py:333 company/models.py:526 +#: order/models.py:106 part/models.py:728 #: report/templates/report/inventree_build_order_base.html:165 -#: templates/js/company.js:188 templates/js/company.js:318 -#: templates/js/part.js:497 +#: templates/js/company.js:188 templates/js/company.js:419 +#: templates/js/part.js:498 msgid "Link" msgstr "Łącze" @@ -1964,7 +1992,7 @@ msgstr "Łącze" msgid "Link to external company information" msgstr "Link do informacji o zewnętrznym przedsiębiorstwie" -#: company/models.py:129 part/models.py:753 +#: company/models.py:129 part/models.py:738 msgid "Image" msgstr "Obraz" @@ -1992,12 +2020,12 @@ msgstr "jest producentem" msgid "Does this company manufacture parts?" msgstr "Czy to przedsiębiorstwo produkuje części?" -#: company/models.py:305 company/models.py:456 stock/models.py:407 +#: company/models.py:305 company/models.py:497 stock/models.py:407 #: stock/templates/stock/item_base.html:235 msgid "Base Part" msgstr "Część bazowa" -#: company/models.py:309 company/models.py:460 order/views.py:1587 +#: company/models.py:309 company/models.py:501 order/views.py:1597 msgid "Select part" msgstr "Wybierz część" @@ -2008,7 +2036,7 @@ msgstr "Wybierz część" #: company/templates/company/supplier_part_detail.html:34 part/bom.py:170 #: part/bom.py:241 stock/templates/stock/item_base.html:352 #: templates/js/company.js:44 templates/js/company.js:165 -#: templates/js/company.js:289 +#: templates/js/company.js:390 msgid "Manufacturer" msgstr "Producent" @@ -2020,87 +2048,112 @@ msgstr "" msgid "Manufacturer part description" msgstr "" -#: company/models.py:466 company/templates/company/detail.html:62 +#: company/models.py:390 company/models.py:520 +#: company/templates/company/manufacturer_part_base.html:6 +#: company/templates/company/manufacturer_part_base.html:19 +#: stock/templates/stock/item_base.html:362 +msgid "Manufacturer Part" +msgstr "Część producenta" + +#: company/models.py:397 +msgid "Parameter name" +msgstr "" + +#: company/models.py:403 part/templates/part/params.html:28 +#: report/templates/report/inventree_test_report_base.html:90 +#: stock/models.py:1756 templates/InvenTree/settings/header.html:8 +#: templates/js/company.js:241 templates/js/stock.js:137 +msgid "Value" +msgstr "" + +#: company/models.py:404 +msgid "Parameter value" +msgstr "" + +#: company/models.py:410 part/models.py:813 part/models.py:2165 +#: part/templates/part/detail.html:106 part/templates/part/params.html:29 +#: templates/js/company.js:247 +msgid "Units" +msgstr "Jednostki" + +#: company/models.py:411 +msgid "Parameter units" +msgstr "" + +#: company/models.py:507 company/templates/company/detail.html:62 #: company/templates/company/supplier_part_base.html:84 -#: company/templates/company/supplier_part_detail.html:25 order/models.py:192 +#: company/templates/company/supplier_part_detail.html:25 order/models.py:193 #: order/templates/order/order_base.html:92 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175 -#: part/bom.py:286 stock/templates/stock/item_base.html:364 -#: templates/js/company.js:48 templates/js/company.js:263 +#: part/bom.py:286 stock/templates/stock/item_base.html:369 +#: templates/js/company.js:48 templates/js/company.js:364 #: templates/js/order.js:170 msgid "Supplier" msgstr "Dostawca" -#: company/models.py:467 +#: company/models.py:508 msgid "Select supplier" msgstr "Wybierz dostawcę" -#: company/models.py:472 company/templates/company/supplier_part_base.html:88 +#: company/models.py:513 company/templates/company/supplier_part_base.html:88 #: company/templates/company/supplier_part_detail.html:26 #: order/templates/order/purchase_order_detail.html:153 part/bom.py:176 #: part/bom.py:287 msgid "SKU" msgstr "SKU" -#: company/models.py:473 +#: company/models.py:514 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:479 -#: company/templates/company/manufacturer_part_base.html:6 -#: company/templates/company/manufacturer_part_base.html:19 -#: stock/templates/stock/item_base.html:357 -msgid "Manufacturer Part" -msgstr "Część producenta" - -#: company/models.py:480 +#: company/models.py:521 msgid "Select manufacturer part" msgstr "" -#: company/models.py:486 +#: company/models.py:527 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:492 +#: company/models.py:533 msgid "Supplier part description" msgstr "" -#: company/models.py:497 company/templates/company/supplier_part_base.html:116 -#: company/templates/company/supplier_part_detail.html:38 part/models.py:2282 +#: company/models.py:538 company/templates/company/supplier_part_base.html:116 +#: company/templates/company/supplier_part_detail.html:38 part/models.py:2305 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "Uwaga" -#: company/models.py:501 part/models.py:1614 +#: company/models.py:542 part/models.py:1606 msgid "base cost" msgstr "koszt podstawowy" -#: company/models.py:501 part/models.py:1614 +#: company/models.py:542 part/models.py:1606 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:503 company/templates/company/supplier_part_base.html:109 +#: company/models.py:544 company/templates/company/supplier_part_base.html:109 #: stock/models.py:431 stock/templates/stock/item_base.html:310 -#: templates/js/stock.js:670 +#: templates/js/stock.js:695 msgid "Packaging" msgstr "Opakowanie" -#: company/models.py:503 +#: company/models.py:544 msgid "Part packaging" msgstr "Opakowanie części" -#: company/models.py:505 part/models.py:1616 +#: company/models.py:546 part/models.py:1608 msgid "multiple" msgstr "wielokrotność" -#: company/models.py:505 +#: company/models.py:546 msgid "Order multiple" msgstr "" #: company/templates/company/assigned_stock.html:10 #: company/templates/company/navbar.html:62 -#: company/templates/company/navbar.html:65 templates/js/build.js:477 +#: company/templates/company/navbar.html:65 templates/js/build.js:562 msgid "Assigned Stock" msgstr "" @@ -2165,11 +2218,11 @@ msgstr "Nie określono strony internetowej" msgid "Uses default currency" msgstr "" -#: company/templates/company/detail.html:67 order/models.py:463 +#: company/templates/company/detail.html:67 order/models.py:464 #: order/templates/order/sales_order_base.html:94 stock/models.py:449 #: stock/models.py:450 stock/templates/stock/item_base.html:262 #: templates/js/company.js:40 templates/js/order.js:267 -#: templates/js/stock.js:1072 +#: templates/js/stock.js:1097 msgid "Customer" msgstr "Klient" @@ -2215,7 +2268,7 @@ msgstr "Usuń części" #: company/templates/company/detail_manufacturer_part.html:66 #: company/templates/company/detail_supplier_part.html:66 #: part/templates/part/bom.html:159 part/templates/part/category.html:118 -#: templates/js/stock.js:1287 +#: templates/js/stock.js:1312 msgid "New Part" msgstr "Nowy komponent" @@ -2248,13 +2301,12 @@ msgstr "Eksportuj" #: company/templates/company/detail_supplier_part.html:11 #: company/templates/company/manufacturer_part_navbar.html:11 -#: company/templates/company/manufacturer_part_suppliers.html:10 #: templates/InvenTree/search.html:164 msgid "Supplier Parts" msgstr "Komponenty dostawcy" #: company/templates/company/detail_supplier_part.html:21 -#: order/templates/order/order_wizard/select_parts.html:42 +#: order/templates/order/order_wizard/select_parts.html:44 #: order/templates/order/purchase_order_detail.html:50 msgid "Create new supplier part" msgstr "Utwórz nowego dostawcę części" @@ -2262,12 +2314,12 @@ msgstr "Utwórz nowego dostawcę części" #: company/templates/company/detail_supplier_part.html:22 #: company/templates/company/manufacturer_part_suppliers.html:17 #: order/templates/order/purchase_order_detail.html:49 -#: part/templates/part/supplier.html:17 templates/js/stock.js:1293 +#: part/templates/part/supplier.html:17 templates/js/stock.js:1318 msgid "New Supplier Part" msgstr "Now dostawca części" #: company/templates/company/detail_supplier_part.html:72 -#: company/templates/company/manufacturer_part_suppliers.html:47 +#: company/templates/company/manufacturer_part_suppliers.html:82 #: company/views.py:64 order/templates/order/purchase_orders.html:185 #: part/templates/part/supplier.html:50 msgid "New Supplier" @@ -2319,8 +2371,9 @@ msgid "There are %(count)s suppliers defined for this manufacturer part. If you msgstr "" #: company/templates/company/manufacturer_part_navbar.html:14 -#: company/views.py:63 part/templates/part/navbar.html:84 -#: part/templates/part/navbar.html:87 templates/InvenTree/search.html:316 +#: company/templates/company/manufacturer_part_suppliers.html:10 +#: company/views.py:63 part/templates/part/navbar.html:86 +#: part/templates/part/navbar.html:89 templates/InvenTree/search.html:316 #: templates/navbar.html:35 msgid "Suppliers" msgstr "Dostawcy" @@ -2332,13 +2385,13 @@ msgstr "" #: company/templates/company/manufacturer_part_navbar.html:22 #: company/templates/company/navbar.html:41 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:36 stock/api.py:54 +#: part/templates/part/navbar.html:38 stock/api.py:54 #: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196 #: templates/InvenTree/search.html:232 #: templates/InvenTree/settings/tabs.html:31 templates/js/part.js:181 -#: templates/js/part.js:305 templates/js/part.js:464 templates/js/stock.js:561 +#: templates/js/part.js:305 templates/js/part.js:465 templates/js/stock.js:566 #: templates/navbar.html:26 msgid "Stock" msgstr "Stan" @@ -2360,11 +2413,25 @@ msgstr "" #: company/templates/company/manufacturer_part_suppliers.html:22 #: part/templates/part/manufacturer.html:24 part/templates/part/params.html:44 #: part/templates/part/related.html:44 part/templates/part/supplier.html:22 -#: stock/views.py:1002 users/models.py:187 +#: stock/views.py:1002 users/models.py:191 msgid "Delete" msgstr "Usuń" -#: company/templates/company/manufacturer_part_suppliers.html:48 +#: company/templates/company/manufacturer_part_suppliers.html:37 +#: part/templates/part/category_navbar.html:34 +#: part/templates/part/category_navbar.html:37 +#: part/templates/part/navbar.html:24 +msgid "Parameters" +msgstr "Parametry" + +#: company/templates/company/manufacturer_part_suppliers.html:43 +#: part/templates/part/params.html:18 +#: templates/InvenTree/settings/category.html:29 +#: templates/InvenTree/settings/part.html:48 +msgid "New Parameter" +msgstr "" + +#: company/templates/company/manufacturer_part_suppliers.html:83 #: part/templates/part/supplier.html:51 msgid "Create new supplier" msgstr "Utwórz nowego dostawcę" @@ -2379,13 +2446,13 @@ msgstr "" msgid "Supplied Parts" msgstr "Dostarczone części" -#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:33 +#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:35 #: stock/templates/stock/location.html:107 #: stock/templates/stock/location.html:122 #: stock/templates/stock/location.html:136 #: stock/templates/stock/location_navbar.html:22 #: stock/templates/stock/location_navbar.html:29 -#: templates/InvenTree/search.html:198 templates/js/stock.js:971 +#: templates/InvenTree/search.html:198 templates/js/stock.js:996 #: templates/stats.html:93 templates/stats.html:102 users/models.py:42 msgid "Stock Items" msgstr "" @@ -2396,7 +2463,7 @@ msgstr "" #: company/templates/company/sales_orders.html:11 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:13 -#: part/templates/part/navbar.html:104 part/templates/part/navbar.html:107 +#: part/templates/part/navbar.html:112 part/templates/part/navbar.html:115 #: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228 #: templates/InvenTree/search.html:345 #: templates/InvenTree/settings/tabs.html:40 templates/navbar.html:46 @@ -2408,7 +2475,7 @@ msgstr "" #: company/templates/company/purchase_orders.html:10 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:13 -#: part/templates/part/navbar.html:90 part/templates/part/navbar.html:93 +#: part/templates/part/navbar.html:92 part/templates/part/navbar.html:95 #: part/templates/part/orders.html:10 templates/InvenTree/index.html:205 #: templates/InvenTree/search.html:325 #: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:37 @@ -2442,7 +2509,7 @@ msgstr "" #: company/templates/company/supplier_part_base.html:7 #: company/templates/company/supplier_part_base.html:20 stock/models.py:416 -#: stock/templates/stock/item_base.html:369 templates/js/company.js:279 +#: stock/templates/stock/item_base.html:374 templates/js/company.js:380 msgid "Supplier Part" msgstr "" @@ -2490,8 +2557,8 @@ msgstr "" msgid "Pricing Information" msgstr "Informacja cenowa" -#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794 -#: part/templates/part/sale_prices.html:17 part/views.py:2733 +#: company/templates/company/supplier_part_pricing.html:19 company/views.py:855 +#: part/templates/part/sale_prices.html:17 part/views.py:2751 msgid "Add Price Break" msgstr "" @@ -2510,8 +2577,8 @@ msgstr "Edytuj przedział cenowy" msgid "Delete price break" msgstr "" -#: company/views.py:70 part/templates/part/navbar.html:78 -#: part/templates/part/navbar.html:81 templates/InvenTree/search.html:306 +#: company/views.py:70 part/templates/part/navbar.html:80 +#: part/templates/part/navbar.html:83 templates/InvenTree/search.html:306 #: templates/navbar.html:36 msgid "Manufacturers" msgstr "Producenci" @@ -2533,20 +2600,20 @@ msgstr "Firmy" msgid "New Company" msgstr "Nowa firma" -#: company/views.py:169 part/views.py:937 +#: company/views.py:169 part/views.py:948 msgid "Download Image" msgstr "Pobierz obraz" -#: company/views.py:198 part/views.py:969 +#: company/views.py:198 part/views.py:980 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:205 part/views.py:976 +#: company/views.py:205 part/views.py:987 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:214 part/views.py:985 +#: company/views.py:214 part/views.py:996 msgid "Supplied URL is not a valid image file" msgstr "" @@ -2594,27 +2661,35 @@ msgstr "" msgid "Delete Manufacturer Part" msgstr "" -#: company/views.py:528 +#: company/views.py:514 +msgid "Add Manufacturer Part Parameter" +msgstr "" + +#: company/views.py:548 +msgid "Edit Manufacturer Part Parameter" +msgstr "" + +#: company/views.py:588 msgid "Edit Supplier Part" msgstr "" -#: company/views.py:578 templates/js/stock.js:1294 +#: company/views.py:639 templates/js/stock.js:1319 msgid "Create new Supplier Part" msgstr "" -#: company/views.py:722 +#: company/views.py:783 msgid "Delete Supplier Part" msgstr "" -#: company/views.py:799 part/views.py:2737 +#: company/views.py:860 part/views.py:2755 msgid "Added new price break" msgstr "" -#: company/views.py:855 part/views.py:2781 +#: company/views.py:916 part/views.py:2799 msgid "Edit Price Break" msgstr "Edytuj przedział cenowy" -#: company/views.py:870 part/views.py:2795 +#: company/views.py:931 part/views.py:2813 msgid "Delete Price Break" msgstr "" @@ -2638,7 +2713,7 @@ msgstr "Etykieta" msgid "Label template file" msgstr "" -#: label/models.py:124 report/models.py:274 +#: label/models.py:124 report/models.py:297 msgid "Enabled" msgstr "Aktywne" @@ -2662,7 +2737,7 @@ msgstr "Wysokość [mm]" msgid "Label height, specified in mm" msgstr "" -#: label/models.py:144 +#: label/models.py:144 report/models.py:290 msgid "Filename Pattern" msgstr "" @@ -2674,8 +2749,8 @@ msgstr "" msgid "Query filters (comma-separated list of key=value pairs" msgstr "" -#: label/models.py:245 label/models.py:298 report/models.py:294 -#: report/models.py:415 report/models.py:449 +#: label/models.py:245 label/models.py:298 report/models.py:317 +#: report/models.py:440 report/models.py:474 msgid "Filters" msgstr "Filtry" @@ -2696,237 +2771,239 @@ msgstr "Anuluj zamówienie" msgid "Ship order" msgstr "Wyślij zamówienie" -#: order/forms.py:82 +#: order/forms.py:86 msgid "Receive parts to this location" msgstr "" -#: order/forms.py:103 +#: order/forms.py:108 msgid "Purchase Order reference" msgstr "" -#: order/forms.py:110 +#: order/forms.py:115 msgid "Target date for order delivery. Order will be overdue after this date." msgstr "" -#: order/forms.py:138 +#: order/forms.py:143 msgid "Enter sales order number" msgstr "" -#: order/forms.py:145 order/models.py:475 +#: order/forms.py:150 order/models.py:476 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/forms.py:236 +#: order/forms.py:242 msgid "Enter stock item serial numbers" msgstr "" -#: order/forms.py:242 +#: order/forms.py:248 msgid "Enter quantity of stock items" msgstr "Wprowadź ilość produktów magazynowych" -#: order/models.py:101 +#: order/models.py:102 msgid "Order reference" msgstr "Odniesienie zamówienia" -#: order/models.py:103 +#: order/models.py:104 msgid "Order description" msgstr "Opis Zamówienia" -#: order/models.py:105 +#: order/models.py:106 msgid "Link to external page" msgstr "Link do zewnętrznej witryny" -#: order/models.py:113 part/templates/part/detail.html:132 +#: order/models.py:114 part/templates/part/detail.html:132 msgid "Created By" msgstr "Utworzony przez" -#: order/models.py:120 +#: order/models.py:121 msgid "User or group responsible for this order" msgstr "Użytkownik lub grupa odpowiedzialna za to zamówienie" -#: order/models.py:125 +#: order/models.py:126 msgid "Order notes" msgstr "Notatki do zamówienia" -#: order/models.py:184 order/models.py:468 +#: order/models.py:185 order/models.py:469 msgid "Purchase order status" msgstr "" -#: order/models.py:193 +#: order/models.py:194 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:196 order/templates/order/order_base.html:98 +#: order/models.py:197 order/templates/order/order_base.html:98 #: templates/js/order.js:179 msgid "Supplier Reference" msgstr "" -#: order/models.py:196 +#: order/models.py:197 msgid "Supplier order reference code" msgstr "" -#: order/models.py:203 +#: order/models.py:204 msgid "received by" msgstr "odebrane przez" -#: order/models.py:208 +#: order/models.py:209 msgid "Issue Date" msgstr "Data wydania" -#: order/models.py:209 +#: order/models.py:210 msgid "Date order was issued" msgstr "" -#: order/models.py:214 +#: order/models.py:215 msgid "Target Delivery Date" msgstr "" -#: order/models.py:215 +#: order/models.py:216 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:221 +#: order/models.py:222 msgid "Date order was completed" msgstr "" -#: order/models.py:245 part/views.py:1675 stock/models.py:304 +#: order/models.py:246 part/views.py:1686 stock/models.py:304 #: stock/models.py:1020 msgid "Quantity must be greater than zero" msgstr "" -#: order/models.py:250 +#: order/models.py:251 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:348 +#: order/models.py:349 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:352 +#: order/models.py:353 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:354 +#: order/models.py:355 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:464 +#: order/models.py:465 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:470 +#: order/models.py:471 msgid "Customer Reference " msgstr "" -#: order/models.py:470 +#: order/models.py:471 msgid "Customer order reference code" msgstr "" -#: order/models.py:478 templates/js/order.js:303 +#: order/models.py:479 templates/js/order.js:303 msgid "Shipment Date" msgstr "Data wysyłki" -#: order/models.py:485 +#: order/models.py:486 msgid "shipped by" msgstr "wysłane przez" -#: order/models.py:529 +#: order/models.py:530 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:616 +#: order/models.py:617 msgid "Item quantity" msgstr "Ilość elementów" -#: order/models.py:618 +#: order/models.py:619 msgid "Line item reference" msgstr "" -#: order/models.py:620 +#: order/models.py:621 msgid "Line item notes" msgstr "" -#: order/models.py:646 order/models.py:691 -#: part/templates/part/allocation.html:17 -#: part/templates/part/allocation.html:45 +#: order/models.py:647 order/models.py:715 templates/js/order.js:353 msgid "Order" msgstr "Zamówienie" -#: order/models.py:647 order/templates/order/order_base.html:9 +#: order/models.py:648 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:324 templates/js/order.js:148 -#: templates/js/stock.js:1053 +#: templates/js/stock.js:669 templates/js/stock.js:1078 msgid "Purchase Order" msgstr "" -#: order/models.py:661 +#: order/models.py:662 msgid "Supplier part" msgstr "" -#: order/models.py:664 order/templates/order/order_base.html:131 +#: order/models.py:665 order/templates/order/order_base.html:131 #: order/templates/order/purchase_order_detail.html:219 #: order/templates/order/receive_parts.html:22 #: order/templates/order/sales_order_base.html:133 msgid "Received" msgstr "Odebrane" -#: order/models.py:664 +#: order/models.py:665 msgid "Number of items received" msgstr "" -#: order/models.py:671 stock/models.py:542 -#: stock/templates/stock/item_base.html:331 templates/js/stock.js:665 +#: order/models.py:672 stock/models.py:542 +#: stock/templates/stock/item_base.html:331 templates/js/stock.js:690 msgid "Purchase Price" msgstr "Cena zakupu" -#: order/models.py:672 +#: order/models.py:673 msgid "Unit purchase price" msgstr "Cena zakupu jednostkowego" -#: order/models.py:700 part/templates/part/navbar.html:101 -#: part/templates/part/order_prices.html:82 -#: part/templates/part/part_pricing.html:78 +#: order/models.py:681 +msgid "Where does the Purchaser want this item to be stored?" +msgstr "" + +#: order/models.py:724 part/templates/part/navbar.html:109 +#: part/templates/part/order_prices.html:107 +#: part/templates/part/part_pricing.html:97 msgid "Sale Price" msgstr "Cena sprzedaży" -#: order/models.py:701 +#: order/models.py:725 msgid "Unit sale price" msgstr "Jednostkowa cena sprzedaży" -#: order/models.py:776 order/models.py:778 +#: order/models.py:800 order/models.py:802 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:782 +#: order/models.py:806 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:784 +#: order/models.py:808 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:787 +#: order/models.py:811 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:797 +#: order/models.py:821 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:802 +#: order/models.py:826 msgid "Line" msgstr "Linia" -#: order/models.py:813 +#: order/models.py:837 msgid "Item" msgstr "Komponent" -#: order/models.py:814 +#: order/models.py:838 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:817 +#: order/models.py:841 msgid "Enter stock allocation quantity" msgstr "" @@ -2955,7 +3032,7 @@ msgid "Export order to file" msgstr "" #: order/templates/order/order_base.html:72 -#: order/templates/order/po_navbar.html:11 +#: order/templates/order/po_navbar.html:12 msgid "Purchase Order Details" msgstr "" @@ -2977,8 +3054,8 @@ msgstr "Wydany" #: order/templates/order/order_base.html:180 #: order/templates/order/purchase_order_detail.html:100 #: part/templates/part/category.html:208 part/templates/part/category.html:250 -#: stock/templates/stock/location.html:191 templates/js/stock.js:711 -#: templates/js/stock.js:1299 +#: stock/templates/stock/location.html:191 templates/js/stock.js:736 +#: templates/js/stock.js:1324 msgid "New Location" msgstr "Nowa lokalizacja" @@ -3081,28 +3158,32 @@ msgstr "" msgid "Order is already processed. Files cannot be uploaded." msgstr "" -#: order/templates/order/order_wizard/select_parts.html:9 +#: order/templates/order/order_wizard/select_parts.html:11 msgid "Step 1 of 2 - Select Part Suppliers" msgstr "" -#: order/templates/order/order_wizard/select_parts.html:14 +#: order/templates/order/order_wizard/select_parts.html:16 msgid "Select suppliers" msgstr "" -#: order/templates/order/order_wizard/select_parts.html:18 +#: order/templates/order/order_wizard/select_parts.html:20 msgid "No purchaseable parts selected" msgstr "" -#: order/templates/order/order_wizard/select_parts.html:31 +#: order/templates/order/order_wizard/select_parts.html:33 msgid "Select Supplier" msgstr "Wybierz dostawcę" #: order/templates/order/order_wizard/select_parts.html:57 +msgid "No price" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:65 #, python-format msgid "Select a supplier for %(name)s" msgstr "" -#: order/templates/order/order_wizard/select_parts.html:69 +#: order/templates/order/order_wizard/select_parts.html:77 #: part/templates/part/set_category.html:32 msgid "Remove part" msgstr "Usuń część" @@ -3135,15 +3216,20 @@ msgid "Select a purchase order for %(name)s" msgstr "" #: order/templates/order/po_attachments.html:12 -#: order/templates/order/po_navbar.html:23 +#: order/templates/order/po_navbar.html:32 msgid "Purchase Order Attachments" msgstr "" -#: order/templates/order/po_navbar.html:17 +#: order/templates/order/po_lineitem_delete.html:5 +#: order/templates/order/so_lineitem_delete.html:5 +msgid "Are you sure you wish to delete this line item?" +msgstr "" + +#: order/templates/order/po_navbar.html:26 msgid "Received Stock Items" msgstr "" -#: order/templates/order/po_navbar.html:20 +#: order/templates/order/po_navbar.html:29 #: order/templates/order/po_received_items.html:12 msgid "Received Items" msgstr "Otrzymane elementy" @@ -3153,8 +3239,8 @@ msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:24 -#: order/templates/order/sales_order_detail.html:22 order/views.py:1311 -#: order/views.py:1394 +#: order/templates/order/sales_order_detail.html:22 order/views.py:1321 +#: order/views.py:1404 msgid "Add Line Item" msgstr "" @@ -3162,25 +3248,31 @@ msgstr "" msgid "No line items found" msgstr "" +#: order/templates/order/purchase_order_detail.html:142 +#: order/templates/order/sales_order_detail.html:223 +msgid "Total" +msgstr "" + #: order/templates/order/purchase_order_detail.html:191 -#: order/templates/order/sales_order_detail.html:235 +#: order/templates/order/sales_order_detail.html:246 msgid "Unit Price" msgstr "Cena jednostkowa" #: order/templates/order/purchase_order_detail.html:198 +#: order/templates/order/sales_order_detail.html:253 msgid "Total price" msgstr "" -#: order/templates/order/purchase_order_detail.html:251 -#: order/templates/order/sales_order_detail.html:328 +#: order/templates/order/purchase_order_detail.html:255 +#: order/templates/order/sales_order_detail.html:359 msgid "Edit line item" msgstr "" -#: order/templates/order/purchase_order_detail.html:252 +#: order/templates/order/purchase_order_detail.html:256 msgid "Delete line item" msgstr "" -#: order/templates/order/purchase_order_detail.html:257 +#: order/templates/order/purchase_order_detail.html:261 msgid "Receive line item" msgstr "" @@ -3201,7 +3293,7 @@ msgstr "" #: part/templates/part/category_navbar.html:29 #: part/templates/part/category_partlist.html:10 #: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114 -#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:665 +#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:666 #: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89 #: users/models.py:40 msgid "Parts" @@ -3216,7 +3308,7 @@ msgid "Order Code" msgstr "Kod zamówienia" #: order/templates/order/receive_parts.html:21 -#: part/templates/part/part_base.html:136 templates/js/part.js:480 +#: part/templates/part/part_base.html:136 templates/js/part.js:481 msgid "On Order" msgstr "" @@ -3224,11 +3316,11 @@ msgstr "" msgid "Receive" msgstr "Odbierz" -#: order/templates/order/receive_parts.html:36 +#: order/templates/order/receive_parts.html:37 msgid "Error: Referenced part has been removed" msgstr "" -#: order/templates/order/receive_parts.html:57 +#: order/templates/order/receive_parts.html:61 msgid "Remove line" msgstr "Usuń linie" @@ -3265,17 +3357,17 @@ msgid "Sales Order Items" msgstr "" #: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:365 -#: templates/js/build.js:637 templates/js/build.js:1054 +#: templates/js/build.js:724 templates/js/build.js:1141 msgid "Actions" msgstr "Akcje" -#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:525 -#: templates/js/build.js:859 +#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:610 +#: templates/js/build.js:946 msgid "Edit stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:527 -#: templates/js/build.js:860 +#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:612 +#: templates/js/build.js:947 msgid "Delete stock allocation" msgstr "" @@ -3283,50 +3375,50 @@ msgstr "" msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:205 +#: order/templates/order/sales_order_detail.html:206 msgid "ID" msgstr "Numer ID" -#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:589 -#: templates/js/build.js:855 +#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:675 +#: templates/js/build.js:942 msgid "Allocated" msgstr "Przydzielono" -#: order/templates/order/sales_order_detail.html:245 +#: order/templates/order/sales_order_detail.html:276 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:282 +#: order/templates/order/sales_order_detail.html:313 msgid "PO" msgstr "" -#: order/templates/order/sales_order_detail.html:312 +#: order/templates/order/sales_order_detail.html:343 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:651 +#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:738 msgid "Allocate stock" msgstr "" -#: order/templates/order/sales_order_detail.html:318 +#: order/templates/order/sales_order_detail.html:349 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:644 -#: templates/js/build.js:1062 +#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:731 +#: templates/js/build.js:1149 msgid "Build stock" msgstr "" -#: order/templates/order/sales_order_detail.html:325 -#: order/templates/order/sales_order_detail.html:434 +#: order/templates/order/sales_order_detail.html:356 +#: order/templates/order/sales_order_detail.html:465 msgid "Calculate price" msgstr "Oblicz cenę" -#: order/templates/order/sales_order_detail.html:329 +#: order/templates/order/sales_order_detail.html:360 msgid "Delete line item " msgstr "" -#: order/templates/order/sales_order_detail.html:440 +#: order/templates/order/sales_order_detail.html:471 msgid "Update Unit Price" msgstr "" @@ -3367,10 +3459,6 @@ msgstr "" msgid "Sales Order Attachments" msgstr "" -#: order/templates/order/so_lineitem_delete.html:5 -msgid "Are you sure you wish to delete this line item?" -msgstr "" - #: order/views.py:104 msgid "Add Purchase Order Attachment" msgstr "" @@ -3471,90 +3559,94 @@ msgstr "" msgid "No lines specified" msgstr "" -#: order/views.py:1260 +#: order/views.py:1012 +msgid "Update prices" +msgstr "" + +#: order/views.py:1270 #, python-brace-format msgid "Ordered {n} parts" msgstr "" -#: order/views.py:1320 +#: order/views.py:1330 msgid "Supplier part must be specified" msgstr "" -#: order/views.py:1326 +#: order/views.py:1336 msgid "Supplier must match for Part and Order" msgstr "" -#: order/views.py:1457 order/views.py:1475 +#: order/views.py:1467 order/views.py:1485 msgid "Edit Line Item" msgstr "" -#: order/views.py:1491 order/views.py:1503 +#: order/views.py:1501 order/views.py:1513 msgid "Delete Line Item" msgstr "" -#: order/views.py:1496 order/views.py:1508 +#: order/views.py:1506 order/views.py:1518 msgid "Deleted line item" msgstr "" -#: order/views.py:1521 +#: order/views.py:1531 msgid "Allocate Serial Numbers" msgstr "" -#: order/views.py:1566 +#: order/views.py:1576 #, python-brace-format msgid "Allocated {n} items" msgstr "" -#: order/views.py:1582 +#: order/views.py:1592 msgid "Select line item" msgstr "" -#: order/views.py:1613 -#, python-brace-format -msgid "No matching item for serial {serial}" -msgstr "" - #: order/views.py:1623 #, python-brace-format +msgid "No matching item for serial {serial}" +msgstr "" + +#: order/views.py:1633 +#, python-brace-format msgid "{serial} is not in stock" msgstr "" -#: order/views.py:1631 +#: order/views.py:1641 #, python-brace-format msgid "{serial} already allocated to an order" msgstr "" -#: order/views.py:1685 +#: order/views.py:1695 msgid "Allocate Stock to Order" msgstr "" -#: order/views.py:1759 +#: order/views.py:1769 msgid "Edit Allocation Quantity" msgstr "" -#: order/views.py:1774 +#: order/views.py:1784 msgid "Remove allocation" msgstr "" -#: order/views.py:1846 +#: order/views.py:1856 msgid "Sales order not found" msgstr "" -#: order/views.py:1852 +#: order/views.py:1862 msgid "Price not found" msgstr "Nie znaleziono ceny" -#: order/views.py:1855 +#: order/views.py:1865 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:1860 +#: order/views.py:1870 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/bom.py:138 part/models.py:72 part/models.py:762 +#: part/bom.py:138 part/models.py:72 part/models.py:747 #: part/templates/part/category.html:66 part/templates/part/detail.html:90 msgid "Default Location" msgstr "Domyślna lokalizacja" @@ -3632,7 +3724,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:122 part/models.py:2168 +#: part/forms.py:122 part/models.py:2191 msgid "Parent Part" msgstr "Część nadrzędna" @@ -3708,7 +3800,7 @@ msgstr "" msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:344 part/models.py:2263 +#: part/forms.py:344 part/models.py:2286 msgid "Sub part" msgstr "Podczęść" @@ -3728,7 +3820,7 @@ msgstr "Domyślne słowa kluczowe" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:82 part/models.py:2214 +#: part/models.py:82 part/models.py:2237 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -3739,365 +3831,360 @@ msgstr "" msgid "Part Categories" msgstr "" -#: part/models.py:446 part/models.py:458 +#: part/models.py:448 part/models.py:460 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:555 +#: part/models.py:557 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:559 +#: part/models.py:561 msgid "Next available serial number is" msgstr "" -#: part/models.py:564 +#: part/models.py:566 msgid "Most recent serial number is" msgstr "" -#: part/models.py:643 +#: part/models.py:645 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:654 -msgid "Part must be unique for name, IPN and revision" -msgstr "" - -#: part/models.py:685 part/templates/part/detail.html:22 +#: part/models.py:670 part/templates/part/detail.html:22 msgid "Part name" msgstr "" -#: part/models.py:692 +#: part/models.py:677 msgid "Is Template" msgstr "" -#: part/models.py:693 +#: part/models.py:678 msgid "Is this part a template part?" msgstr "" -#: part/models.py:704 +#: part/models.py:689 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:705 part/templates/part/detail.html:60 +#: part/models.py:690 part/templates/part/detail.html:60 msgid "Variant Of" msgstr "Wariant" -#: part/models.py:711 +#: part/models.py:696 msgid "Part description" msgstr "Opis części" -#: part/models.py:716 part/templates/part/category.html:73 +#: part/models.py:701 part/templates/part/category.html:73 #: part/templates/part/detail.html:67 msgid "Keywords" msgstr "Słowa kluczowe" -#: part/models.py:717 +#: part/models.py:702 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:724 part/models.py:2213 part/templates/part/detail.html:73 -#: part/templates/part/set_category.html:15 templates/js/part.js:451 +#: part/models.py:709 part/models.py:2236 part/templates/part/detail.html:73 +#: part/templates/part/set_category.html:15 templates/js/part.js:452 msgid "Category" msgstr "Kategoria" -#: part/models.py:725 +#: part/models.py:710 msgid "Part category" msgstr "" -#: part/models.py:730 part/templates/part/detail.html:28 +#: part/models.py:715 part/templates/part/detail.html:28 #: part/templates/part/part_base.html:87 templates/js/part.js:169 #: templates/js/part.js:296 msgid "IPN" msgstr "IPN" -#: part/models.py:731 +#: part/models.py:716 msgid "Internal Part Number" msgstr "" -#: part/models.py:737 +#: part/models.py:722 msgid "Part revision or version number" msgstr "" -#: part/models.py:738 part/templates/part/detail.html:35 report/models.py:198 +#: part/models.py:723 part/templates/part/detail.html:35 report/models.py:199 #: templates/js/part.js:173 msgid "Revision" msgstr "Wersja" -#: part/models.py:760 +#: part/models.py:745 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:807 part/templates/part/detail.html:97 +#: part/models.py:792 part/templates/part/detail.html:97 msgid "Default Supplier" msgstr "" -#: part/models.py:808 +#: part/models.py:793 msgid "Default supplier part" msgstr "" -#: part/models.py:815 +#: part/models.py:800 msgid "Default Expiry" msgstr "" -#: part/models.py:816 +#: part/models.py:801 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:821 part/templates/part/detail.html:113 +#: part/models.py:806 part/templates/part/detail.html:113 msgid "Minimum Stock" msgstr "Minimalny stan magazynowy" -#: part/models.py:822 +#: part/models.py:807 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:828 part/models.py:2142 part/templates/part/detail.html:106 -#: part/templates/part/params.html:29 -msgid "Units" -msgstr "Jednostki" - -#: part/models.py:829 +#: part/models.py:814 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:835 +#: part/models.py:820 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:841 +#: part/models.py:826 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:847 +#: part/models.py:832 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:852 +#: part/models.py:837 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:857 +#: part/models.py:842 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:861 part/templates/part/detail.html:227 +#: part/models.py:846 part/templates/part/detail.html:227 #: templates/js/table_filters.js:21 templates/js/table_filters.js:65 #: templates/js/table_filters.js:241 templates/js/table_filters.js:310 msgid "Active" msgstr "Aktywny" -#: part/models.py:862 +#: part/models.py:847 msgid "Is this part active?" msgstr "Czy ta część jest aktywna?" -#: part/models.py:867 +#: part/models.py:852 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:872 +#: part/models.py:857 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:875 +#: part/models.py:860 msgid "BOM checksum" msgstr "" -#: part/models.py:875 +#: part/models.py:860 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:878 +#: part/models.py:863 msgid "BOM checked by" msgstr "" -#: part/models.py:880 +#: part/models.py:865 msgid "BOM checked date" msgstr "" -#: part/models.py:884 +#: part/models.py:869 msgid "Creation User" msgstr "" -#: part/models.py:1616 +#: part/models.py:1608 msgid "Sell multiple" msgstr "Sprzedaj wiele" -#: part/models.py:2040 +#: part/models.py:2063 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2057 +#: part/models.py:2080 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2077 templates/js/part.js:716 templates/js/stock.js:117 +#: part/models.py:2100 templates/js/part.js:717 templates/js/stock.js:117 msgid "Test Name" msgstr "Nazwa testu" -#: part/models.py:2078 +#: part/models.py:2101 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2083 +#: part/models.py:2106 msgid "Test Description" msgstr "" -#: part/models.py:2084 +#: part/models.py:2107 msgid "Enter description for this test" msgstr "" -#: part/models.py:2089 templates/js/part.js:725 +#: part/models.py:2112 templates/js/part.js:726 #: templates/js/table_filters.js:227 msgid "Required" msgstr "Wymagane" -#: part/models.py:2090 +#: part/models.py:2113 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2095 templates/js/part.js:733 +#: part/models.py:2118 templates/js/part.js:734 msgid "Requires Value" msgstr "" -#: part/models.py:2096 +#: part/models.py:2119 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2101 templates/js/part.js:740 +#: part/models.py:2124 templates/js/part.js:741 msgid "Requires Attachment" msgstr "" -#: part/models.py:2102 +#: part/models.py:2125 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2135 +#: part/models.py:2158 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2140 +#: part/models.py:2163 msgid "Parameter Name" msgstr "" -#: part/models.py:2142 +#: part/models.py:2165 msgid "Parameter Units" msgstr "" -#: part/models.py:2170 part/models.py:2219 part/models.py:2220 +#: part/models.py:2193 part/models.py:2242 part/models.py:2243 #: templates/InvenTree/settings/category.html:62 msgid "Parameter Template" msgstr "" -#: part/models.py:2172 +#: part/models.py:2195 msgid "Data" msgstr "Dane" -#: part/models.py:2172 +#: part/models.py:2195 msgid "Parameter Value" msgstr "" -#: part/models.py:2224 templates/InvenTree/settings/category.html:67 +#: part/models.py:2247 templates/InvenTree/settings/category.html:67 msgid "Default Value" msgstr "Wartość domyślna" -#: part/models.py:2225 +#: part/models.py:2248 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2255 +#: part/models.py:2278 msgid "Select parent part" msgstr "" -#: part/models.py:2264 +#: part/models.py:2287 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2270 +#: part/models.py:2293 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2272 templates/js/bom.js:216 templates/js/bom.js:285 +#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:285 msgid "Optional" msgstr "" -#: part/models.py:2272 +#: part/models.py:2295 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2275 +#: part/models.py:2298 msgid "Overage" msgstr "" -#: part/models.py:2276 +#: part/models.py:2299 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2279 +#: part/models.py:2302 msgid "BOM item reference" msgstr "" -#: part/models.py:2282 +#: part/models.py:2305 msgid "BOM item notes" msgstr "" -#: part/models.py:2284 +#: part/models.py:2307 msgid "Checksum" msgstr "Suma kontrolna" -#: part/models.py:2284 +#: part/models.py:2307 msgid "BOM line checksum" msgstr "" -#: part/models.py:2288 templates/js/bom.js:302 templates/js/bom.js:309 +#: part/models.py:2311 templates/js/bom.js:302 templates/js/bom.js:309 #: templates/js/table_filters.js:51 msgid "Inherited" msgstr "" -#: part/models.py:2289 +#: part/models.py:2312 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2294 templates/js/bom.js:294 +#: part/models.py:2317 templates/js/bom.js:294 msgid "Allow Variants" msgstr "" -#: part/models.py:2295 +#: part/models.py:2318 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2371 part/views.py:1681 part/views.py:1733 +#: part/models.py:2394 part/views.py:1692 part/views.py:1744 #: stock/models.py:294 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2380 part/models.py:2382 +#: part/models.py:2403 part/models.py:2405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2385 +#: part/models.py:2408 msgid "BOM Item" msgstr "" -#: part/models.py:2502 +#: part/models.py:2527 msgid "Part 1" msgstr "Część 1" -#: part/models.py:2506 +#: part/models.py:2531 msgid "Part 2" msgstr "Część 2" -#: part/models.py:2506 +#: part/models.py:2531 msgid "Select Related Part" msgstr "Wybierz powiązaną część" -#: part/models.py:2538 +#: part/models.py:2563 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" #: part/templates/part/allocation.html:11 -msgid "Part Stock Allocations" +msgid "Build Order Allocations" +msgstr "" + +#: part/templates/part/allocation.html:24 +msgid "Sales Order Allocations" msgstr "" #: part/templates/part/attachments.html:10 @@ -4112,8 +4199,8 @@ msgstr "" msgid "Deleting this entry will remove the BOM row from the following part" msgstr "" -#: part/templates/part/bom.html:10 part/templates/part/navbar.html:48 -#: part/templates/part/navbar.html:51 +#: part/templates/part/bom.html:10 part/templates/part/navbar.html:50 +#: part/templates/part/navbar.html:53 msgid "Bill of Materials" msgstr "Zestawienie materiałowe" @@ -4160,7 +4247,7 @@ msgstr "" msgid "Validate Bill of Materials" msgstr "" -#: part/templates/part/bom.html:61 part/views.py:1976 +#: part/templates/part/bom.html:61 part/views.py:1987 msgid "Export Bill of Materials" msgstr "" @@ -4177,7 +4264,7 @@ msgid "All selected BOM items will be deleted" msgstr "" #: part/templates/part/bom.html:160 part/views.py:585 -#: templates/js/stock.js:1288 +#: templates/js/stock.js:1313 msgid "Create New Part" msgstr "" @@ -4258,7 +4345,7 @@ msgstr "" msgid "All parts" msgstr "Wszystkie części" -#: part/templates/part/category.html:29 part/views.py:2379 +#: part/templates/part/category.html:29 part/views.py:2397 msgid "Create new part category" msgstr "Stwórz nową kategorię komponentów" @@ -4318,7 +4405,7 @@ msgid "View grid display" msgstr "" #: part/templates/part/category.html:209 -#: stock/templates/stock/location.html:192 templates/js/stock.js:712 +#: stock/templates/stock/location.html:192 templates/js/stock.js:737 msgid "Create new location" msgstr "" @@ -4373,14 +4460,8 @@ msgstr "" msgid "If this category is deleted, these parts will be moved to the top-level category Teile" msgstr "" -#: part/templates/part/category_navbar.html:34 -#: part/templates/part/category_navbar.html:37 -#: part/templates/part/navbar.html:22 -msgid "Parameters" -msgstr "Parametry" - #: part/templates/part/category_parametric.html:10 -#: part/templates/part/navbar.html:19 part/templates/part/params.html:10 +#: part/templates/part/navbar.html:21 part/templates/part/params.html:10 msgid "Part Parameters" msgstr "Parametry części" @@ -4408,7 +4489,7 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:11 part/templates/part/navbar.html:11 +#: part/templates/part/detail.html:11 part/templates/part/navbar.html:13 msgid "Part Details" msgstr "Szczegóły części" @@ -4488,6 +4569,36 @@ msgstr "" msgid "Part is not active" msgstr "" +#: part/templates/part/internal_prices.html:11 +#: part/templates/part/navbar.html:100 +msgid "Internal Price Information" +msgstr "" + +#: part/templates/part/internal_prices.html:19 part/views.py:2822 +msgid "Add Internal Price Break" +msgstr "" + +#: part/templates/part/internal_prices.html:28 templates/403.html:5 +#: templates/403.html:11 +msgid "Permission Denied" +msgstr "" + +#: part/templates/part/internal_prices.html:31 templates/403.html:14 +msgid "You do not have permission to view this page." +msgstr "" + +#: part/templates/part/internal_prices.html:59 +msgid "No internal price break information found" +msgstr "" + +#: part/templates/part/internal_prices.html:110 +msgid "Edit internal price break" +msgstr "" + +#: part/templates/part/internal_prices.html:111 +msgid "Delete internal price break" +msgstr "" + #: part/templates/part/manufacturer.html:11 msgid "Part Manufacturers" msgstr "" @@ -4501,127 +4612,141 @@ msgstr "" msgid "Create new manufacturer" msgstr "" -#: part/templates/part/navbar.html:26 part/templates/part/variants.html:11 +#: part/templates/part/navbar.html:28 part/templates/part/variants.html:11 msgid "Part Variants" msgstr "" -#: part/templates/part/navbar.html:29 +#: part/templates/part/navbar.html:31 msgid "Variants" msgstr "" -#: part/templates/part/navbar.html:40 +#: part/templates/part/navbar.html:42 msgid "Allocated Stock" msgstr "" -#: part/templates/part/navbar.html:43 +#: part/templates/part/navbar.html:45 msgid "Allocations" msgstr "" -#: part/templates/part/navbar.html:64 part/templates/part/navbar.html:67 +#: part/templates/part/navbar.html:66 part/templates/part/navbar.html:69 msgid "Used In" msgstr "" -#: part/templates/part/navbar.html:72 part/templates/part/order_prices.html:12 +#: part/templates/part/navbar.html:74 part/templates/part/order_prices.html:12 msgid "Order Price Information" msgstr "" -#: part/templates/part/navbar.html:75 +#: part/templates/part/navbar.html:77 msgid "Order Price" msgstr "" -#: part/templates/part/navbar.html:98 +#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:93 +#: part/templates/part/part_pricing.html:82 +msgid "Internal Price" +msgstr "" + +#: part/templates/part/navbar.html:106 msgid "Sales Price Information" msgstr "" -#: part/templates/part/navbar.html:112 part/templates/part/part_tests.html:10 +#: part/templates/part/navbar.html:120 part/templates/part/part_tests.html:10 msgid "Part Test Templates" msgstr "" -#: part/templates/part/navbar.html:115 stock/templates/stock/item_base.html:409 +#: part/templates/part/navbar.html:123 stock/templates/stock/item_base.html:414 msgid "Tests" msgstr "" -#: part/templates/part/navbar.html:119 part/templates/part/navbar.html:122 +#: part/templates/part/navbar.html:127 part/templates/part/navbar.html:130 #: part/templates/part/related.html:10 msgid "Related Parts" msgstr "" -#: part/templates/part/navbar.html:131 part/templates/part/notes.html:12 +#: part/templates/part/navbar.html:139 part/templates/part/notes.html:12 msgid "Part Notes" msgstr "" -#: part/templates/part/order_prices.html:21 +#: part/templates/part/order_prices.html:24 +#: part/templates/part/part_base.html:282 +msgid "Calculate" +msgstr "" + +#: part/templates/part/order_prices.html:31 msgid "Pricing ranges" msgstr "" -#: part/templates/part/order_prices.html:26 -#: part/templates/part/part_pricing.html:19 +#: part/templates/part/order_prices.html:36 +#: part/templates/part/part_pricing.html:22 msgid "Supplier Pricing" msgstr "" -#: part/templates/part/order_prices.html:27 -#: part/templates/part/order_prices.html:52 -#: part/templates/part/order_prices.html:83 -#: part/templates/part/part_pricing.html:23 -#: part/templates/part/part_pricing.html:49 -#: part/templates/part/part_pricing.html:81 +#: part/templates/part/order_prices.html:37 +#: part/templates/part/order_prices.html:62 +#: part/templates/part/order_prices.html:94 +#: part/templates/part/order_prices.html:108 +#: part/templates/part/part_pricing.html:26 +#: part/templates/part/part_pricing.html:52 +#: part/templates/part/part_pricing.html:85 +#: part/templates/part/part_pricing.html:100 msgid "Unit Cost" msgstr "" -#: part/templates/part/order_prices.html:34 -#: part/templates/part/order_prices.html:59 -#: part/templates/part/order_prices.html:88 -#: part/templates/part/part_pricing.html:29 -#: part/templates/part/part_pricing.html:55 -#: part/templates/part/part_pricing.html:85 +#: part/templates/part/order_prices.html:44 +#: part/templates/part/order_prices.html:69 +#: part/templates/part/order_prices.html:99 +#: part/templates/part/order_prices.html:113 +#: part/templates/part/part_pricing.html:32 +#: part/templates/part/part_pricing.html:58 +#: part/templates/part/part_pricing.html:89 +#: part/templates/part/part_pricing.html:104 msgid "Total Cost" msgstr "" -#: part/templates/part/order_prices.html:42 -#: part/templates/part/part_pricing.html:37 +#: part/templates/part/order_prices.html:52 +#: part/templates/part/part_pricing.html:40 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/order_prices.html:51 -#: part/templates/part/order_prices.html:103 -#: part/templates/part/part_pricing.html:45 +#: part/templates/part/order_prices.html:61 +#: part/templates/part/order_prices.html:128 +#: part/templates/part/part_pricing.html:48 msgid "BOM Pricing" msgstr "" -#: part/templates/part/order_prices.html:67 -#: part/templates/part/part_pricing.html:63 +#: part/templates/part/order_prices.html:77 +#: part/templates/part/part_pricing.html:66 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/order_prices.html:74 -#: part/templates/part/part_pricing.html:70 +#: part/templates/part/order_prices.html:84 +#: part/templates/part/part_pricing.html:73 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/order_prices.html:97 -#: part/templates/part/part_pricing.html:94 +#: part/templates/part/order_prices.html:122 +#: part/templates/part/part_pricing.html:113 msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/order_prices.html:113 +#: part/templates/part/order_prices.html:138 msgid "Stock Pricing" msgstr "" -#: part/templates/part/order_prices.html:121 +#: part/templates/part/order_prices.html:146 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/order_prices.html:140 +#: part/templates/part/order_prices.html:165 #, python-format msgid "Single Price - %(currency)s" msgstr "" -#: part/templates/part/order_prices.html:152 +#: part/templates/part/order_prices.html:177 #, python-format msgid "Single Price Difference - %(currency)s" msgstr "" -#: part/templates/part/order_prices.html:163 +#: part/templates/part/order_prices.html:189 #, python-format msgid "Part Single Price - %(currency)s" msgstr "" @@ -4630,19 +4755,6 @@ msgstr "" msgid "Add new parameter" msgstr "" -#: part/templates/part/params.html:18 -#: templates/InvenTree/settings/category.html:29 -#: templates/InvenTree/settings/part.html:44 -msgid "New Parameter" -msgstr "" - -#: part/templates/part/params.html:28 -#: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1756 templates/InvenTree/settings/header.html:8 -#: templates/js/stock.js:137 -msgid "Value" -msgstr "" - #: part/templates/part/params.html:41 templates/InvenTree/settings/user.html:19 msgid "Edit" msgstr "" @@ -4660,7 +4772,7 @@ msgid "Part List" msgstr "" #: part/templates/part/part_base.html:26 templates/js/company.js:156 -#: templates/js/company.js:254 templates/js/part.js:84 templates/js/part.js:161 +#: templates/js/company.js:355 templates/js/part.js:84 templates/js/part.js:161 msgid "Inactive" msgstr "" @@ -4740,14 +4852,10 @@ msgid "Can Build" msgstr "" #: part/templates/part/part_base.html:178 templates/js/part.js:312 -#: templates/js/part.js:484 +#: templates/js/part.js:485 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:265 -msgid "Calculate" -msgstr "" - #: part/templates/part/part_tests.html:17 msgid "Add Test Template" msgstr "" @@ -4816,7 +4924,7 @@ msgid "Showing stock for all variants of %(full_name)s" msgstr "" #: part/templates/part/stock_count.html:7 templates/js/bom.js:239 -#: templates/js/part.js:302 templates/js/part.js:488 +#: templates/js/part.js:302 templates/js/part.js:489 msgid "No Stock" msgstr "" @@ -4853,7 +4961,7 @@ msgstr "" msgid "New Variant" msgstr "" -#: part/templatetags/inventree_extras.py:98 +#: part/templatetags/inventree_extras.py:99 msgid "Unknown database" msgstr "" @@ -4922,227 +5030,239 @@ msgstr "" msgid "Created new part" msgstr "" -#: part/views.py:914 +#: part/views.py:925 msgid "Part QR Code" msgstr "" -#: part/views.py:1016 +#: part/views.py:1027 msgid "Upload Part Image" msgstr "" -#: part/views.py:1022 part/views.py:1057 +#: part/views.py:1033 part/views.py:1068 msgid "Updated part image" msgstr "" -#: part/views.py:1031 +#: part/views.py:1042 msgid "Select Part Image" msgstr "" -#: part/views.py:1060 +#: part/views.py:1071 msgid "Part image not found" msgstr "" -#: part/views.py:1071 +#: part/views.py:1082 msgid "Edit Part Properties" msgstr "" -#: part/views.py:1106 +#: part/views.py:1117 msgid "Duplicate BOM" msgstr "" -#: part/views.py:1136 +#: part/views.py:1147 msgid "Confirm duplication of BOM from parent" msgstr "" -#: part/views.py:1157 +#: part/views.py:1168 msgid "Validate BOM" msgstr "" -#: part/views.py:1178 +#: part/views.py:1189 msgid "Confirm that the BOM is valid" msgstr "" -#: part/views.py:1189 +#: part/views.py:1200 msgid "Validated Bill of Materials" msgstr "" -#: part/views.py:1323 +#: part/views.py:1334 msgid "No BOM file provided" msgstr "" -#: part/views.py:1684 +#: part/views.py:1695 msgid "Enter a valid quantity" msgstr "" -#: part/views.py:1709 part/views.py:1712 +#: part/views.py:1720 part/views.py:1723 msgid "Select valid part" msgstr "" -#: part/views.py:1718 +#: part/views.py:1729 msgid "Duplicate part selected" msgstr "" -#: part/views.py:1756 +#: part/views.py:1767 msgid "Select a part" msgstr "" -#: part/views.py:1762 +#: part/views.py:1773 msgid "Selected part creates a circular BOM" msgstr "" -#: part/views.py:1766 +#: part/views.py:1777 msgid "Specify quantity" msgstr "" -#: part/views.py:2028 +#: part/views.py:2039 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:2035 +#: part/views.py:2046 msgid "Part was deleted" msgstr "" -#: part/views.py:2044 +#: part/views.py:2055 msgid "Part Pricing" msgstr "" -#: part/views.py:2178 +#: part/views.py:2196 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:2188 +#: part/views.py:2206 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:2195 +#: part/views.py:2213 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:2203 +#: part/views.py:2221 msgid "Create Part Parameter" msgstr "" -#: part/views.py:2253 +#: part/views.py:2271 msgid "Edit Part Parameter" msgstr "" -#: part/views.py:2267 +#: part/views.py:2285 msgid "Delete Part Parameter" msgstr "" -#: part/views.py:2327 +#: part/views.py:2345 msgid "Edit Part Category" msgstr "" -#: part/views.py:2365 +#: part/views.py:2383 msgid "Delete Part Category" msgstr "" -#: part/views.py:2371 +#: part/views.py:2389 msgid "Part category was deleted" msgstr "" -#: part/views.py:2423 +#: part/views.py:2441 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:2524 +#: part/views.py:2542 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:2580 +#: part/views.py:2598 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:2599 +#: part/views.py:2617 msgid "Create BOM Item" msgstr "" -#: part/views.py:2669 +#: part/views.py:2687 msgid "Edit BOM item" msgstr "" -#: part/views.py:2725 +#: part/views.py:2743 msgid "Confim BOM item deletion" msgstr "" -#: report/models.py:180 +#: part/views.py:2831 +msgid "Edit Internal Price Break" +msgstr "" + +#: part/views.py:2839 +msgid "Delete Internal Price Break" +msgstr "" + +#: report/models.py:181 msgid "Template name" msgstr "" -#: report/models.py:186 +#: report/models.py:187 msgid "Report template file" msgstr "" -#: report/models.py:193 +#: report/models.py:194 msgid "Report template description" msgstr "" -#: report/models.py:199 +#: report/models.py:200 msgid "Report revision number (auto-increments)" msgstr "" -#: report/models.py:275 +#: report/models.py:291 +msgid "Pattern for generating report filenames" +msgstr "" + +#: report/models.py:298 msgid "Report template is enabled" msgstr "" -#: report/models.py:295 +#: report/models.py:318 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:303 +#: report/models.py:326 msgid "Include Installed Tests" msgstr "" -#: report/models.py:304 +#: report/models.py:327 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:347 +#: report/models.py:371 msgid "Build Filters" msgstr "" -#: report/models.py:348 +#: report/models.py:372 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:385 +#: report/models.py:410 msgid "Part Filters" msgstr "" -#: report/models.py:386 +#: report/models.py:411 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:416 +#: report/models.py:441 msgid "Purchase order query filters" msgstr "" -#: report/models.py:450 +#: report/models.py:475 msgid "Sales order query filters" msgstr "" -#: report/models.py:500 +#: report/models.py:525 msgid "Snippet" msgstr "" -#: report/models.py:501 +#: report/models.py:526 msgid "Report snippet file" msgstr "" -#: report/models.py:505 +#: report/models.py:530 msgid "Snippet file description" msgstr "" -#: report/models.py:540 +#: report/models.py:565 msgid "Asset" msgstr "" -#: report/models.py:541 +#: report/models.py:566 msgid "Report asset file" msgstr "" -#: report/models.py:544 +#: report/models.py:569 msgid "Asset file description" msgstr "" @@ -5174,7 +5294,7 @@ msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/order.js:195 templates/js/stock.js:987 +#: templates/js/order.js:195 templates/js/stock.js:1012 msgid "Date" msgstr "" @@ -5197,7 +5317,7 @@ msgid "Moved {n} parts to {loc}" msgstr "" #: stock/forms.py:114 stock/forms.py:418 stock/models.py:509 -#: stock/templates/stock/item_base.html:376 templates/js/stock.js:654 +#: stock/templates/stock/item_base.html:381 templates/js/stock.js:658 msgid "Expiry Date" msgstr "" @@ -5483,12 +5603,12 @@ msgid "Stock Item Attachments" msgstr "" #: stock/templates/stock/item_base.html:33 -#: stock/templates/stock/item_base.html:380 templates/js/table_filters.js:150 +#: stock/templates/stock/item_base.html:385 templates/js/table_filters.js:150 msgid "Expired" msgstr "" #: stock/templates/stock/item_base.html:43 -#: stock/templates/stock/item_base.html:382 templates/js/table_filters.js:155 +#: stock/templates/stock/item_base.html:387 templates/js/table_filters.js:155 msgid "Stale" msgstr "" @@ -5618,7 +5738,7 @@ msgstr "" msgid "Stock Item Details" msgstr "" -#: stock/templates/stock/item_base.html:289 templates/js/build.js:508 +#: stock/templates/stock/item_base.html:289 templates/js/build.js:593 msgid "No location set" msgstr "" @@ -5630,25 +5750,29 @@ msgstr "" msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:380 +#: stock/templates/stock/item_base.html:356 +msgid "No manufacturer set" +msgstr "" + +#: stock/templates/stock/item_base.html:385 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:382 +#: stock/templates/stock/item_base.html:387 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:389 templates/js/stock.js:660 +#: stock/templates/stock/item_base.html:394 templates/js/stock.js:664 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:394 +#: stock/templates/stock/item_base.html:399 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:398 +#: stock/templates/stock/item_base.html:403 msgid "No stocktake performed" msgstr "" @@ -5945,7 +6069,7 @@ msgstr "" msgid "Add Stock Items" msgstr "" -#: stock/views.py:1001 users/models.py:183 +#: stock/views.py:1001 users/models.py:187 msgid "Add" msgstr "" @@ -6011,7 +6135,7 @@ msgstr "" msgid "Serialize Stock" msgstr "" -#: stock/views.py:1575 templates/js/build.js:244 +#: stock/views.py:1575 templates/js/build.js:326 msgid "Create new Stock Item" msgstr "" @@ -6043,14 +6167,6 @@ msgstr "" msgid "Add Stock Tracking Entry" msgstr "" -#: templates/403.html:5 templates/403.html:11 -msgid "Permission Denied" -msgstr "" - -#: templates/403.html:14 -msgid "You do not have permission to view this page." -msgstr "" - #: templates/404.html:5 templates/404.html:11 msgid "Page Not Found" msgstr "" @@ -6119,11 +6235,11 @@ msgstr "" msgid "Enter a search query" msgstr "" -#: templates/InvenTree/search.html:268 templates/js/stock.js:298 +#: templates/InvenTree/search.html:268 templates/js/stock.js:303 msgid "Shipped to customer" msgstr "" -#: templates/InvenTree/search.html:271 templates/js/stock.js:308 +#: templates/InvenTree/search.html:271 templates/js/stock.js:313 msgid "No stock location set" msgstr "" @@ -6168,12 +6284,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/category.html:70 -#: templates/InvenTree/settings/part.html:81 +#: templates/InvenTree/settings/part.html:85 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/category.html:71 -#: templates/InvenTree/settings/part.html:82 +#: templates/InvenTree/settings/part.html:86 msgid "Delete Template" msgstr "" @@ -6221,11 +6337,11 @@ msgstr "" msgid "Part Options" msgstr "" -#: templates/InvenTree/settings/part.html:40 +#: templates/InvenTree/settings/part.html:44 msgid "Part Parameter Templates" msgstr "" -#: templates/InvenTree/settings/part.html:61 +#: templates/InvenTree/settings/part.html:65 msgid "No part parameter templates found" msgstr "" @@ -6341,47 +6457,51 @@ msgid "API Version" msgstr "" #: templates/about.html:39 +msgid "Python Version" +msgstr "" + +#: templates/about.html:44 msgid "Django Version" msgstr "" -#: templates/about.html:46 +#: templates/about.html:51 msgid "Commit Hash" msgstr "" -#: templates/about.html:53 +#: templates/about.html:58 msgid "Commit Date" msgstr "" -#: templates/about.html:58 +#: templates/about.html:63 msgid "InvenTree Documentation" msgstr "" -#: templates/about.html:63 +#: templates/about.html:68 msgid "View Code on GitHub" msgstr "" -#: templates/about.html:68 +#: templates/about.html:73 msgid "Credits" msgstr "" -#: templates/about.html:73 +#: templates/about.html:78 msgid "Mobile App" msgstr "" -#: templates/about.html:78 +#: templates/about.html:83 msgid "Submit Bug Report" msgstr "" -#: templates/about.html:85 templates/clip.html:4 +#: templates/about.html:90 templates/clip.html:4 msgid "copy to clipboard" msgstr "" -#: templates/about.html:85 +#: templates/about.html:90 msgid "copy version information" msgstr "" -#: templates/about.html:95 templates/js/modals.js:568 -#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54 +#: templates/about.html:100 templates/js/modals.js:568 +#: templates/js/modals.js:861 templates/modals.html:29 templates/modals.html:54 #: templates/modals.html:97 msgid "Close" msgstr "" @@ -6442,7 +6562,7 @@ msgstr "" msgid "Unknown response from server" msgstr "" -#: templates/js/barcode.js:119 templates/js/modals.js:901 +#: templates/js/barcode.js:119 templates/js/modals.js:921 msgid "Invalid server response" msgstr "" @@ -6506,7 +6626,7 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/bom.js:175 templates/js/build.js:1004 +#: templates/js/bom.js:175 templates/js/build.js:1091 msgid "Open subassembly" msgstr "" @@ -6542,7 +6662,7 @@ msgstr "" msgid "Delete BOM Item" msgstr "" -#: templates/js/bom.js:470 templates/js/build.js:340 templates/js/build.js:1102 +#: templates/js/bom.js:470 templates/js/build.js:423 templates/js/build.js:1189 msgid "No BOM items found" msgstr "" @@ -6562,37 +6682,45 @@ msgstr "" msgid "Delete build output" msgstr "" -#: templates/js/build.js:243 templates/stock_table.html:20 +#: templates/js/build.js:184 +msgid "No build order allocations found" +msgstr "" + +#: templates/js/build.js:222 templates/js/order.js:382 +msgid "Location not specified" +msgstr "" + +#: templates/js/build.js:325 templates/stock_table.html:20 msgid "New Stock Item" msgstr "" -#: templates/js/build.js:559 +#: templates/js/build.js:644 msgid "Required Part" msgstr "" -#: templates/js/build.js:580 +#: templates/js/build.js:665 msgid "Quantity Per" msgstr "" -#: templates/js/build.js:648 templates/js/build.js:1066 +#: templates/js/build.js:735 templates/js/build.js:1153 #: templates/stock_table.html:59 msgid "Order stock" msgstr "" -#: templates/js/build.js:701 +#: templates/js/build.js:788 msgid "No builds matching query" msgstr "" -#: templates/js/build.js:718 templates/js/part.js:390 templates/js/part.js:634 -#: templates/js/stock.js:509 templates/js/stock.js:941 +#: templates/js/build.js:805 templates/js/part.js:390 templates/js/part.js:635 +#: templates/js/stock.js:514 templates/js/stock.js:966 msgid "Select" msgstr "" -#: templates/js/build.js:738 +#: templates/js/build.js:825 msgid "Build order is overdue" msgstr "" -#: templates/js/build.js:837 +#: templates/js/build.js:924 msgid "No parts allocated for" msgstr "" @@ -6612,17 +6740,29 @@ msgstr "" msgid "No manufacturer parts found" msgstr "" -#: templates/js/company.js:148 templates/js/company.js:246 +#: templates/js/company.js:148 templates/js/company.js:347 #: templates/js/part.js:68 templates/js/part.js:153 msgid "Template part" msgstr "" -#: templates/js/company.js:152 templates/js/company.js:250 +#: templates/js/company.js:152 templates/js/company.js:351 #: templates/js/part.js:72 templates/js/part.js:157 msgid "Assembled part" msgstr "" -#: templates/js/company.js:227 +#: templates/js/company.js:226 +msgid "No parameters found" +msgstr "" + +#: templates/js/company.js:262 +msgid "Edit parameter" +msgstr "" + +#: templates/js/company.js:263 +msgid "Delete parameter" +msgstr "" + +#: templates/js/company.js:328 msgid "No supplier parts found" msgstr "" @@ -6710,76 +6850,76 @@ msgstr "" msgid "Loading Data" msgstr "" -#: templates/js/modals.js:567 templates/js/modals.js:845 +#: templates/js/modals.js:567 templates/js/modals.js:860 #: templates/modals.html:30 templates/modals.html:55 msgid "Submit" msgstr "" -#: templates/js/modals.js:797 +#: templates/js/modals.js:811 msgid "Invalid response from server" msgstr "" -#: templates/js/modals.js:797 +#: templates/js/modals.js:811 msgid "Form data missing from server response" msgstr "" -#: templates/js/modals.js:810 +#: templates/js/modals.js:824 msgid "Error posting form data" msgstr "" -#: templates/js/modals.js:901 +#: templates/js/modals.js:921 msgid "JSON response missing form data" msgstr "" -#: templates/js/modals.js:911 +#: templates/js/modals.js:931 msgid "No Response" msgstr "" -#: templates/js/modals.js:912 +#: templates/js/modals.js:932 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/modals.js:916 +#: templates/js/modals.js:936 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/modals.js:917 +#: templates/js/modals.js:937 msgid "Server returned error code 400" msgstr "" -#: templates/js/modals.js:921 +#: templates/js/modals.js:941 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/modals.js:922 +#: templates/js/modals.js:942 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/modals.js:926 +#: templates/js/modals.js:946 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/modals.js:927 +#: templates/js/modals.js:947 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/modals.js:931 +#: templates/js/modals.js:951 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/modals.js:932 +#: templates/js/modals.js:952 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/modals.js:936 +#: templates/js/modals.js:956 msgid "Error 408: Timeout" msgstr "" -#: templates/js/modals.js:937 +#: templates/js/modals.js:957 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/modals.js:940 +#: templates/js/modals.js:960 msgid "Error requesting form data" msgstr "" @@ -6795,6 +6935,10 @@ msgstr "" msgid "No sales orders found" msgstr "" +#: templates/js/order.js:343 +msgid "No sales order allocations found" +msgstr "" + #: templates/js/part.js:10 msgid "YES" msgstr "" @@ -6823,39 +6967,39 @@ msgstr "" msgid "No variants found" msgstr "" -#: templates/js/part.js:280 templates/js/part.js:518 +#: templates/js/part.js:280 templates/js/part.js:519 msgid "No parts found" msgstr "" -#: templates/js/part.js:457 +#: templates/js/part.js:458 msgid "No category" msgstr "" -#: templates/js/part.js:475 templates/js/table_filters.js:323 +#: templates/js/part.js:476 templates/js/table_filters.js:323 msgid "Low stock" msgstr "" -#: templates/js/part.js:659 templates/js/stock.js:965 +#: templates/js/part.js:660 templates/js/stock.js:990 msgid "Path" msgstr "" -#: templates/js/part.js:702 +#: templates/js/part.js:703 msgid "No test templates matching query" msgstr "" -#: templates/js/part.js:753 templates/js/stock.js:75 +#: templates/js/part.js:754 templates/js/stock.js:75 msgid "Edit test result" msgstr "" -#: templates/js/part.js:754 templates/js/stock.js:76 +#: templates/js/part.js:755 templates/js/stock.js:76 msgid "Delete test result" msgstr "" -#: templates/js/part.js:760 +#: templates/js/part.js:761 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/part.js:805 +#: templates/js/part.js:806 msgid "Single Price Difference" msgstr "" @@ -6953,155 +7097,155 @@ msgstr "" msgid "Test Date" msgstr "" -#: templates/js/stock.js:290 +#: templates/js/stock.js:295 msgid "In production" msgstr "" -#: templates/js/stock.js:294 +#: templates/js/stock.js:299 msgid "Installed in Stock Item" msgstr "" -#: templates/js/stock.js:302 +#: templates/js/stock.js:307 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/stock.js:334 +#: templates/js/stock.js:339 msgid "No stock items matching query" msgstr "" -#: templates/js/stock.js:355 +#: templates/js/stock.js:360 msgid "items" msgstr "" -#: templates/js/stock.js:447 +#: templates/js/stock.js:452 msgid "batches" msgstr "" -#: templates/js/stock.js:474 +#: templates/js/stock.js:479 msgid "locations" msgstr "" -#: templates/js/stock.js:476 +#: templates/js/stock.js:481 msgid "Undefined location" msgstr "" -#: templates/js/stock.js:577 +#: templates/js/stock.js:582 msgid "Stock item is in production" msgstr "" -#: templates/js/stock.js:582 +#: templates/js/stock.js:587 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/stock.js:585 +#: templates/js/stock.js:590 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/stock.js:589 +#: templates/js/stock.js:594 msgid "Stock item has expired" msgstr "" -#: templates/js/stock.js:591 +#: templates/js/stock.js:596 msgid "Stock item will expire soon" msgstr "" -#: templates/js/stock.js:595 +#: templates/js/stock.js:600 msgid "Stock item has been allocated" msgstr "" -#: templates/js/stock.js:599 +#: templates/js/stock.js:604 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/stock.js:607 +#: templates/js/stock.js:611 msgid "Stock item has been rejected" msgstr "" -#: templates/js/stock.js:611 +#: templates/js/stock.js:615 msgid "Stock item is lost" msgstr "" -#: templates/js/stock.js:614 +#: templates/js/stock.js:618 msgid "Stock item is destroyed" msgstr "" -#: templates/js/stock.js:618 templates/js/table_filters.js:143 +#: templates/js/stock.js:622 templates/js/table_filters.js:143 msgid "Depleted" msgstr "" -#: templates/js/stock.js:647 +#: templates/js/stock.js:651 msgid "Stocktake" msgstr "" -#: templates/js/stock.js:828 +#: templates/js/stock.js:853 msgid "Stock Status" msgstr "" -#: templates/js/stock.js:843 +#: templates/js/stock.js:868 msgid "Set Stock Status" msgstr "" -#: templates/js/stock.js:857 +#: templates/js/stock.js:882 msgid "Select Status Code" msgstr "" -#: templates/js/stock.js:858 +#: templates/js/stock.js:883 msgid "Status code must be selected" msgstr "" -#: templates/js/stock.js:997 +#: templates/js/stock.js:1022 msgid "Invalid date" msgstr "" -#: templates/js/stock.js:1044 +#: templates/js/stock.js:1069 msgid "Location no longer exists" msgstr "" -#: templates/js/stock.js:1063 +#: templates/js/stock.js:1088 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/stock.js:1082 +#: templates/js/stock.js:1107 msgid "Customer no longer exists" msgstr "" -#: templates/js/stock.js:1100 +#: templates/js/stock.js:1125 msgid "Stock item no longer exists" msgstr "" -#: templates/js/stock.js:1123 +#: templates/js/stock.js:1148 msgid "Added" msgstr "" -#: templates/js/stock.js:1131 +#: templates/js/stock.js:1156 msgid "Removed" msgstr "" -#: templates/js/stock.js:1163 +#: templates/js/stock.js:1188 msgid "No user information" msgstr "" -#: templates/js/stock.js:1175 +#: templates/js/stock.js:1200 msgid "Edit tracking entry" msgstr "" -#: templates/js/stock.js:1176 +#: templates/js/stock.js:1201 msgid "Delete tracking entry" msgstr "" -#: templates/js/stock.js:1300 +#: templates/js/stock.js:1325 msgid "Create New Location" msgstr "" -#: templates/js/stock.js:1341 +#: templates/js/stock.js:1366 msgid "No installed items" msgstr "" -#: templates/js/stock.js:1364 +#: templates/js/stock.js:1389 msgid "Serial" msgstr "" -#: templates/js/stock.js:1392 +#: templates/js/stock.js:1417 msgid "Uninstall Stock Item" msgstr "" @@ -7267,56 +7411,56 @@ msgstr "" msgid "Purchasable" msgstr "" -#: templates/js/tables.js:321 +#: templates/js/tables.js:323 msgid "Loading data" msgstr "" -#: templates/js/tables.js:324 +#: templates/js/tables.js:326 msgid "rows per page" msgstr "" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "Showing" msgstr "" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "to" msgstr "" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "of" msgstr "" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "rows" msgstr "" -#: templates/js/tables.js:330 templates/search_form.html:6 +#: templates/js/tables.js:332 templates/search_form.html:6 #: templates/search_form.html:8 msgid "Search" msgstr "" -#: templates/js/tables.js:333 +#: templates/js/tables.js:335 msgid "No matching results" msgstr "" -#: templates/js/tables.js:336 +#: templates/js/tables.js:338 msgid "Hide/Show pagination" msgstr "" -#: templates/js/tables.js:339 +#: templates/js/tables.js:341 msgid "Refresh" msgstr "" -#: templates/js/tables.js:342 +#: templates/js/tables.js:344 msgid "Toggle" msgstr "" -#: templates/js/tables.js:345 +#: templates/js/tables.js:347 msgid "Columns" msgstr "" -#: templates/js/tables.js:348 +#: templates/js/tables.js:350 msgid "All" msgstr "" @@ -7560,35 +7704,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:170 +#: users/models.py:174 msgid "Permission set" msgstr "" -#: users/models.py:178 +#: users/models.py:182 msgid "Group" msgstr "" -#: users/models.py:181 +#: users/models.py:185 msgid "View" msgstr "" -#: users/models.py:181 +#: users/models.py:185 msgid "Permission to view items" msgstr "" -#: users/models.py:183 +#: users/models.py:187 msgid "Permission to add items" msgstr "" -#: users/models.py:185 +#: users/models.py:189 msgid "Change" msgstr "" -#: users/models.py:185 +#: users/models.py:189 msgid "Permissions to edit items" msgstr "" -#: users/models.py:187 +#: users/models.py:191 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po index d61e19d068..0b04ba9921 100644 --- a/InvenTree/locale/ru/LC_MESSAGES/django.po +++ b/InvenTree/locale/ru/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-06-16 22:40+0000\n" -"PO-Revision-Date: 2021-06-16 22:41\n" +"POT-Creation-Date: 2021-06-24 21:38+0000\n" +"PO-Revision-Date: 2021-06-24 21:40\n" "Last-Translator: \n" "Language-Team: Russian\n" "Language: ru_RU\n" @@ -77,7 +77,7 @@ msgstr "Выбрать категорию" msgid "Duplicate serial: {n}" msgstr "Дублировать серийный номер: {n}" -#: InvenTree/helpers.py:384 order/models.py:247 order/models.py:357 +#: InvenTree/helpers.py:384 order/models.py:248 order/models.py:358 #: stock/views.py:1795 msgid "Invalid quantity provided" msgstr "недопустимое количество" @@ -122,9 +122,9 @@ msgstr "Комментарий" msgid "File comment" msgstr "Комментарий к файлу" -#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1999 +#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:2022 #: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/stock.js:1154 +#: templates/js/stock.js:1179 msgid "User" msgstr "Пользователь" @@ -132,34 +132,35 @@ msgstr "Пользователь" msgid "upload date" msgstr "дата загрузки" -#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102 -#: part/models.py:686 part/models.py:2140 part/templates/part/params.html:27 -#: report/models.py:179 templates/InvenTree/search.html:137 -#: templates/InvenTree/search.html:289 templates/js/part.js:118 -#: templates/js/part.js:641 templates/js/stock.js:947 +#: InvenTree/models.py:107 InvenTree/models.py:108 company/models.py:396 +#: label/models.py:102 part/models.py:671 part/models.py:2163 +#: part/templates/part/params.html:27 report/models.py:180 +#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289 +#: templates/js/company.js:235 templates/js/part.js:118 +#: templates/js/part.js:642 templates/js/stock.js:972 msgid "Name" msgstr "Название" #: InvenTree/models.py:114 build/models.py:135 #: build/templates/build/detail.html:21 company/models.py:339 -#: company/models.py:491 company/templates/company/detail.html:27 +#: company/models.py:532 company/templates/company/detail.html:27 #: company/templates/company/manufacturer_part_base.html:72 #: company/templates/company/supplier_part_base.html:71 #: company/templates/company/supplier_part_detail.html:31 label/models.py:109 -#: order/models.py:103 order/templates/order/purchase_order_detail.html:147 -#: part/models.py:710 part/templates/part/detail.html:54 -#: part/templates/part/set_category.html:14 report/models.py:192 -#: report/models.py:505 report/models.py:544 +#: order/models.py:104 order/templates/order/purchase_order_detail.html:147 +#: part/models.py:695 part/templates/part/detail.html:54 +#: part/templates/part/set_category.html:14 report/models.py:193 +#: report/models.py:530 report/models.py:569 #: report/templates/report/inventree_build_order_base.html:118 #: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224 #: templates/InvenTree/search.html:296 #: templates/InvenTree/settings/header.html:9 templates/js/bom.js:190 -#: templates/js/build.js:746 templates/js/build.js:1014 +#: templates/js/build.js:833 templates/js/build.js:1101 #: templates/js/company.js:56 templates/js/order.js:183 #: templates/js/order.js:280 templates/js/part.js:177 templates/js/part.js:260 -#: templates/js/part.js:437 templates/js/part.js:653 templates/js/part.js:721 -#: templates/js/stock.js:552 templates/js/stock.js:959 -#: templates/js/stock.js:1004 +#: templates/js/part.js:437 templates/js/part.js:654 templates/js/part.js:722 +#: templates/js/stock.js:557 templates/js/stock.js:984 +#: templates/js/stock.js:1029 msgid "Description" msgstr "Описание" @@ -191,15 +192,15 @@ msgstr "Польский" msgid "Turkish" msgstr "Турецкий" -#: InvenTree/status.py:93 +#: InvenTree/status.py:94 msgid "Background worker check failed" msgstr "Проверка фонового работника не удалась" -#: InvenTree/status.py:97 +#: InvenTree/status.py:98 msgid "Email backend not configured" msgstr "Сервер электронной почты не настроен" -#: InvenTree/status.py:100 +#: InvenTree/status.py:101 msgid "InvenTree system health checks failed" msgstr "Ошибка проверки состояния системы InvenTree" @@ -372,27 +373,27 @@ msgstr "Перегрузка не может превысить 100%" msgid "Overage must be an integer value or a percentage" msgstr "Превышение должно быть целым числом или процентом" -#: InvenTree/views.py:605 +#: InvenTree/views.py:608 msgid "Delete Item" msgstr "Удалить элемент" -#: InvenTree/views.py:654 +#: InvenTree/views.py:657 msgid "Check box to confirm item deletion" msgstr "Установите флажок для подтверждения удаления элемента" -#: InvenTree/views.py:669 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:672 templates/InvenTree/settings/user.html:18 msgid "Edit User Information" msgstr "Редактировать информацию о пользователе" -#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:683 templates/InvenTree/settings/user.html:22 msgid "Set Password" msgstr "Установить пароль" -#: InvenTree/views.py:699 +#: InvenTree/views.py:702 msgid "Password fields must match" msgstr "Пароли должны совпадать" -#: InvenTree/views.py:950 templates/navbar.html:95 +#: InvenTree/views.py:953 templates/navbar.html:95 msgid "System Information" msgstr "Информация о системе" @@ -445,11 +446,11 @@ msgid "Order target date" msgstr "Срок выполнения заказа" #: build/forms.py:42 build/templates/build/build_base.html:146 -#: build/templates/build/detail.html:121 order/forms.py:109 order/forms.py:144 +#: build/templates/build/detail.html:121 order/forms.py:114 order/forms.py:149 #: order/templates/order/order_base.html:124 #: order/templates/order/sales_order_base.html:119 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/build.js:793 templates/js/order.js:200 +#: templates/js/build.js:880 templates/js/order.js:200 #: templates/js/order.js:298 msgid "Target Date" msgstr "Целевая дата" @@ -462,22 +463,21 @@ msgstr "Целевая дата для сборки. Сборка будет п #: build/templates/build/allocation_card.html:23 #: build/templates/build/auto_allocate.html:17 #: build/templates/build/build_base.html:133 -#: build/templates/build/detail.html:31 common/models.py:699 -#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77 -#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262 -#: order/forms.py:279 order/models.py:616 order/models.py:817 +#: build/templates/build/detail.html:31 common/models.py:720 +#: company/forms.py:191 company/templates/company/supplier_part_pricing.html:77 +#: order/forms.py:193 order/forms.py:211 order/forms.py:246 order/forms.py:268 +#: order/forms.py:285 order/models.py:617 order/models.py:841 #: order/templates/order/order_wizard/match_parts.html:29 -#: order/templates/order/order_wizard/select_parts.html:32 +#: order/templates/order/order_wizard/select_parts.html:34 #: order/templates/order/purchase_order_detail.html:179 #: order/templates/order/sales_order_detail.html:70 #: order/templates/order/sales_order_detail.html:77 #: order/templates/order/sales_order_detail.html:162 -#: order/templates/order/sales_order_detail.html:230 part/forms.py:342 -#: part/forms.py:372 part/forms.py:388 part/models.py:2270 -#: part/templates/part/allocation.html:19 -#: part/templates/part/allocation.html:53 -#: part/templates/part/order_prices.html:175 -#: part/templates/part/part_pricing.html:13 +#: order/templates/order/sales_order_detail.html:234 part/forms.py:342 +#: part/forms.py:372 part/forms.py:388 part/forms.py:404 part/models.py:2293 +#: part/templates/part/internal_prices.html:98 +#: part/templates/part/order_prices.html:202 +#: part/templates/part/part_pricing.html:16 #: part/templates/part/sale_prices.html:85 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -486,9 +486,10 @@ msgstr "Целевая дата для сборки. Сборка будет п #: stock/forms.py:175 stock/forms.py:308 #: stock/templates/stock/item_base.html:255 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364 -#: templates/js/bom.js:205 templates/js/build.js:486 templates/js/build.js:1024 -#: templates/js/part.js:795 templates/js/stock.js:1139 -#: templates/js/stock.js:1358 +#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:571 +#: templates/js/build.js:1111 templates/js/order.js:393 +#: templates/js/part.js:796 templates/js/stock.js:1164 +#: templates/js/stock.js:1383 msgid "Quantity" msgstr "Количество" @@ -500,7 +501,7 @@ msgstr "Количество элементов для сборки" msgid "Enter quantity for build output" msgstr "Введите количество для вывода сборки" -#: build/forms.py:95 order/forms.py:234 stock/forms.py:118 +#: build/forms.py:95 order/forms.py:240 stock/forms.py:118 msgid "Serial Numbers" msgstr "Серийные номера" @@ -529,12 +530,12 @@ msgid "Mark build as complete" msgstr "Пометить сборку как завершенную" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 -#: order/forms.py:82 stock/forms.py:347 -#: stock/templates/stock/item_base.html:285 +#: stock/forms.py:347 stock/templates/stock/item_base.html:285 #: stock/templates/stock/stock_adjust.html:17 #: templates/InvenTree/search.html:260 templates/js/barcode.js:363 -#: templates/js/barcode.js:531 templates/js/build.js:500 -#: templates/js/stock.js:639 templates/js/stock.js:1031 +#: templates/js/barcode.js:531 templates/js/build.js:218 +#: templates/js/build.js:585 templates/js/order.js:378 +#: templates/js/stock.js:643 templates/js/stock.js:1056 msgid "Location" msgstr "Расположение" @@ -543,13 +544,13 @@ msgid "Location of completed parts" msgstr "Расположение укомплектованных частей" #: build/forms.py:215 build/templates/build/build_base.html:138 -#: build/templates/build/detail.html:59 order/models.py:468 +#: build/templates/build/detail.html:59 order/models.py:469 #: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:403 templates/InvenTree/search.html:252 -#: templates/js/barcode.js:119 templates/js/build.js:780 +#: stock/templates/stock/item_base.html:408 templates/InvenTree/search.html:252 +#: templates/js/barcode.js:119 templates/js/build.js:867 #: templates/js/order.js:187 templates/js/order.js:285 -#: templates/js/stock.js:626 templates/js/stock.js:1108 -#: templates/js/stock.js:1374 +#: templates/js/stock.js:630 templates/js/stock.js:1133 +#: templates/js/stock.js:1399 msgid "Status" msgstr "Статус" @@ -583,16 +584,16 @@ msgstr "Выберите количество запасов для распре #: build/models.py:66 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:73 -#: part/templates/part/allocation.html:23 #: report/templates/report/inventree_build_order_base.html:106 +#: templates/js/build.js:195 msgid "Build Order" msgstr "Порядок сборки" #: build/models.py:67 build/templates/build/index.html:8 #: build/templates/build/index.html:15 order/templates/order/so_builds.html:12 #: order/templates/order/so_navbar.html:19 -#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:55 -#: part/templates/part/navbar.html:58 templates/InvenTree/index.html:183 +#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:57 +#: part/templates/part/navbar.html:60 templates/InvenTree/index.html:183 #: templates/InvenTree/search.html:185 #: templates/InvenTree/settings/tabs.html:34 users/models.py:43 msgid "Build Orders" @@ -602,12 +603,12 @@ msgstr "Порядок сборки" msgid "Build Order Reference" msgstr "Ссылка на заказ" -#: build/models.py:128 order/models.py:101 order/models.py:618 +#: build/models.py:128 order/models.py:102 order/models.py:619 #: order/templates/order/purchase_order_detail.html:174 -#: order/templates/order/sales_order_detail.html:225 part/models.py:2279 +#: order/templates/order/sales_order_detail.html:229 part/models.py:2302 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197 -#: templates/js/build.js:575 templates/js/build.js:1018 +#: templates/js/build.js:660 templates/js/build.js:1105 msgid "Reference" msgstr "" @@ -626,27 +627,27 @@ msgstr "" #: build/models.py:153 build/templates/build/auto_allocate.html:16 #: build/templates/build/build_base.html:128 -#: build/templates/build/detail.html:26 company/models.py:622 -#: order/models.py:660 order/models.py:693 -#: order/templates/order/order_wizard/select_parts.html:30 +#: build/templates/build/detail.html:26 company/models.py:663 +#: order/models.py:661 order/models.py:717 +#: order/templates/order/order_wizard/select_parts.html:32 #: order/templates/order/purchase_order_detail.html:132 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:213 part/models.py:321 -#: part/models.py:1967 part/models.py:1979 part/models.py:1997 -#: part/models.py:2072 part/models.py:2168 part/models.py:2254 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29 +#: order/templates/order/sales_order_detail.html:214 part/models.py:321 +#: part/models.py:1975 part/models.py:1987 part/models.py:2002 +#: part/models.py:2020 part/models.py:2095 part/models.py:2191 +#: part/models.py:2277 part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 part/templates/part/related.html:29 #: part/templates/part/set_category.html:13 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 #: templates/InvenTree/search.html:112 templates/InvenTree/search.html:210 #: templates/js/barcode.js:362 templates/js/bom.js:163 -#: templates/js/build.js:466 templates/js/build.js:751 -#: templates/js/build.js:991 templates/js/company.js:140 -#: templates/js/company.js:238 templates/js/part.js:241 -#: templates/js/part.js:404 templates/js/stock.js:521 -#: templates/js/stock.js:1346 +#: templates/js/build.js:551 templates/js/build.js:838 +#: templates/js/build.js:1078 templates/js/company.js:140 +#: templates/js/company.js:339 templates/js/part.js:241 +#: templates/js/part.js:404 templates/js/stock.js:526 +#: templates/js/stock.js:1371 msgid "Part" msgstr "" @@ -710,16 +711,16 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:220 order/models.py:107 part/models.py:882 +#: build/models.py:220 order/models.py:108 part/models.py:867 #: part/templates/part/detail.html:126 templates/js/order.js:293 msgid "Creation Date" msgstr "" -#: build/models.py:224 order/models.py:474 +#: build/models.py:224 order/models.py:475 msgid "Target completion date" msgstr "" -#: build/models.py:228 order/models.py:220 templates/js/build.js:798 +#: build/models.py:228 order/models.py:221 templates/js/build.js:885 msgid "Completion Date" msgstr "" @@ -736,9 +737,9 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:251 build/templates/build/build_base.html:184 -#: build/templates/build/detail.html:105 order/models.py:121 +#: build/templates/build/detail.html:105 order/models.py:122 #: order/templates/order/order_base.html:138 -#: order/templates/order/sales_order_base.html:140 part/models.py:886 +#: order/templates/order/sales_order_base.html:140 part/models.py:871 #: report/templates/report/inventree_build_order_base.html:159 msgid "Responsible" msgstr "" @@ -757,26 +758,26 @@ msgstr "" msgid "External Link" msgstr "" -#: build/models.py:258 part/models.py:744 stock/models.py:462 +#: build/models.py:258 part/models.py:729 stock/models.py:462 msgid "Link to external URL" msgstr "" #: build/models.py:262 build/templates/build/navbar.html:53 -#: company/models.py:132 company/models.py:498 +#: company/models.py:132 company/models.py:539 #: company/templates/company/navbar.html:70 -#: company/templates/company/navbar.html:73 order/models.py:125 -#: order/models.py:620 order/templates/order/po_navbar.html:29 -#: order/templates/order/po_navbar.html:32 -#: order/templates/order/purchase_order_detail.html:239 -#: order/templates/order/sales_order_detail.html:278 +#: company/templates/company/navbar.html:73 order/models.py:126 +#: order/models.py:621 order/templates/order/po_navbar.html:38 +#: order/templates/order/po_navbar.html:41 +#: order/templates/order/purchase_order_detail.html:243 +#: order/templates/order/sales_order_detail.html:309 #: order/templates/order/so_navbar.html:33 -#: order/templates/order/so_navbar.html:36 part/models.py:871 -#: part/templates/part/navbar.html:134 +#: order/templates/order/so_navbar.html:36 part/models.py:856 +#: part/templates/part/navbar.html:142 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377 #: stock/models.py:532 stock/models.py:1667 stock/models.py:1769 #: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37 -#: templates/js/bom.js:356 templates/js/stock.js:141 templates/js/stock.js:674 +#: templates/js/bom.js:356 templates/js/stock.js:141 templates/js/stock.js:699 msgid "Notes" msgstr "" @@ -809,11 +810,11 @@ msgstr "" msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1188 order/models.py:791 +#: build/models.py:1188 order/models.py:815 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1192 order/models.py:794 +#: build/models.py:1192 order/models.py:818 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -827,7 +828,7 @@ msgid "Selected stock item not found in BOM for part '{p}'" msgstr "" #: build/models.py:1316 stock/templates/stock/item_base.html:317 -#: templates/InvenTree/search.html:183 templates/js/build.js:724 +#: templates/InvenTree/search.html:183 templates/js/build.js:811 #: templates/navbar.html:29 msgid "Build" msgstr "" @@ -836,15 +837,13 @@ msgstr "" msgid "Build to allocate parts" msgstr "" -#: build/models.py:1333 part/templates/part/allocation.html:18 -#: part/templates/part/allocation.html:24 -#: part/templates/part/allocation.html:31 -#: part/templates/part/allocation.html:49 -#: stock/templates/stock/item_base.html:8 +#: build/models.py:1333 stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:31 #: stock/templates/stock/item_base.html:339 -#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:841 -#: templates/js/stock.js:1090 +#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:206 +#: templates/js/build.js:211 templates/js/build.js:928 +#: templates/js/order.js:366 templates/js/order.js:371 +#: templates/js/stock.js:1115 msgid "Stock Item" msgstr "" @@ -880,7 +879,7 @@ msgstr "" msgid "Auto Allocate" msgstr "" -#: build/templates/build/allocate.html:25 templates/js/build.js:656 +#: build/templates/build/allocate.html:25 templates/js/build.js:743 msgid "Unallocate stock" msgstr "" @@ -917,15 +916,15 @@ msgstr "" #: order/templates/order/sales_order_detail.html:160 #: report/templates/report/inventree_test_report_base.html:75 #: stock/models.py:454 stock/templates/stock/item_base.html:249 -#: templates/js/build.js:484 +#: templates/js/build.js:569 msgid "Serial Number" msgstr "" #: build/templates/build/attachments.html:12 #: build/templates/build/navbar.html:43 build/templates/build/navbar.html:46 -#: order/templates/order/po_navbar.html:26 -#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:125 -#: part/templates/part/navbar.html:128 stock/templates/stock/navbar.html:47 +#: order/templates/order/po_navbar.html:35 +#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:133 +#: part/templates/part/navbar.html:136 stock/templates/stock/navbar.html:47 #: stock/templates/stock/navbar.html:50 msgid "Attachments" msgstr "" @@ -1037,11 +1036,10 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:170 -#: build/templates/build/detail.html:84 order/models.py:691 +#: build/templates/build/detail.html:84 order/models.py:715 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:35 #: order/templates/order/sales_order_ship.html:25 -#: part/templates/part/allocation.html:30 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 #: stock/templates/stock/item_base.html:279 templates/js/order.js:245 @@ -1185,7 +1183,10 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:46 stock/forms.py:169 stock/forms.py:375 +#: build/templates/build/detail.html:46 order/forms.py:85 order/models.py:678 +#: order/templates/order/purchase_order_detail.html:239 +#: order/templates/order/receive_parts.html:25 stock/forms.py:169 +#: stock/forms.py:375 msgid "Destination" msgstr "" @@ -1194,15 +1195,15 @@ msgid "Destination location not specified" msgstr "" #: build/templates/build/detail.html:70 -#: stock/templates/stock/item_base.html:303 templates/js/stock.js:634 -#: templates/js/stock.js:1381 templates/js/table_filters.js:112 +#: stock/templates/stock/item_base.html:303 templates/js/stock.js:638 +#: templates/js/stock.js:1406 templates/js/table_filters.js:112 #: templates/js/table_filters.js:206 msgid "Batch" msgstr "" #: build/templates/build/detail.html:116 #: order/templates/order/order_base.html:111 -#: order/templates/order/sales_order_base.html:113 templates/js/build.js:788 +#: order/templates/order/sales_order_base.html:113 templates/js/build.js:875 msgid "Created" msgstr "" @@ -1210,7 +1211,7 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:132 templates/js/build.js:766 +#: build/templates/build/detail.html:132 templates/js/build.js:853 msgid "Completed" msgstr "" @@ -1248,9 +1249,9 @@ msgstr "" #: build/templates/build/navbar.html:15 #: company/templates/company/navbar.html:15 -#: order/templates/order/po_navbar.html:14 -#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15 -#: templates/js/stock.js:1019 +#: order/templates/order/po_navbar.html:15 +#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:17 +#: templates/js/stock.js:1044 msgid "Details" msgstr "" @@ -1285,8 +1286,8 @@ msgstr "" #: build/templates/build/notes.html:26 company/templates/company/notes.html:24 #: order/templates/order/order_notes.html:27 #: order/templates/order/sales_order_notes.html:29 -#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:482 -#: stock/templates/stock/item_base.html:492 +#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:487 +#: stock/templates/stock/item_base.html:497 #: stock/templates/stock/item_notes.html:26 msgid "Save" msgstr "" @@ -1411,8 +1412,8 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:585 -#: templates/js/build.js:848 templates/js/build.js:1031 +#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:670 +#: templates/js/build.js:935 templates/js/build.js:1118 msgid "Available" msgstr "" @@ -1598,8 +1599,8 @@ msgstr "" msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:153 part/models.py:2170 part/templates/part/detail.html:160 -#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25 +#: common/models.py:153 part/models.py:2193 part/templates/part/detail.html:160 +#: report/models.py:186 stock/forms.py:259 templates/js/table_filters.js:25 #: templates/js/table_filters.js:315 msgid "Template" msgstr "" @@ -1608,7 +1609,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:160 part/models.py:834 part/templates/part/detail.html:170 +#: common/models.py:160 part/models.py:819 part/templates/part/detail.html:170 #: templates/js/table_filters.js:128 templates/js/table_filters.js:327 msgid "Assembly" msgstr "" @@ -1617,7 +1618,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:167 part/models.py:840 part/templates/part/detail.html:180 +#: common/models.py:167 part/models.py:825 part/templates/part/detail.html:180 #: templates/js/table_filters.js:331 msgid "Component" msgstr "" @@ -1626,7 +1627,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:174 part/models.py:851 part/templates/part/detail.html:200 +#: common/models.py:174 part/models.py:836 part/templates/part/detail.html:200 msgid "Purchaseable" msgstr "" @@ -1634,7 +1635,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:181 part/models.py:856 part/templates/part/detail.html:210 +#: common/models.py:181 part/models.py:841 part/templates/part/detail.html:210 #: templates/js/table_filters.js:339 msgid "Salable" msgstr "" @@ -1643,7 +1644,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:188 part/models.py:846 part/templates/part/detail.html:190 +#: common/models.py:188 part/models.py:831 part/templates/part/detail.html:190 #: templates/js/table_filters.js:33 templates/js/table_filters.js:343 msgid "Trackable" msgstr "" @@ -1652,7 +1653,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:195 part/models.py:866 part/templates/part/detail.html:150 +#: common/models.py:195 part/models.py:851 part/templates/part/detail.html:150 #: templates/js/table_filters.js:29 msgid "Virtual" msgstr "" @@ -1669,160 +1670,185 @@ msgstr "" msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:209 templates/stats.html:25 -msgid "Debug Mode" +#: common/models.py:209 +msgid "Show Price in Forms" msgstr "" #: common/models.py:210 -msgid "Generate reports in debug mode (HTML output)" +msgid "Display part price in some forms" msgstr "" #: common/models.py:216 -msgid "Page Size" +msgid "Internal Prices" msgstr "" #: common/models.py:217 +msgid "Enable internal prices for parts" +msgstr "" + +#: common/models.py:223 +msgid "Internal Price as BOM-Price" +msgstr "" + +#: common/models.py:224 +msgid "Use the internal price (if set) in BOM-price calculations" +msgstr "" + +#: common/models.py:230 templates/stats.html:25 +msgid "Debug Mode" +msgstr "" + +#: common/models.py:231 +msgid "Generate reports in debug mode (HTML output)" +msgstr "" + +#: common/models.py:237 +msgid "Page Size" +msgstr "" + +#: common/models.py:238 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:227 +#: common/models.py:248 msgid "Test Reports" msgstr "" -#: common/models.py:228 +#: common/models.py:249 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:234 +#: common/models.py:255 msgid "Stock Expiry" msgstr "" -#: common/models.py:235 +#: common/models.py:256 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:241 +#: common/models.py:262 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:242 +#: common/models.py:263 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:248 +#: common/models.py:269 msgid "Stock Stale Time" msgstr "" -#: common/models.py:249 +#: common/models.py:270 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:251 part/templates/part/detail.html:121 +#: common/models.py:272 part/templates/part/detail.html:121 msgid "days" msgstr "" -#: common/models.py:256 +#: common/models.py:277 msgid "Build Expired Stock" msgstr "" -#: common/models.py:257 +#: common/models.py:278 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:263 +#: common/models.py:284 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:264 +#: common/models.py:285 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:270 +#: common/models.py:291 msgid "Group by Part" msgstr "" -#: common/models.py:271 +#: common/models.py:292 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:277 +#: common/models.py:298 msgid "Recent Stock Count" msgstr "" -#: common/models.py:278 +#: common/models.py:299 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:284 +#: common/models.py:305 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:285 +#: common/models.py:306 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:290 +#: common/models.py:311 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:291 +#: common/models.py:312 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:295 +#: common/models.py:316 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:296 +#: common/models.py:317 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:301 +#: common/models.py:322 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:302 +#: common/models.py:323 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:525 +#: common/models.py:546 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:527 +#: common/models.py:548 msgid "Settings value" msgstr "" -#: common/models.py:562 +#: common/models.py:583 msgid "Must be an integer value" msgstr "" -#: common/models.py:585 +#: common/models.py:606 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:596 +#: common/models.py:617 msgid "Value must be an integer value" msgstr "" -#: common/models.py:619 +#: common/models.py:640 msgid "Key string must be unique" msgstr "" -#: common/models.py:700 company/forms.py:177 +#: common/models.py:721 company/forms.py:192 msgid "Price break quantity" msgstr "" -#: common/models.py:708 company/templates/company/supplier_part_pricing.html:82 +#: common/models.py:729 company/templates/company/supplier_part_pricing.html:82 +#: part/templates/part/internal_prices.html:103 #: part/templates/part/sale_prices.html:90 templates/js/bom.js:271 msgid "Price" msgstr "" -#: common/models.py:709 +#: common/models.py:730 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:798 +#: common/models.py:822 msgid "Default" msgstr "" @@ -1843,7 +1869,9 @@ msgid "Supplied value must be a boolean" msgstr "" #: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42 -#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27 +#: order/templates/order/po_navbar.html:19 +#: order/templates/order/po_navbar.html:22 order/views.py:582 +#: part/templates/part/bom_upload/upload_file.html:27 msgid "Upload File" msgstr "" @@ -1877,29 +1905,29 @@ msgstr "" msgid "Image URL" msgstr "" -#: company/forms.py:118 templates/js/part.js:786 +#: company/forms.py:133 templates/js/part.js:787 msgid "Single Price" msgstr "" -#: company/forms.py:120 +#: company/forms.py:135 msgid "Single quantity price" msgstr "" -#: company/forms.py:128 company/models.py:321 +#: company/forms.py:143 company/models.py:321 msgid "Select manufacturer" msgstr "" -#: company/forms.py:134 company/models.py:328 +#: company/forms.py:149 company/models.py:328 msgid "Manufacturer Part Number" msgstr "" -#: company/forms.py:136 company/models.py:327 +#: company/forms.py:151 company/models.py:327 #: company/templates/company/manufacturer_part_base.html:89 #: company/templates/company/manufacturer_part_detail.html:26 #: company/templates/company/supplier_part_base.html:102 #: company/templates/company/supplier_part_detail.html:35 #: order/templates/order/purchase_order_detail.html:162 part/bom.py:171 -#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307 +#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:408 msgid "MPN" msgstr "" @@ -1952,11 +1980,11 @@ msgstr "" msgid "Point of contact" msgstr "" -#: company/models.py:121 company/models.py:333 company/models.py:485 -#: order/models.py:105 part/models.py:743 +#: company/models.py:121 company/models.py:333 company/models.py:526 +#: order/models.py:106 part/models.py:728 #: report/templates/report/inventree_build_order_base.html:165 -#: templates/js/company.js:188 templates/js/company.js:318 -#: templates/js/part.js:497 +#: templates/js/company.js:188 templates/js/company.js:419 +#: templates/js/part.js:498 msgid "Link" msgstr "" @@ -1964,7 +1992,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:129 part/models.py:753 +#: company/models.py:129 part/models.py:738 msgid "Image" msgstr "" @@ -1992,12 +2020,12 @@ msgstr "" msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:305 company/models.py:456 stock/models.py:407 +#: company/models.py:305 company/models.py:497 stock/models.py:407 #: stock/templates/stock/item_base.html:235 msgid "Base Part" msgstr "" -#: company/models.py:309 company/models.py:460 order/views.py:1587 +#: company/models.py:309 company/models.py:501 order/views.py:1597 msgid "Select part" msgstr "" @@ -2008,7 +2036,7 @@ msgstr "" #: company/templates/company/supplier_part_detail.html:34 part/bom.py:170 #: part/bom.py:241 stock/templates/stock/item_base.html:352 #: templates/js/company.js:44 templates/js/company.js:165 -#: templates/js/company.js:289 +#: templates/js/company.js:390 msgid "Manufacturer" msgstr "" @@ -2020,87 +2048,112 @@ msgstr "" msgid "Manufacturer part description" msgstr "" -#: company/models.py:466 company/templates/company/detail.html:62 +#: company/models.py:390 company/models.py:520 +#: company/templates/company/manufacturer_part_base.html:6 +#: company/templates/company/manufacturer_part_base.html:19 +#: stock/templates/stock/item_base.html:362 +msgid "Manufacturer Part" +msgstr "" + +#: company/models.py:397 +msgid "Parameter name" +msgstr "" + +#: company/models.py:403 part/templates/part/params.html:28 +#: report/templates/report/inventree_test_report_base.html:90 +#: stock/models.py:1756 templates/InvenTree/settings/header.html:8 +#: templates/js/company.js:241 templates/js/stock.js:137 +msgid "Value" +msgstr "" + +#: company/models.py:404 +msgid "Parameter value" +msgstr "" + +#: company/models.py:410 part/models.py:813 part/models.py:2165 +#: part/templates/part/detail.html:106 part/templates/part/params.html:29 +#: templates/js/company.js:247 +msgid "Units" +msgstr "" + +#: company/models.py:411 +msgid "Parameter units" +msgstr "" + +#: company/models.py:507 company/templates/company/detail.html:62 #: company/templates/company/supplier_part_base.html:84 -#: company/templates/company/supplier_part_detail.html:25 order/models.py:192 +#: company/templates/company/supplier_part_detail.html:25 order/models.py:193 #: order/templates/order/order_base.html:92 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175 -#: part/bom.py:286 stock/templates/stock/item_base.html:364 -#: templates/js/company.js:48 templates/js/company.js:263 +#: part/bom.py:286 stock/templates/stock/item_base.html:369 +#: templates/js/company.js:48 templates/js/company.js:364 #: templates/js/order.js:170 msgid "Supplier" msgstr "" -#: company/models.py:467 +#: company/models.py:508 msgid "Select supplier" msgstr "" -#: company/models.py:472 company/templates/company/supplier_part_base.html:88 +#: company/models.py:513 company/templates/company/supplier_part_base.html:88 #: company/templates/company/supplier_part_detail.html:26 #: order/templates/order/purchase_order_detail.html:153 part/bom.py:176 #: part/bom.py:287 msgid "SKU" msgstr "" -#: company/models.py:473 +#: company/models.py:514 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:479 -#: company/templates/company/manufacturer_part_base.html:6 -#: company/templates/company/manufacturer_part_base.html:19 -#: stock/templates/stock/item_base.html:357 -msgid "Manufacturer Part" -msgstr "" - -#: company/models.py:480 +#: company/models.py:521 msgid "Select manufacturer part" msgstr "" -#: company/models.py:486 +#: company/models.py:527 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:492 +#: company/models.py:533 msgid "Supplier part description" msgstr "" -#: company/models.py:497 company/templates/company/supplier_part_base.html:116 -#: company/templates/company/supplier_part_detail.html:38 part/models.py:2282 +#: company/models.py:538 company/templates/company/supplier_part_base.html:116 +#: company/templates/company/supplier_part_detail.html:38 part/models.py:2305 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" -#: company/models.py:501 part/models.py:1614 +#: company/models.py:542 part/models.py:1606 msgid "base cost" msgstr "" -#: company/models.py:501 part/models.py:1614 +#: company/models.py:542 part/models.py:1606 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:503 company/templates/company/supplier_part_base.html:109 +#: company/models.py:544 company/templates/company/supplier_part_base.html:109 #: stock/models.py:431 stock/templates/stock/item_base.html:310 -#: templates/js/stock.js:670 +#: templates/js/stock.js:695 msgid "Packaging" msgstr "" -#: company/models.py:503 +#: company/models.py:544 msgid "Part packaging" msgstr "" -#: company/models.py:505 part/models.py:1616 +#: company/models.py:546 part/models.py:1608 msgid "multiple" msgstr "" -#: company/models.py:505 +#: company/models.py:546 msgid "Order multiple" msgstr "" #: company/templates/company/assigned_stock.html:10 #: company/templates/company/navbar.html:62 -#: company/templates/company/navbar.html:65 templates/js/build.js:477 +#: company/templates/company/navbar.html:65 templates/js/build.js:562 msgid "Assigned Stock" msgstr "" @@ -2165,11 +2218,11 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/detail.html:67 order/models.py:463 +#: company/templates/company/detail.html:67 order/models.py:464 #: order/templates/order/sales_order_base.html:94 stock/models.py:449 #: stock/models.py:450 stock/templates/stock/item_base.html:262 #: templates/js/company.js:40 templates/js/order.js:267 -#: templates/js/stock.js:1072 +#: templates/js/stock.js:1097 msgid "Customer" msgstr "" @@ -2215,7 +2268,7 @@ msgstr "" #: company/templates/company/detail_manufacturer_part.html:66 #: company/templates/company/detail_supplier_part.html:66 #: part/templates/part/bom.html:159 part/templates/part/category.html:118 -#: templates/js/stock.js:1287 +#: templates/js/stock.js:1312 msgid "New Part" msgstr "" @@ -2248,13 +2301,12 @@ msgstr "" #: company/templates/company/detail_supplier_part.html:11 #: company/templates/company/manufacturer_part_navbar.html:11 -#: company/templates/company/manufacturer_part_suppliers.html:10 #: templates/InvenTree/search.html:164 msgid "Supplier Parts" msgstr "" #: company/templates/company/detail_supplier_part.html:21 -#: order/templates/order/order_wizard/select_parts.html:42 +#: order/templates/order/order_wizard/select_parts.html:44 #: order/templates/order/purchase_order_detail.html:50 msgid "Create new supplier part" msgstr "" @@ -2262,12 +2314,12 @@ msgstr "" #: company/templates/company/detail_supplier_part.html:22 #: company/templates/company/manufacturer_part_suppliers.html:17 #: order/templates/order/purchase_order_detail.html:49 -#: part/templates/part/supplier.html:17 templates/js/stock.js:1293 +#: part/templates/part/supplier.html:17 templates/js/stock.js:1318 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail_supplier_part.html:72 -#: company/templates/company/manufacturer_part_suppliers.html:47 +#: company/templates/company/manufacturer_part_suppliers.html:82 #: company/views.py:64 order/templates/order/purchase_orders.html:185 #: part/templates/part/supplier.html:50 msgid "New Supplier" @@ -2319,8 +2371,9 @@ msgid "There are %(count)s suppliers defined for this manufacturer part. If you msgstr "" #: company/templates/company/manufacturer_part_navbar.html:14 -#: company/views.py:63 part/templates/part/navbar.html:84 -#: part/templates/part/navbar.html:87 templates/InvenTree/search.html:316 +#: company/templates/company/manufacturer_part_suppliers.html:10 +#: company/views.py:63 part/templates/part/navbar.html:86 +#: part/templates/part/navbar.html:89 templates/InvenTree/search.html:316 #: templates/navbar.html:35 msgid "Suppliers" msgstr "" @@ -2332,13 +2385,13 @@ msgstr "" #: company/templates/company/manufacturer_part_navbar.html:22 #: company/templates/company/navbar.html:41 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:36 stock/api.py:54 +#: part/templates/part/navbar.html:38 stock/api.py:54 #: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196 #: templates/InvenTree/search.html:232 #: templates/InvenTree/settings/tabs.html:31 templates/js/part.js:181 -#: templates/js/part.js:305 templates/js/part.js:464 templates/js/stock.js:561 +#: templates/js/part.js:305 templates/js/part.js:465 templates/js/stock.js:566 #: templates/navbar.html:26 msgid "Stock" msgstr "" @@ -2360,11 +2413,25 @@ msgstr "" #: company/templates/company/manufacturer_part_suppliers.html:22 #: part/templates/part/manufacturer.html:24 part/templates/part/params.html:44 #: part/templates/part/related.html:44 part/templates/part/supplier.html:22 -#: stock/views.py:1002 users/models.py:187 +#: stock/views.py:1002 users/models.py:191 msgid "Delete" msgstr "" -#: company/templates/company/manufacturer_part_suppliers.html:48 +#: company/templates/company/manufacturer_part_suppliers.html:37 +#: part/templates/part/category_navbar.html:34 +#: part/templates/part/category_navbar.html:37 +#: part/templates/part/navbar.html:24 +msgid "Parameters" +msgstr "" + +#: company/templates/company/manufacturer_part_suppliers.html:43 +#: part/templates/part/params.html:18 +#: templates/InvenTree/settings/category.html:29 +#: templates/InvenTree/settings/part.html:48 +msgid "New Parameter" +msgstr "" + +#: company/templates/company/manufacturer_part_suppliers.html:83 #: part/templates/part/supplier.html:51 msgid "Create new supplier" msgstr "" @@ -2379,13 +2446,13 @@ msgstr "" msgid "Supplied Parts" msgstr "" -#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:33 +#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:35 #: stock/templates/stock/location.html:107 #: stock/templates/stock/location.html:122 #: stock/templates/stock/location.html:136 #: stock/templates/stock/location_navbar.html:22 #: stock/templates/stock/location_navbar.html:29 -#: templates/InvenTree/search.html:198 templates/js/stock.js:971 +#: templates/InvenTree/search.html:198 templates/js/stock.js:996 #: templates/stats.html:93 templates/stats.html:102 users/models.py:42 msgid "Stock Items" msgstr "" @@ -2396,7 +2463,7 @@ msgstr "" #: company/templates/company/sales_orders.html:11 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:13 -#: part/templates/part/navbar.html:104 part/templates/part/navbar.html:107 +#: part/templates/part/navbar.html:112 part/templates/part/navbar.html:115 #: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228 #: templates/InvenTree/search.html:345 #: templates/InvenTree/settings/tabs.html:40 templates/navbar.html:46 @@ -2408,7 +2475,7 @@ msgstr "" #: company/templates/company/purchase_orders.html:10 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:13 -#: part/templates/part/navbar.html:90 part/templates/part/navbar.html:93 +#: part/templates/part/navbar.html:92 part/templates/part/navbar.html:95 #: part/templates/part/orders.html:10 templates/InvenTree/index.html:205 #: templates/InvenTree/search.html:325 #: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:37 @@ -2442,7 +2509,7 @@ msgstr "" #: company/templates/company/supplier_part_base.html:7 #: company/templates/company/supplier_part_base.html:20 stock/models.py:416 -#: stock/templates/stock/item_base.html:369 templates/js/company.js:279 +#: stock/templates/stock/item_base.html:374 templates/js/company.js:380 msgid "Supplier Part" msgstr "" @@ -2490,8 +2557,8 @@ msgstr "" msgid "Pricing Information" msgstr "" -#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794 -#: part/templates/part/sale_prices.html:17 part/views.py:2733 +#: company/templates/company/supplier_part_pricing.html:19 company/views.py:855 +#: part/templates/part/sale_prices.html:17 part/views.py:2751 msgid "Add Price Break" msgstr "" @@ -2510,8 +2577,8 @@ msgstr "" msgid "Delete price break" msgstr "" -#: company/views.py:70 part/templates/part/navbar.html:78 -#: part/templates/part/navbar.html:81 templates/InvenTree/search.html:306 +#: company/views.py:70 part/templates/part/navbar.html:80 +#: part/templates/part/navbar.html:83 templates/InvenTree/search.html:306 #: templates/navbar.html:36 msgid "Manufacturers" msgstr "" @@ -2533,20 +2600,20 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:169 part/views.py:937 +#: company/views.py:169 part/views.py:948 msgid "Download Image" msgstr "" -#: company/views.py:198 part/views.py:969 +#: company/views.py:198 part/views.py:980 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:205 part/views.py:976 +#: company/views.py:205 part/views.py:987 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:214 part/views.py:985 +#: company/views.py:214 part/views.py:996 msgid "Supplied URL is not a valid image file" msgstr "" @@ -2594,27 +2661,35 @@ msgstr "" msgid "Delete Manufacturer Part" msgstr "" -#: company/views.py:528 +#: company/views.py:514 +msgid "Add Manufacturer Part Parameter" +msgstr "" + +#: company/views.py:548 +msgid "Edit Manufacturer Part Parameter" +msgstr "" + +#: company/views.py:588 msgid "Edit Supplier Part" msgstr "" -#: company/views.py:578 templates/js/stock.js:1294 +#: company/views.py:639 templates/js/stock.js:1319 msgid "Create new Supplier Part" msgstr "" -#: company/views.py:722 +#: company/views.py:783 msgid "Delete Supplier Part" msgstr "" -#: company/views.py:799 part/views.py:2737 +#: company/views.py:860 part/views.py:2755 msgid "Added new price break" msgstr "" -#: company/views.py:855 part/views.py:2781 +#: company/views.py:916 part/views.py:2799 msgid "Edit Price Break" msgstr "" -#: company/views.py:870 part/views.py:2795 +#: company/views.py:931 part/views.py:2813 msgid "Delete Price Break" msgstr "" @@ -2638,7 +2713,7 @@ msgstr "" msgid "Label template file" msgstr "" -#: label/models.py:124 report/models.py:274 +#: label/models.py:124 report/models.py:297 msgid "Enabled" msgstr "" @@ -2662,7 +2737,7 @@ msgstr "" msgid "Label height, specified in mm" msgstr "" -#: label/models.py:144 +#: label/models.py:144 report/models.py:290 msgid "Filename Pattern" msgstr "" @@ -2674,8 +2749,8 @@ msgstr "" msgid "Query filters (comma-separated list of key=value pairs" msgstr "" -#: label/models.py:245 label/models.py:298 report/models.py:294 -#: report/models.py:415 report/models.py:449 +#: label/models.py:245 label/models.py:298 report/models.py:317 +#: report/models.py:440 report/models.py:474 msgid "Filters" msgstr "" @@ -2696,237 +2771,239 @@ msgstr "" msgid "Ship order" msgstr "" -#: order/forms.py:82 +#: order/forms.py:86 msgid "Receive parts to this location" msgstr "" -#: order/forms.py:103 +#: order/forms.py:108 msgid "Purchase Order reference" msgstr "" -#: order/forms.py:110 +#: order/forms.py:115 msgid "Target date for order delivery. Order will be overdue after this date." msgstr "" -#: order/forms.py:138 +#: order/forms.py:143 msgid "Enter sales order number" msgstr "" -#: order/forms.py:145 order/models.py:475 +#: order/forms.py:150 order/models.py:476 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/forms.py:236 +#: order/forms.py:242 msgid "Enter stock item serial numbers" msgstr "" -#: order/forms.py:242 +#: order/forms.py:248 msgid "Enter quantity of stock items" msgstr "" -#: order/models.py:101 +#: order/models.py:102 msgid "Order reference" msgstr "" -#: order/models.py:103 +#: order/models.py:104 msgid "Order description" msgstr "" -#: order/models.py:105 +#: order/models.py:106 msgid "Link to external page" msgstr "" -#: order/models.py:113 part/templates/part/detail.html:132 +#: order/models.py:114 part/templates/part/detail.html:132 msgid "Created By" msgstr "" -#: order/models.py:120 +#: order/models.py:121 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:125 +#: order/models.py:126 msgid "Order notes" msgstr "" -#: order/models.py:184 order/models.py:468 +#: order/models.py:185 order/models.py:469 msgid "Purchase order status" msgstr "" -#: order/models.py:193 +#: order/models.py:194 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:196 order/templates/order/order_base.html:98 +#: order/models.py:197 order/templates/order/order_base.html:98 #: templates/js/order.js:179 msgid "Supplier Reference" msgstr "" -#: order/models.py:196 +#: order/models.py:197 msgid "Supplier order reference code" msgstr "" -#: order/models.py:203 +#: order/models.py:204 msgid "received by" msgstr "" -#: order/models.py:208 +#: order/models.py:209 msgid "Issue Date" msgstr "" -#: order/models.py:209 +#: order/models.py:210 msgid "Date order was issued" msgstr "" -#: order/models.py:214 +#: order/models.py:215 msgid "Target Delivery Date" msgstr "" -#: order/models.py:215 +#: order/models.py:216 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:221 +#: order/models.py:222 msgid "Date order was completed" msgstr "" -#: order/models.py:245 part/views.py:1675 stock/models.py:304 +#: order/models.py:246 part/views.py:1686 stock/models.py:304 #: stock/models.py:1020 msgid "Quantity must be greater than zero" msgstr "" -#: order/models.py:250 +#: order/models.py:251 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:348 +#: order/models.py:349 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:352 +#: order/models.py:353 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:354 +#: order/models.py:355 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:464 +#: order/models.py:465 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:470 +#: order/models.py:471 msgid "Customer Reference " msgstr "" -#: order/models.py:470 +#: order/models.py:471 msgid "Customer order reference code" msgstr "" -#: order/models.py:478 templates/js/order.js:303 +#: order/models.py:479 templates/js/order.js:303 msgid "Shipment Date" msgstr "" -#: order/models.py:485 +#: order/models.py:486 msgid "shipped by" msgstr "" -#: order/models.py:529 +#: order/models.py:530 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:616 +#: order/models.py:617 msgid "Item quantity" msgstr "" -#: order/models.py:618 +#: order/models.py:619 msgid "Line item reference" msgstr "" -#: order/models.py:620 +#: order/models.py:621 msgid "Line item notes" msgstr "" -#: order/models.py:646 order/models.py:691 -#: part/templates/part/allocation.html:17 -#: part/templates/part/allocation.html:45 +#: order/models.py:647 order/models.py:715 templates/js/order.js:353 msgid "Order" msgstr "" -#: order/models.py:647 order/templates/order/order_base.html:9 +#: order/models.py:648 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:324 templates/js/order.js:148 -#: templates/js/stock.js:1053 +#: templates/js/stock.js:669 templates/js/stock.js:1078 msgid "Purchase Order" msgstr "" -#: order/models.py:661 +#: order/models.py:662 msgid "Supplier part" msgstr "" -#: order/models.py:664 order/templates/order/order_base.html:131 +#: order/models.py:665 order/templates/order/order_base.html:131 #: order/templates/order/purchase_order_detail.html:219 #: order/templates/order/receive_parts.html:22 #: order/templates/order/sales_order_base.html:133 msgid "Received" msgstr "" -#: order/models.py:664 +#: order/models.py:665 msgid "Number of items received" msgstr "" -#: order/models.py:671 stock/models.py:542 -#: stock/templates/stock/item_base.html:331 templates/js/stock.js:665 +#: order/models.py:672 stock/models.py:542 +#: stock/templates/stock/item_base.html:331 templates/js/stock.js:690 msgid "Purchase Price" msgstr "" -#: order/models.py:672 +#: order/models.py:673 msgid "Unit purchase price" msgstr "" -#: order/models.py:700 part/templates/part/navbar.html:101 -#: part/templates/part/order_prices.html:82 -#: part/templates/part/part_pricing.html:78 +#: order/models.py:681 +msgid "Where does the Purchaser want this item to be stored?" +msgstr "" + +#: order/models.py:724 part/templates/part/navbar.html:109 +#: part/templates/part/order_prices.html:107 +#: part/templates/part/part_pricing.html:97 msgid "Sale Price" msgstr "" -#: order/models.py:701 +#: order/models.py:725 msgid "Unit sale price" msgstr "" -#: order/models.py:776 order/models.py:778 +#: order/models.py:800 order/models.py:802 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:782 +#: order/models.py:806 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:784 +#: order/models.py:808 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:787 +#: order/models.py:811 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:797 +#: order/models.py:821 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:802 +#: order/models.py:826 msgid "Line" msgstr "" -#: order/models.py:813 +#: order/models.py:837 msgid "Item" msgstr "" -#: order/models.py:814 +#: order/models.py:838 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:817 +#: order/models.py:841 msgid "Enter stock allocation quantity" msgstr "" @@ -2955,7 +3032,7 @@ msgid "Export order to file" msgstr "" #: order/templates/order/order_base.html:72 -#: order/templates/order/po_navbar.html:11 +#: order/templates/order/po_navbar.html:12 msgid "Purchase Order Details" msgstr "" @@ -2977,8 +3054,8 @@ msgstr "" #: order/templates/order/order_base.html:180 #: order/templates/order/purchase_order_detail.html:100 #: part/templates/part/category.html:208 part/templates/part/category.html:250 -#: stock/templates/stock/location.html:191 templates/js/stock.js:711 -#: templates/js/stock.js:1299 +#: stock/templates/stock/location.html:191 templates/js/stock.js:736 +#: templates/js/stock.js:1324 msgid "New Location" msgstr "" @@ -3081,28 +3158,32 @@ msgstr "" msgid "Order is already processed. Files cannot be uploaded." msgstr "" -#: order/templates/order/order_wizard/select_parts.html:9 +#: order/templates/order/order_wizard/select_parts.html:11 msgid "Step 1 of 2 - Select Part Suppliers" msgstr "" -#: order/templates/order/order_wizard/select_parts.html:14 +#: order/templates/order/order_wizard/select_parts.html:16 msgid "Select suppliers" msgstr "" -#: order/templates/order/order_wizard/select_parts.html:18 +#: order/templates/order/order_wizard/select_parts.html:20 msgid "No purchaseable parts selected" msgstr "" -#: order/templates/order/order_wizard/select_parts.html:31 +#: order/templates/order/order_wizard/select_parts.html:33 msgid "Select Supplier" msgstr "" #: order/templates/order/order_wizard/select_parts.html:57 +msgid "No price" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:65 #, python-format msgid "Select a supplier for %(name)s" msgstr "" -#: order/templates/order/order_wizard/select_parts.html:69 +#: order/templates/order/order_wizard/select_parts.html:77 #: part/templates/part/set_category.html:32 msgid "Remove part" msgstr "" @@ -3135,15 +3216,20 @@ msgid "Select a purchase order for %(name)s" msgstr "" #: order/templates/order/po_attachments.html:12 -#: order/templates/order/po_navbar.html:23 +#: order/templates/order/po_navbar.html:32 msgid "Purchase Order Attachments" msgstr "" -#: order/templates/order/po_navbar.html:17 +#: order/templates/order/po_lineitem_delete.html:5 +#: order/templates/order/so_lineitem_delete.html:5 +msgid "Are you sure you wish to delete this line item?" +msgstr "" + +#: order/templates/order/po_navbar.html:26 msgid "Received Stock Items" msgstr "" -#: order/templates/order/po_navbar.html:20 +#: order/templates/order/po_navbar.html:29 #: order/templates/order/po_received_items.html:12 msgid "Received Items" msgstr "" @@ -3153,8 +3239,8 @@ msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:24 -#: order/templates/order/sales_order_detail.html:22 order/views.py:1311 -#: order/views.py:1394 +#: order/templates/order/sales_order_detail.html:22 order/views.py:1321 +#: order/views.py:1404 msgid "Add Line Item" msgstr "" @@ -3162,25 +3248,31 @@ msgstr "" msgid "No line items found" msgstr "" +#: order/templates/order/purchase_order_detail.html:142 +#: order/templates/order/sales_order_detail.html:223 +msgid "Total" +msgstr "" + #: order/templates/order/purchase_order_detail.html:191 -#: order/templates/order/sales_order_detail.html:235 +#: order/templates/order/sales_order_detail.html:246 msgid "Unit Price" msgstr "" #: order/templates/order/purchase_order_detail.html:198 +#: order/templates/order/sales_order_detail.html:253 msgid "Total price" msgstr "" -#: order/templates/order/purchase_order_detail.html:251 -#: order/templates/order/sales_order_detail.html:328 +#: order/templates/order/purchase_order_detail.html:255 +#: order/templates/order/sales_order_detail.html:359 msgid "Edit line item" msgstr "" -#: order/templates/order/purchase_order_detail.html:252 +#: order/templates/order/purchase_order_detail.html:256 msgid "Delete line item" msgstr "" -#: order/templates/order/purchase_order_detail.html:257 +#: order/templates/order/purchase_order_detail.html:261 msgid "Receive line item" msgstr "" @@ -3201,7 +3293,7 @@ msgstr "" #: part/templates/part/category_navbar.html:29 #: part/templates/part/category_partlist.html:10 #: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114 -#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:665 +#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:666 #: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89 #: users/models.py:40 msgid "Parts" @@ -3216,7 +3308,7 @@ msgid "Order Code" msgstr "" #: order/templates/order/receive_parts.html:21 -#: part/templates/part/part_base.html:136 templates/js/part.js:480 +#: part/templates/part/part_base.html:136 templates/js/part.js:481 msgid "On Order" msgstr "" @@ -3224,11 +3316,11 @@ msgstr "" msgid "Receive" msgstr "" -#: order/templates/order/receive_parts.html:36 +#: order/templates/order/receive_parts.html:37 msgid "Error: Referenced part has been removed" msgstr "" -#: order/templates/order/receive_parts.html:57 +#: order/templates/order/receive_parts.html:61 msgid "Remove line" msgstr "" @@ -3265,17 +3357,17 @@ msgid "Sales Order Items" msgstr "" #: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:365 -#: templates/js/build.js:637 templates/js/build.js:1054 +#: templates/js/build.js:724 templates/js/build.js:1141 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:525 -#: templates/js/build.js:859 +#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:610 +#: templates/js/build.js:946 msgid "Edit stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:527 -#: templates/js/build.js:860 +#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:612 +#: templates/js/build.js:947 msgid "Delete stock allocation" msgstr "" @@ -3283,50 +3375,50 @@ msgstr "" msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:205 +#: order/templates/order/sales_order_detail.html:206 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:589 -#: templates/js/build.js:855 +#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:675 +#: templates/js/build.js:942 msgid "Allocated" msgstr "" -#: order/templates/order/sales_order_detail.html:245 +#: order/templates/order/sales_order_detail.html:276 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:282 +#: order/templates/order/sales_order_detail.html:313 msgid "PO" msgstr "" -#: order/templates/order/sales_order_detail.html:312 +#: order/templates/order/sales_order_detail.html:343 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:651 +#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:738 msgid "Allocate stock" msgstr "" -#: order/templates/order/sales_order_detail.html:318 +#: order/templates/order/sales_order_detail.html:349 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:644 -#: templates/js/build.js:1062 +#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:731 +#: templates/js/build.js:1149 msgid "Build stock" msgstr "" -#: order/templates/order/sales_order_detail.html:325 -#: order/templates/order/sales_order_detail.html:434 +#: order/templates/order/sales_order_detail.html:356 +#: order/templates/order/sales_order_detail.html:465 msgid "Calculate price" msgstr "" -#: order/templates/order/sales_order_detail.html:329 +#: order/templates/order/sales_order_detail.html:360 msgid "Delete line item " msgstr "" -#: order/templates/order/sales_order_detail.html:440 +#: order/templates/order/sales_order_detail.html:471 msgid "Update Unit Price" msgstr "" @@ -3367,10 +3459,6 @@ msgstr "" msgid "Sales Order Attachments" msgstr "" -#: order/templates/order/so_lineitem_delete.html:5 -msgid "Are you sure you wish to delete this line item?" -msgstr "" - #: order/views.py:104 msgid "Add Purchase Order Attachment" msgstr "" @@ -3471,90 +3559,94 @@ msgstr "" msgid "No lines specified" msgstr "" -#: order/views.py:1260 +#: order/views.py:1012 +msgid "Update prices" +msgstr "" + +#: order/views.py:1270 #, python-brace-format msgid "Ordered {n} parts" msgstr "" -#: order/views.py:1320 +#: order/views.py:1330 msgid "Supplier part must be specified" msgstr "" -#: order/views.py:1326 +#: order/views.py:1336 msgid "Supplier must match for Part and Order" msgstr "" -#: order/views.py:1457 order/views.py:1475 +#: order/views.py:1467 order/views.py:1485 msgid "Edit Line Item" msgstr "" -#: order/views.py:1491 order/views.py:1503 +#: order/views.py:1501 order/views.py:1513 msgid "Delete Line Item" msgstr "" -#: order/views.py:1496 order/views.py:1508 +#: order/views.py:1506 order/views.py:1518 msgid "Deleted line item" msgstr "" -#: order/views.py:1521 +#: order/views.py:1531 msgid "Allocate Serial Numbers" msgstr "" -#: order/views.py:1566 +#: order/views.py:1576 #, python-brace-format msgid "Allocated {n} items" msgstr "" -#: order/views.py:1582 +#: order/views.py:1592 msgid "Select line item" msgstr "" -#: order/views.py:1613 -#, python-brace-format -msgid "No matching item for serial {serial}" -msgstr "" - #: order/views.py:1623 #, python-brace-format +msgid "No matching item for serial {serial}" +msgstr "" + +#: order/views.py:1633 +#, python-brace-format msgid "{serial} is not in stock" msgstr "" -#: order/views.py:1631 +#: order/views.py:1641 #, python-brace-format msgid "{serial} already allocated to an order" msgstr "" -#: order/views.py:1685 +#: order/views.py:1695 msgid "Allocate Stock to Order" msgstr "" -#: order/views.py:1759 +#: order/views.py:1769 msgid "Edit Allocation Quantity" msgstr "" -#: order/views.py:1774 +#: order/views.py:1784 msgid "Remove allocation" msgstr "" -#: order/views.py:1846 +#: order/views.py:1856 msgid "Sales order not found" msgstr "" -#: order/views.py:1852 +#: order/views.py:1862 msgid "Price not found" msgstr "" -#: order/views.py:1855 +#: order/views.py:1865 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:1860 +#: order/views.py:1870 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/bom.py:138 part/models.py:72 part/models.py:762 +#: part/bom.py:138 part/models.py:72 part/models.py:747 #: part/templates/part/category.html:66 part/templates/part/detail.html:90 msgid "Default Location" msgstr "" @@ -3632,7 +3724,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:122 part/models.py:2168 +#: part/forms.py:122 part/models.py:2191 msgid "Parent Part" msgstr "" @@ -3708,7 +3800,7 @@ msgstr "" msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:344 part/models.py:2263 +#: part/forms.py:344 part/models.py:2286 msgid "Sub part" msgstr "" @@ -3728,7 +3820,7 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:82 part/models.py:2214 +#: part/models.py:82 part/models.py:2237 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -3739,365 +3831,360 @@ msgstr "" msgid "Part Categories" msgstr "" -#: part/models.py:446 part/models.py:458 +#: part/models.py:448 part/models.py:460 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:555 +#: part/models.py:557 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:559 +#: part/models.py:561 msgid "Next available serial number is" msgstr "" -#: part/models.py:564 +#: part/models.py:566 msgid "Most recent serial number is" msgstr "" -#: part/models.py:643 +#: part/models.py:645 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:654 -msgid "Part must be unique for name, IPN and revision" -msgstr "" - -#: part/models.py:685 part/templates/part/detail.html:22 +#: part/models.py:670 part/templates/part/detail.html:22 msgid "Part name" msgstr "" -#: part/models.py:692 +#: part/models.py:677 msgid "Is Template" msgstr "" -#: part/models.py:693 +#: part/models.py:678 msgid "Is this part a template part?" msgstr "" -#: part/models.py:704 +#: part/models.py:689 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:705 part/templates/part/detail.html:60 +#: part/models.py:690 part/templates/part/detail.html:60 msgid "Variant Of" msgstr "" -#: part/models.py:711 +#: part/models.py:696 msgid "Part description" msgstr "" -#: part/models.py:716 part/templates/part/category.html:73 +#: part/models.py:701 part/templates/part/category.html:73 #: part/templates/part/detail.html:67 msgid "Keywords" msgstr "" -#: part/models.py:717 +#: part/models.py:702 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:724 part/models.py:2213 part/templates/part/detail.html:73 -#: part/templates/part/set_category.html:15 templates/js/part.js:451 +#: part/models.py:709 part/models.py:2236 part/templates/part/detail.html:73 +#: part/templates/part/set_category.html:15 templates/js/part.js:452 msgid "Category" msgstr "" -#: part/models.py:725 +#: part/models.py:710 msgid "Part category" msgstr "" -#: part/models.py:730 part/templates/part/detail.html:28 +#: part/models.py:715 part/templates/part/detail.html:28 #: part/templates/part/part_base.html:87 templates/js/part.js:169 #: templates/js/part.js:296 msgid "IPN" msgstr "" -#: part/models.py:731 +#: part/models.py:716 msgid "Internal Part Number" msgstr "" -#: part/models.py:737 +#: part/models.py:722 msgid "Part revision or version number" msgstr "" -#: part/models.py:738 part/templates/part/detail.html:35 report/models.py:198 +#: part/models.py:723 part/templates/part/detail.html:35 report/models.py:199 #: templates/js/part.js:173 msgid "Revision" msgstr "" -#: part/models.py:760 +#: part/models.py:745 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:807 part/templates/part/detail.html:97 +#: part/models.py:792 part/templates/part/detail.html:97 msgid "Default Supplier" msgstr "" -#: part/models.py:808 +#: part/models.py:793 msgid "Default supplier part" msgstr "" -#: part/models.py:815 +#: part/models.py:800 msgid "Default Expiry" msgstr "" -#: part/models.py:816 +#: part/models.py:801 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:821 part/templates/part/detail.html:113 +#: part/models.py:806 part/templates/part/detail.html:113 msgid "Minimum Stock" msgstr "" -#: part/models.py:822 +#: part/models.py:807 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:828 part/models.py:2142 part/templates/part/detail.html:106 -#: part/templates/part/params.html:29 -msgid "Units" -msgstr "" - -#: part/models.py:829 +#: part/models.py:814 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:835 +#: part/models.py:820 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:841 +#: part/models.py:826 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:847 +#: part/models.py:832 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:852 +#: part/models.py:837 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:857 +#: part/models.py:842 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:861 part/templates/part/detail.html:227 +#: part/models.py:846 part/templates/part/detail.html:227 #: templates/js/table_filters.js:21 templates/js/table_filters.js:65 #: templates/js/table_filters.js:241 templates/js/table_filters.js:310 msgid "Active" msgstr "" -#: part/models.py:862 +#: part/models.py:847 msgid "Is this part active?" msgstr "" -#: part/models.py:867 +#: part/models.py:852 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:872 +#: part/models.py:857 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:875 +#: part/models.py:860 msgid "BOM checksum" msgstr "" -#: part/models.py:875 +#: part/models.py:860 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:878 +#: part/models.py:863 msgid "BOM checked by" msgstr "" -#: part/models.py:880 +#: part/models.py:865 msgid "BOM checked date" msgstr "" -#: part/models.py:884 +#: part/models.py:869 msgid "Creation User" msgstr "" -#: part/models.py:1616 +#: part/models.py:1608 msgid "Sell multiple" msgstr "" -#: part/models.py:2040 +#: part/models.py:2063 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2057 +#: part/models.py:2080 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2077 templates/js/part.js:716 templates/js/stock.js:117 +#: part/models.py:2100 templates/js/part.js:717 templates/js/stock.js:117 msgid "Test Name" msgstr "" -#: part/models.py:2078 +#: part/models.py:2101 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2083 +#: part/models.py:2106 msgid "Test Description" msgstr "" -#: part/models.py:2084 +#: part/models.py:2107 msgid "Enter description for this test" msgstr "" -#: part/models.py:2089 templates/js/part.js:725 +#: part/models.py:2112 templates/js/part.js:726 #: templates/js/table_filters.js:227 msgid "Required" msgstr "" -#: part/models.py:2090 +#: part/models.py:2113 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2095 templates/js/part.js:733 +#: part/models.py:2118 templates/js/part.js:734 msgid "Requires Value" msgstr "" -#: part/models.py:2096 +#: part/models.py:2119 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2101 templates/js/part.js:740 +#: part/models.py:2124 templates/js/part.js:741 msgid "Requires Attachment" msgstr "" -#: part/models.py:2102 +#: part/models.py:2125 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2135 +#: part/models.py:2158 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2140 +#: part/models.py:2163 msgid "Parameter Name" msgstr "" -#: part/models.py:2142 +#: part/models.py:2165 msgid "Parameter Units" msgstr "" -#: part/models.py:2170 part/models.py:2219 part/models.py:2220 +#: part/models.py:2193 part/models.py:2242 part/models.py:2243 #: templates/InvenTree/settings/category.html:62 msgid "Parameter Template" msgstr "" -#: part/models.py:2172 +#: part/models.py:2195 msgid "Data" msgstr "" -#: part/models.py:2172 +#: part/models.py:2195 msgid "Parameter Value" msgstr "" -#: part/models.py:2224 templates/InvenTree/settings/category.html:67 +#: part/models.py:2247 templates/InvenTree/settings/category.html:67 msgid "Default Value" msgstr "" -#: part/models.py:2225 +#: part/models.py:2248 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2255 +#: part/models.py:2278 msgid "Select parent part" msgstr "" -#: part/models.py:2264 +#: part/models.py:2287 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2270 +#: part/models.py:2293 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2272 templates/js/bom.js:216 templates/js/bom.js:285 +#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:285 msgid "Optional" msgstr "" -#: part/models.py:2272 +#: part/models.py:2295 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2275 +#: part/models.py:2298 msgid "Overage" msgstr "" -#: part/models.py:2276 +#: part/models.py:2299 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2279 +#: part/models.py:2302 msgid "BOM item reference" msgstr "" -#: part/models.py:2282 +#: part/models.py:2305 msgid "BOM item notes" msgstr "" -#: part/models.py:2284 +#: part/models.py:2307 msgid "Checksum" msgstr "" -#: part/models.py:2284 +#: part/models.py:2307 msgid "BOM line checksum" msgstr "" -#: part/models.py:2288 templates/js/bom.js:302 templates/js/bom.js:309 +#: part/models.py:2311 templates/js/bom.js:302 templates/js/bom.js:309 #: templates/js/table_filters.js:51 msgid "Inherited" msgstr "" -#: part/models.py:2289 +#: part/models.py:2312 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2294 templates/js/bom.js:294 +#: part/models.py:2317 templates/js/bom.js:294 msgid "Allow Variants" msgstr "" -#: part/models.py:2295 +#: part/models.py:2318 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2371 part/views.py:1681 part/views.py:1733 +#: part/models.py:2394 part/views.py:1692 part/views.py:1744 #: stock/models.py:294 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2380 part/models.py:2382 +#: part/models.py:2403 part/models.py:2405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2385 +#: part/models.py:2408 msgid "BOM Item" msgstr "" -#: part/models.py:2502 +#: part/models.py:2527 msgid "Part 1" msgstr "" -#: part/models.py:2506 +#: part/models.py:2531 msgid "Part 2" msgstr "" -#: part/models.py:2506 +#: part/models.py:2531 msgid "Select Related Part" msgstr "" -#: part/models.py:2538 +#: part/models.py:2563 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" #: part/templates/part/allocation.html:11 -msgid "Part Stock Allocations" +msgid "Build Order Allocations" +msgstr "" + +#: part/templates/part/allocation.html:24 +msgid "Sales Order Allocations" msgstr "" #: part/templates/part/attachments.html:10 @@ -4112,8 +4199,8 @@ msgstr "" msgid "Deleting this entry will remove the BOM row from the following part" msgstr "" -#: part/templates/part/bom.html:10 part/templates/part/navbar.html:48 -#: part/templates/part/navbar.html:51 +#: part/templates/part/bom.html:10 part/templates/part/navbar.html:50 +#: part/templates/part/navbar.html:53 msgid "Bill of Materials" msgstr "" @@ -4160,7 +4247,7 @@ msgstr "" msgid "Validate Bill of Materials" msgstr "" -#: part/templates/part/bom.html:61 part/views.py:1976 +#: part/templates/part/bom.html:61 part/views.py:1987 msgid "Export Bill of Materials" msgstr "" @@ -4177,7 +4264,7 @@ msgid "All selected BOM items will be deleted" msgstr "" #: part/templates/part/bom.html:160 part/views.py:585 -#: templates/js/stock.js:1288 +#: templates/js/stock.js:1313 msgid "Create New Part" msgstr "" @@ -4258,7 +4345,7 @@ msgstr "" msgid "All parts" msgstr "" -#: part/templates/part/category.html:29 part/views.py:2379 +#: part/templates/part/category.html:29 part/views.py:2397 msgid "Create new part category" msgstr "" @@ -4318,7 +4405,7 @@ msgid "View grid display" msgstr "" #: part/templates/part/category.html:209 -#: stock/templates/stock/location.html:192 templates/js/stock.js:712 +#: stock/templates/stock/location.html:192 templates/js/stock.js:737 msgid "Create new location" msgstr "" @@ -4373,14 +4460,8 @@ msgstr "" msgid "If this category is deleted, these parts will be moved to the top-level category Teile" msgstr "" -#: part/templates/part/category_navbar.html:34 -#: part/templates/part/category_navbar.html:37 -#: part/templates/part/navbar.html:22 -msgid "Parameters" -msgstr "" - #: part/templates/part/category_parametric.html:10 -#: part/templates/part/navbar.html:19 part/templates/part/params.html:10 +#: part/templates/part/navbar.html:21 part/templates/part/params.html:10 msgid "Part Parameters" msgstr "" @@ -4408,7 +4489,7 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:11 part/templates/part/navbar.html:11 +#: part/templates/part/detail.html:11 part/templates/part/navbar.html:13 msgid "Part Details" msgstr "" @@ -4488,6 +4569,36 @@ msgstr "" msgid "Part is not active" msgstr "" +#: part/templates/part/internal_prices.html:11 +#: part/templates/part/navbar.html:100 +msgid "Internal Price Information" +msgstr "" + +#: part/templates/part/internal_prices.html:19 part/views.py:2822 +msgid "Add Internal Price Break" +msgstr "" + +#: part/templates/part/internal_prices.html:28 templates/403.html:5 +#: templates/403.html:11 +msgid "Permission Denied" +msgstr "" + +#: part/templates/part/internal_prices.html:31 templates/403.html:14 +msgid "You do not have permission to view this page." +msgstr "" + +#: part/templates/part/internal_prices.html:59 +msgid "No internal price break information found" +msgstr "" + +#: part/templates/part/internal_prices.html:110 +msgid "Edit internal price break" +msgstr "" + +#: part/templates/part/internal_prices.html:111 +msgid "Delete internal price break" +msgstr "" + #: part/templates/part/manufacturer.html:11 msgid "Part Manufacturers" msgstr "" @@ -4501,127 +4612,141 @@ msgstr "" msgid "Create new manufacturer" msgstr "" -#: part/templates/part/navbar.html:26 part/templates/part/variants.html:11 +#: part/templates/part/navbar.html:28 part/templates/part/variants.html:11 msgid "Part Variants" msgstr "" -#: part/templates/part/navbar.html:29 +#: part/templates/part/navbar.html:31 msgid "Variants" msgstr "" -#: part/templates/part/navbar.html:40 +#: part/templates/part/navbar.html:42 msgid "Allocated Stock" msgstr "" -#: part/templates/part/navbar.html:43 +#: part/templates/part/navbar.html:45 msgid "Allocations" msgstr "" -#: part/templates/part/navbar.html:64 part/templates/part/navbar.html:67 +#: part/templates/part/navbar.html:66 part/templates/part/navbar.html:69 msgid "Used In" msgstr "" -#: part/templates/part/navbar.html:72 part/templates/part/order_prices.html:12 +#: part/templates/part/navbar.html:74 part/templates/part/order_prices.html:12 msgid "Order Price Information" msgstr "" -#: part/templates/part/navbar.html:75 +#: part/templates/part/navbar.html:77 msgid "Order Price" msgstr "" -#: part/templates/part/navbar.html:98 +#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:93 +#: part/templates/part/part_pricing.html:82 +msgid "Internal Price" +msgstr "" + +#: part/templates/part/navbar.html:106 msgid "Sales Price Information" msgstr "" -#: part/templates/part/navbar.html:112 part/templates/part/part_tests.html:10 +#: part/templates/part/navbar.html:120 part/templates/part/part_tests.html:10 msgid "Part Test Templates" msgstr "" -#: part/templates/part/navbar.html:115 stock/templates/stock/item_base.html:409 +#: part/templates/part/navbar.html:123 stock/templates/stock/item_base.html:414 msgid "Tests" msgstr "" -#: part/templates/part/navbar.html:119 part/templates/part/navbar.html:122 +#: part/templates/part/navbar.html:127 part/templates/part/navbar.html:130 #: part/templates/part/related.html:10 msgid "Related Parts" msgstr "" -#: part/templates/part/navbar.html:131 part/templates/part/notes.html:12 +#: part/templates/part/navbar.html:139 part/templates/part/notes.html:12 msgid "Part Notes" msgstr "" -#: part/templates/part/order_prices.html:21 +#: part/templates/part/order_prices.html:24 +#: part/templates/part/part_base.html:282 +msgid "Calculate" +msgstr "" + +#: part/templates/part/order_prices.html:31 msgid "Pricing ranges" msgstr "" -#: part/templates/part/order_prices.html:26 -#: part/templates/part/part_pricing.html:19 +#: part/templates/part/order_prices.html:36 +#: part/templates/part/part_pricing.html:22 msgid "Supplier Pricing" msgstr "" -#: part/templates/part/order_prices.html:27 -#: part/templates/part/order_prices.html:52 -#: part/templates/part/order_prices.html:83 -#: part/templates/part/part_pricing.html:23 -#: part/templates/part/part_pricing.html:49 -#: part/templates/part/part_pricing.html:81 +#: part/templates/part/order_prices.html:37 +#: part/templates/part/order_prices.html:62 +#: part/templates/part/order_prices.html:94 +#: part/templates/part/order_prices.html:108 +#: part/templates/part/part_pricing.html:26 +#: part/templates/part/part_pricing.html:52 +#: part/templates/part/part_pricing.html:85 +#: part/templates/part/part_pricing.html:100 msgid "Unit Cost" msgstr "" -#: part/templates/part/order_prices.html:34 -#: part/templates/part/order_prices.html:59 -#: part/templates/part/order_prices.html:88 -#: part/templates/part/part_pricing.html:29 -#: part/templates/part/part_pricing.html:55 -#: part/templates/part/part_pricing.html:85 +#: part/templates/part/order_prices.html:44 +#: part/templates/part/order_prices.html:69 +#: part/templates/part/order_prices.html:99 +#: part/templates/part/order_prices.html:113 +#: part/templates/part/part_pricing.html:32 +#: part/templates/part/part_pricing.html:58 +#: part/templates/part/part_pricing.html:89 +#: part/templates/part/part_pricing.html:104 msgid "Total Cost" msgstr "" -#: part/templates/part/order_prices.html:42 -#: part/templates/part/part_pricing.html:37 +#: part/templates/part/order_prices.html:52 +#: part/templates/part/part_pricing.html:40 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/order_prices.html:51 -#: part/templates/part/order_prices.html:103 -#: part/templates/part/part_pricing.html:45 +#: part/templates/part/order_prices.html:61 +#: part/templates/part/order_prices.html:128 +#: part/templates/part/part_pricing.html:48 msgid "BOM Pricing" msgstr "" -#: part/templates/part/order_prices.html:67 -#: part/templates/part/part_pricing.html:63 +#: part/templates/part/order_prices.html:77 +#: part/templates/part/part_pricing.html:66 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/order_prices.html:74 -#: part/templates/part/part_pricing.html:70 +#: part/templates/part/order_prices.html:84 +#: part/templates/part/part_pricing.html:73 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/order_prices.html:97 -#: part/templates/part/part_pricing.html:94 +#: part/templates/part/order_prices.html:122 +#: part/templates/part/part_pricing.html:113 msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/order_prices.html:113 +#: part/templates/part/order_prices.html:138 msgid "Stock Pricing" msgstr "" -#: part/templates/part/order_prices.html:121 +#: part/templates/part/order_prices.html:146 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/order_prices.html:140 +#: part/templates/part/order_prices.html:165 #, python-format msgid "Single Price - %(currency)s" msgstr "" -#: part/templates/part/order_prices.html:152 +#: part/templates/part/order_prices.html:177 #, python-format msgid "Single Price Difference - %(currency)s" msgstr "" -#: part/templates/part/order_prices.html:163 +#: part/templates/part/order_prices.html:189 #, python-format msgid "Part Single Price - %(currency)s" msgstr "" @@ -4630,19 +4755,6 @@ msgstr "" msgid "Add new parameter" msgstr "" -#: part/templates/part/params.html:18 -#: templates/InvenTree/settings/category.html:29 -#: templates/InvenTree/settings/part.html:44 -msgid "New Parameter" -msgstr "" - -#: part/templates/part/params.html:28 -#: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1756 templates/InvenTree/settings/header.html:8 -#: templates/js/stock.js:137 -msgid "Value" -msgstr "" - #: part/templates/part/params.html:41 templates/InvenTree/settings/user.html:19 msgid "Edit" msgstr "" @@ -4660,7 +4772,7 @@ msgid "Part List" msgstr "" #: part/templates/part/part_base.html:26 templates/js/company.js:156 -#: templates/js/company.js:254 templates/js/part.js:84 templates/js/part.js:161 +#: templates/js/company.js:355 templates/js/part.js:84 templates/js/part.js:161 msgid "Inactive" msgstr "" @@ -4740,14 +4852,10 @@ msgid "Can Build" msgstr "" #: part/templates/part/part_base.html:178 templates/js/part.js:312 -#: templates/js/part.js:484 +#: templates/js/part.js:485 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:265 -msgid "Calculate" -msgstr "" - #: part/templates/part/part_tests.html:17 msgid "Add Test Template" msgstr "" @@ -4816,7 +4924,7 @@ msgid "Showing stock for all variants of %(full_name)s" msgstr "" #: part/templates/part/stock_count.html:7 templates/js/bom.js:239 -#: templates/js/part.js:302 templates/js/part.js:488 +#: templates/js/part.js:302 templates/js/part.js:489 msgid "No Stock" msgstr "" @@ -4853,7 +4961,7 @@ msgstr "" msgid "New Variant" msgstr "" -#: part/templatetags/inventree_extras.py:98 +#: part/templatetags/inventree_extras.py:99 msgid "Unknown database" msgstr "" @@ -4922,227 +5030,239 @@ msgstr "" msgid "Created new part" msgstr "" -#: part/views.py:914 +#: part/views.py:925 msgid "Part QR Code" msgstr "" -#: part/views.py:1016 +#: part/views.py:1027 msgid "Upload Part Image" msgstr "" -#: part/views.py:1022 part/views.py:1057 +#: part/views.py:1033 part/views.py:1068 msgid "Updated part image" msgstr "" -#: part/views.py:1031 +#: part/views.py:1042 msgid "Select Part Image" msgstr "" -#: part/views.py:1060 +#: part/views.py:1071 msgid "Part image not found" msgstr "" -#: part/views.py:1071 +#: part/views.py:1082 msgid "Edit Part Properties" msgstr "" -#: part/views.py:1106 +#: part/views.py:1117 msgid "Duplicate BOM" msgstr "" -#: part/views.py:1136 +#: part/views.py:1147 msgid "Confirm duplication of BOM from parent" msgstr "" -#: part/views.py:1157 +#: part/views.py:1168 msgid "Validate BOM" msgstr "" -#: part/views.py:1178 +#: part/views.py:1189 msgid "Confirm that the BOM is valid" msgstr "" -#: part/views.py:1189 +#: part/views.py:1200 msgid "Validated Bill of Materials" msgstr "" -#: part/views.py:1323 +#: part/views.py:1334 msgid "No BOM file provided" msgstr "" -#: part/views.py:1684 +#: part/views.py:1695 msgid "Enter a valid quantity" msgstr "" -#: part/views.py:1709 part/views.py:1712 +#: part/views.py:1720 part/views.py:1723 msgid "Select valid part" msgstr "" -#: part/views.py:1718 +#: part/views.py:1729 msgid "Duplicate part selected" msgstr "" -#: part/views.py:1756 +#: part/views.py:1767 msgid "Select a part" msgstr "" -#: part/views.py:1762 +#: part/views.py:1773 msgid "Selected part creates a circular BOM" msgstr "" -#: part/views.py:1766 +#: part/views.py:1777 msgid "Specify quantity" msgstr "" -#: part/views.py:2028 +#: part/views.py:2039 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:2035 +#: part/views.py:2046 msgid "Part was deleted" msgstr "" -#: part/views.py:2044 +#: part/views.py:2055 msgid "Part Pricing" msgstr "" -#: part/views.py:2178 +#: part/views.py:2196 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:2188 +#: part/views.py:2206 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:2195 +#: part/views.py:2213 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:2203 +#: part/views.py:2221 msgid "Create Part Parameter" msgstr "" -#: part/views.py:2253 +#: part/views.py:2271 msgid "Edit Part Parameter" msgstr "" -#: part/views.py:2267 +#: part/views.py:2285 msgid "Delete Part Parameter" msgstr "" -#: part/views.py:2327 +#: part/views.py:2345 msgid "Edit Part Category" msgstr "" -#: part/views.py:2365 +#: part/views.py:2383 msgid "Delete Part Category" msgstr "" -#: part/views.py:2371 +#: part/views.py:2389 msgid "Part category was deleted" msgstr "" -#: part/views.py:2423 +#: part/views.py:2441 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:2524 +#: part/views.py:2542 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:2580 +#: part/views.py:2598 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:2599 +#: part/views.py:2617 msgid "Create BOM Item" msgstr "" -#: part/views.py:2669 +#: part/views.py:2687 msgid "Edit BOM item" msgstr "" -#: part/views.py:2725 +#: part/views.py:2743 msgid "Confim BOM item deletion" msgstr "" -#: report/models.py:180 +#: part/views.py:2831 +msgid "Edit Internal Price Break" +msgstr "" + +#: part/views.py:2839 +msgid "Delete Internal Price Break" +msgstr "" + +#: report/models.py:181 msgid "Template name" msgstr "" -#: report/models.py:186 +#: report/models.py:187 msgid "Report template file" msgstr "" -#: report/models.py:193 +#: report/models.py:194 msgid "Report template description" msgstr "" -#: report/models.py:199 +#: report/models.py:200 msgid "Report revision number (auto-increments)" msgstr "" -#: report/models.py:275 +#: report/models.py:291 +msgid "Pattern for generating report filenames" +msgstr "" + +#: report/models.py:298 msgid "Report template is enabled" msgstr "" -#: report/models.py:295 +#: report/models.py:318 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:303 +#: report/models.py:326 msgid "Include Installed Tests" msgstr "" -#: report/models.py:304 +#: report/models.py:327 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:347 +#: report/models.py:371 msgid "Build Filters" msgstr "" -#: report/models.py:348 +#: report/models.py:372 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:385 +#: report/models.py:410 msgid "Part Filters" msgstr "" -#: report/models.py:386 +#: report/models.py:411 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:416 +#: report/models.py:441 msgid "Purchase order query filters" msgstr "" -#: report/models.py:450 +#: report/models.py:475 msgid "Sales order query filters" msgstr "" -#: report/models.py:500 +#: report/models.py:525 msgid "Snippet" msgstr "" -#: report/models.py:501 +#: report/models.py:526 msgid "Report snippet file" msgstr "" -#: report/models.py:505 +#: report/models.py:530 msgid "Snippet file description" msgstr "" -#: report/models.py:540 +#: report/models.py:565 msgid "Asset" msgstr "" -#: report/models.py:541 +#: report/models.py:566 msgid "Report asset file" msgstr "" -#: report/models.py:544 +#: report/models.py:569 msgid "Asset file description" msgstr "" @@ -5174,7 +5294,7 @@ msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/order.js:195 templates/js/stock.js:987 +#: templates/js/order.js:195 templates/js/stock.js:1012 msgid "Date" msgstr "" @@ -5197,7 +5317,7 @@ msgid "Moved {n} parts to {loc}" msgstr "" #: stock/forms.py:114 stock/forms.py:418 stock/models.py:509 -#: stock/templates/stock/item_base.html:376 templates/js/stock.js:654 +#: stock/templates/stock/item_base.html:381 templates/js/stock.js:658 msgid "Expiry Date" msgstr "" @@ -5483,12 +5603,12 @@ msgid "Stock Item Attachments" msgstr "" #: stock/templates/stock/item_base.html:33 -#: stock/templates/stock/item_base.html:380 templates/js/table_filters.js:150 +#: stock/templates/stock/item_base.html:385 templates/js/table_filters.js:150 msgid "Expired" msgstr "" #: stock/templates/stock/item_base.html:43 -#: stock/templates/stock/item_base.html:382 templates/js/table_filters.js:155 +#: stock/templates/stock/item_base.html:387 templates/js/table_filters.js:155 msgid "Stale" msgstr "" @@ -5618,7 +5738,7 @@ msgstr "" msgid "Stock Item Details" msgstr "" -#: stock/templates/stock/item_base.html:289 templates/js/build.js:508 +#: stock/templates/stock/item_base.html:289 templates/js/build.js:593 msgid "No location set" msgstr "" @@ -5630,25 +5750,29 @@ msgstr "" msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:380 +#: stock/templates/stock/item_base.html:356 +msgid "No manufacturer set" +msgstr "" + +#: stock/templates/stock/item_base.html:385 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:382 +#: stock/templates/stock/item_base.html:387 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:389 templates/js/stock.js:660 +#: stock/templates/stock/item_base.html:394 templates/js/stock.js:664 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:394 +#: stock/templates/stock/item_base.html:399 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:398 +#: stock/templates/stock/item_base.html:403 msgid "No stocktake performed" msgstr "" @@ -5945,7 +6069,7 @@ msgstr "" msgid "Add Stock Items" msgstr "" -#: stock/views.py:1001 users/models.py:183 +#: stock/views.py:1001 users/models.py:187 msgid "Add" msgstr "" @@ -6011,7 +6135,7 @@ msgstr "" msgid "Serialize Stock" msgstr "" -#: stock/views.py:1575 templates/js/build.js:244 +#: stock/views.py:1575 templates/js/build.js:326 msgid "Create new Stock Item" msgstr "" @@ -6043,14 +6167,6 @@ msgstr "" msgid "Add Stock Tracking Entry" msgstr "" -#: templates/403.html:5 templates/403.html:11 -msgid "Permission Denied" -msgstr "" - -#: templates/403.html:14 -msgid "You do not have permission to view this page." -msgstr "" - #: templates/404.html:5 templates/404.html:11 msgid "Page Not Found" msgstr "" @@ -6119,11 +6235,11 @@ msgstr "" msgid "Enter a search query" msgstr "" -#: templates/InvenTree/search.html:268 templates/js/stock.js:298 +#: templates/InvenTree/search.html:268 templates/js/stock.js:303 msgid "Shipped to customer" msgstr "" -#: templates/InvenTree/search.html:271 templates/js/stock.js:308 +#: templates/InvenTree/search.html:271 templates/js/stock.js:313 msgid "No stock location set" msgstr "" @@ -6168,12 +6284,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/category.html:70 -#: templates/InvenTree/settings/part.html:81 +#: templates/InvenTree/settings/part.html:85 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/category.html:71 -#: templates/InvenTree/settings/part.html:82 +#: templates/InvenTree/settings/part.html:86 msgid "Delete Template" msgstr "" @@ -6221,11 +6337,11 @@ msgstr "" msgid "Part Options" msgstr "" -#: templates/InvenTree/settings/part.html:40 +#: templates/InvenTree/settings/part.html:44 msgid "Part Parameter Templates" msgstr "" -#: templates/InvenTree/settings/part.html:61 +#: templates/InvenTree/settings/part.html:65 msgid "No part parameter templates found" msgstr "" @@ -6341,47 +6457,51 @@ msgid "API Version" msgstr "" #: templates/about.html:39 +msgid "Python Version" +msgstr "" + +#: templates/about.html:44 msgid "Django Version" msgstr "" -#: templates/about.html:46 +#: templates/about.html:51 msgid "Commit Hash" msgstr "" -#: templates/about.html:53 +#: templates/about.html:58 msgid "Commit Date" msgstr "" -#: templates/about.html:58 +#: templates/about.html:63 msgid "InvenTree Documentation" msgstr "" -#: templates/about.html:63 +#: templates/about.html:68 msgid "View Code on GitHub" msgstr "" -#: templates/about.html:68 +#: templates/about.html:73 msgid "Credits" msgstr "" -#: templates/about.html:73 +#: templates/about.html:78 msgid "Mobile App" msgstr "" -#: templates/about.html:78 +#: templates/about.html:83 msgid "Submit Bug Report" msgstr "" -#: templates/about.html:85 templates/clip.html:4 +#: templates/about.html:90 templates/clip.html:4 msgid "copy to clipboard" msgstr "" -#: templates/about.html:85 +#: templates/about.html:90 msgid "copy version information" msgstr "" -#: templates/about.html:95 templates/js/modals.js:568 -#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54 +#: templates/about.html:100 templates/js/modals.js:568 +#: templates/js/modals.js:861 templates/modals.html:29 templates/modals.html:54 #: templates/modals.html:97 msgid "Close" msgstr "" @@ -6442,7 +6562,7 @@ msgstr "" msgid "Unknown response from server" msgstr "" -#: templates/js/barcode.js:119 templates/js/modals.js:901 +#: templates/js/barcode.js:119 templates/js/modals.js:921 msgid "Invalid server response" msgstr "" @@ -6506,7 +6626,7 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/bom.js:175 templates/js/build.js:1004 +#: templates/js/bom.js:175 templates/js/build.js:1091 msgid "Open subassembly" msgstr "" @@ -6542,7 +6662,7 @@ msgstr "" msgid "Delete BOM Item" msgstr "" -#: templates/js/bom.js:470 templates/js/build.js:340 templates/js/build.js:1102 +#: templates/js/bom.js:470 templates/js/build.js:423 templates/js/build.js:1189 msgid "No BOM items found" msgstr "" @@ -6562,37 +6682,45 @@ msgstr "" msgid "Delete build output" msgstr "" -#: templates/js/build.js:243 templates/stock_table.html:20 +#: templates/js/build.js:184 +msgid "No build order allocations found" +msgstr "" + +#: templates/js/build.js:222 templates/js/order.js:382 +msgid "Location not specified" +msgstr "" + +#: templates/js/build.js:325 templates/stock_table.html:20 msgid "New Stock Item" msgstr "" -#: templates/js/build.js:559 +#: templates/js/build.js:644 msgid "Required Part" msgstr "" -#: templates/js/build.js:580 +#: templates/js/build.js:665 msgid "Quantity Per" msgstr "" -#: templates/js/build.js:648 templates/js/build.js:1066 +#: templates/js/build.js:735 templates/js/build.js:1153 #: templates/stock_table.html:59 msgid "Order stock" msgstr "" -#: templates/js/build.js:701 +#: templates/js/build.js:788 msgid "No builds matching query" msgstr "" -#: templates/js/build.js:718 templates/js/part.js:390 templates/js/part.js:634 -#: templates/js/stock.js:509 templates/js/stock.js:941 +#: templates/js/build.js:805 templates/js/part.js:390 templates/js/part.js:635 +#: templates/js/stock.js:514 templates/js/stock.js:966 msgid "Select" msgstr "" -#: templates/js/build.js:738 +#: templates/js/build.js:825 msgid "Build order is overdue" msgstr "" -#: templates/js/build.js:837 +#: templates/js/build.js:924 msgid "No parts allocated for" msgstr "" @@ -6612,17 +6740,29 @@ msgstr "" msgid "No manufacturer parts found" msgstr "" -#: templates/js/company.js:148 templates/js/company.js:246 +#: templates/js/company.js:148 templates/js/company.js:347 #: templates/js/part.js:68 templates/js/part.js:153 msgid "Template part" msgstr "" -#: templates/js/company.js:152 templates/js/company.js:250 +#: templates/js/company.js:152 templates/js/company.js:351 #: templates/js/part.js:72 templates/js/part.js:157 msgid "Assembled part" msgstr "" -#: templates/js/company.js:227 +#: templates/js/company.js:226 +msgid "No parameters found" +msgstr "" + +#: templates/js/company.js:262 +msgid "Edit parameter" +msgstr "" + +#: templates/js/company.js:263 +msgid "Delete parameter" +msgstr "" + +#: templates/js/company.js:328 msgid "No supplier parts found" msgstr "" @@ -6710,76 +6850,76 @@ msgstr "" msgid "Loading Data" msgstr "" -#: templates/js/modals.js:567 templates/js/modals.js:845 +#: templates/js/modals.js:567 templates/js/modals.js:860 #: templates/modals.html:30 templates/modals.html:55 msgid "Submit" msgstr "" -#: templates/js/modals.js:797 +#: templates/js/modals.js:811 msgid "Invalid response from server" msgstr "" -#: templates/js/modals.js:797 +#: templates/js/modals.js:811 msgid "Form data missing from server response" msgstr "" -#: templates/js/modals.js:810 +#: templates/js/modals.js:824 msgid "Error posting form data" msgstr "" -#: templates/js/modals.js:901 +#: templates/js/modals.js:921 msgid "JSON response missing form data" msgstr "" -#: templates/js/modals.js:911 +#: templates/js/modals.js:931 msgid "No Response" msgstr "" -#: templates/js/modals.js:912 +#: templates/js/modals.js:932 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/modals.js:916 +#: templates/js/modals.js:936 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/modals.js:917 +#: templates/js/modals.js:937 msgid "Server returned error code 400" msgstr "" -#: templates/js/modals.js:921 +#: templates/js/modals.js:941 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/modals.js:922 +#: templates/js/modals.js:942 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/modals.js:926 +#: templates/js/modals.js:946 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/modals.js:927 +#: templates/js/modals.js:947 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/modals.js:931 +#: templates/js/modals.js:951 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/modals.js:932 +#: templates/js/modals.js:952 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/modals.js:936 +#: templates/js/modals.js:956 msgid "Error 408: Timeout" msgstr "" -#: templates/js/modals.js:937 +#: templates/js/modals.js:957 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/modals.js:940 +#: templates/js/modals.js:960 msgid "Error requesting form data" msgstr "" @@ -6795,6 +6935,10 @@ msgstr "" msgid "No sales orders found" msgstr "" +#: templates/js/order.js:343 +msgid "No sales order allocations found" +msgstr "" + #: templates/js/part.js:10 msgid "YES" msgstr "" @@ -6823,39 +6967,39 @@ msgstr "" msgid "No variants found" msgstr "" -#: templates/js/part.js:280 templates/js/part.js:518 +#: templates/js/part.js:280 templates/js/part.js:519 msgid "No parts found" msgstr "" -#: templates/js/part.js:457 +#: templates/js/part.js:458 msgid "No category" msgstr "" -#: templates/js/part.js:475 templates/js/table_filters.js:323 +#: templates/js/part.js:476 templates/js/table_filters.js:323 msgid "Low stock" msgstr "" -#: templates/js/part.js:659 templates/js/stock.js:965 +#: templates/js/part.js:660 templates/js/stock.js:990 msgid "Path" msgstr "" -#: templates/js/part.js:702 +#: templates/js/part.js:703 msgid "No test templates matching query" msgstr "" -#: templates/js/part.js:753 templates/js/stock.js:75 +#: templates/js/part.js:754 templates/js/stock.js:75 msgid "Edit test result" msgstr "" -#: templates/js/part.js:754 templates/js/stock.js:76 +#: templates/js/part.js:755 templates/js/stock.js:76 msgid "Delete test result" msgstr "" -#: templates/js/part.js:760 +#: templates/js/part.js:761 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/part.js:805 +#: templates/js/part.js:806 msgid "Single Price Difference" msgstr "" @@ -6953,155 +7097,155 @@ msgstr "" msgid "Test Date" msgstr "" -#: templates/js/stock.js:290 +#: templates/js/stock.js:295 msgid "In production" msgstr "" -#: templates/js/stock.js:294 +#: templates/js/stock.js:299 msgid "Installed in Stock Item" msgstr "" -#: templates/js/stock.js:302 +#: templates/js/stock.js:307 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/stock.js:334 +#: templates/js/stock.js:339 msgid "No stock items matching query" msgstr "" -#: templates/js/stock.js:355 +#: templates/js/stock.js:360 msgid "items" msgstr "" -#: templates/js/stock.js:447 +#: templates/js/stock.js:452 msgid "batches" msgstr "" -#: templates/js/stock.js:474 +#: templates/js/stock.js:479 msgid "locations" msgstr "" -#: templates/js/stock.js:476 +#: templates/js/stock.js:481 msgid "Undefined location" msgstr "" -#: templates/js/stock.js:577 +#: templates/js/stock.js:582 msgid "Stock item is in production" msgstr "" -#: templates/js/stock.js:582 +#: templates/js/stock.js:587 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/stock.js:585 +#: templates/js/stock.js:590 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/stock.js:589 +#: templates/js/stock.js:594 msgid "Stock item has expired" msgstr "" -#: templates/js/stock.js:591 +#: templates/js/stock.js:596 msgid "Stock item will expire soon" msgstr "" -#: templates/js/stock.js:595 +#: templates/js/stock.js:600 msgid "Stock item has been allocated" msgstr "" -#: templates/js/stock.js:599 +#: templates/js/stock.js:604 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/stock.js:607 +#: templates/js/stock.js:611 msgid "Stock item has been rejected" msgstr "" -#: templates/js/stock.js:611 +#: templates/js/stock.js:615 msgid "Stock item is lost" msgstr "" -#: templates/js/stock.js:614 +#: templates/js/stock.js:618 msgid "Stock item is destroyed" msgstr "" -#: templates/js/stock.js:618 templates/js/table_filters.js:143 +#: templates/js/stock.js:622 templates/js/table_filters.js:143 msgid "Depleted" msgstr "" -#: templates/js/stock.js:647 +#: templates/js/stock.js:651 msgid "Stocktake" msgstr "" -#: templates/js/stock.js:828 +#: templates/js/stock.js:853 msgid "Stock Status" msgstr "" -#: templates/js/stock.js:843 +#: templates/js/stock.js:868 msgid "Set Stock Status" msgstr "" -#: templates/js/stock.js:857 +#: templates/js/stock.js:882 msgid "Select Status Code" msgstr "" -#: templates/js/stock.js:858 +#: templates/js/stock.js:883 msgid "Status code must be selected" msgstr "" -#: templates/js/stock.js:997 +#: templates/js/stock.js:1022 msgid "Invalid date" msgstr "" -#: templates/js/stock.js:1044 +#: templates/js/stock.js:1069 msgid "Location no longer exists" msgstr "" -#: templates/js/stock.js:1063 +#: templates/js/stock.js:1088 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/stock.js:1082 +#: templates/js/stock.js:1107 msgid "Customer no longer exists" msgstr "" -#: templates/js/stock.js:1100 +#: templates/js/stock.js:1125 msgid "Stock item no longer exists" msgstr "" -#: templates/js/stock.js:1123 +#: templates/js/stock.js:1148 msgid "Added" msgstr "" -#: templates/js/stock.js:1131 +#: templates/js/stock.js:1156 msgid "Removed" msgstr "" -#: templates/js/stock.js:1163 +#: templates/js/stock.js:1188 msgid "No user information" msgstr "" -#: templates/js/stock.js:1175 +#: templates/js/stock.js:1200 msgid "Edit tracking entry" msgstr "" -#: templates/js/stock.js:1176 +#: templates/js/stock.js:1201 msgid "Delete tracking entry" msgstr "" -#: templates/js/stock.js:1300 +#: templates/js/stock.js:1325 msgid "Create New Location" msgstr "" -#: templates/js/stock.js:1341 +#: templates/js/stock.js:1366 msgid "No installed items" msgstr "" -#: templates/js/stock.js:1364 +#: templates/js/stock.js:1389 msgid "Serial" msgstr "" -#: templates/js/stock.js:1392 +#: templates/js/stock.js:1417 msgid "Uninstall Stock Item" msgstr "" @@ -7267,56 +7411,56 @@ msgstr "" msgid "Purchasable" msgstr "" -#: templates/js/tables.js:321 +#: templates/js/tables.js:323 msgid "Loading data" msgstr "" -#: templates/js/tables.js:324 +#: templates/js/tables.js:326 msgid "rows per page" msgstr "" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "Showing" msgstr "" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "to" msgstr "" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "of" msgstr "" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "rows" msgstr "" -#: templates/js/tables.js:330 templates/search_form.html:6 +#: templates/js/tables.js:332 templates/search_form.html:6 #: templates/search_form.html:8 msgid "Search" msgstr "" -#: templates/js/tables.js:333 +#: templates/js/tables.js:335 msgid "No matching results" msgstr "" -#: templates/js/tables.js:336 +#: templates/js/tables.js:338 msgid "Hide/Show pagination" msgstr "" -#: templates/js/tables.js:339 +#: templates/js/tables.js:341 msgid "Refresh" msgstr "" -#: templates/js/tables.js:342 +#: templates/js/tables.js:344 msgid "Toggle" msgstr "" -#: templates/js/tables.js:345 +#: templates/js/tables.js:347 msgid "Columns" msgstr "" -#: templates/js/tables.js:348 +#: templates/js/tables.js:350 msgid "All" msgstr "" @@ -7560,35 +7704,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:170 +#: users/models.py:174 msgid "Permission set" msgstr "" -#: users/models.py:178 +#: users/models.py:182 msgid "Group" msgstr "" -#: users/models.py:181 +#: users/models.py:185 msgid "View" msgstr "" -#: users/models.py:181 +#: users/models.py:185 msgid "Permission to view items" msgstr "" -#: users/models.py:183 +#: users/models.py:187 msgid "Permission to add items" msgstr "" -#: users/models.py:185 +#: users/models.py:189 msgid "Change" msgstr "" -#: users/models.py:185 +#: users/models.py:189 msgid "Permissions to edit items" msgstr "" -#: users/models.py:187 +#: users/models.py:191 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po index e30c1ed591..20d48e6e5b 100644 --- a/InvenTree/locale/tr/LC_MESSAGES/django.po +++ b/InvenTree/locale/tr/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-06-16 22:40+0000\n" -"PO-Revision-Date: 2021-06-16 22:41\n" +"POT-Creation-Date: 2021-06-24 21:38+0000\n" +"PO-Revision-Date: 2021-06-24 21:40\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Language: tr_TR\n" @@ -19,11 +19,11 @@ msgstr "" #: InvenTree/api.py:64 msgid "API endpoint not found" -msgstr "API uçnoktası bulunmadı" +msgstr "API uç noktası bulunamadı" #: InvenTree/api.py:110 msgid "No action specified" -msgstr "Hiçbir eylem belirtilmedi" +msgstr "İşlem belirtilmedi" #: InvenTree/api.py:124 msgid "No matching action found" @@ -77,7 +77,7 @@ msgstr "Kategori Seçin" msgid "Duplicate serial: {n}" msgstr "Tekrarlanan seri {n}" -#: InvenTree/helpers.py:384 order/models.py:247 order/models.py:357 +#: InvenTree/helpers.py:384 order/models.py:248 order/models.py:358 #: stock/views.py:1795 msgid "Invalid quantity provided" msgstr "Geçersiz veri sağlandı" @@ -104,7 +104,7 @@ msgstr "Seri numarası bulunamadı" #: InvenTree/helpers.py:457 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" -msgstr "Benzersiz serinin numaraları ({s}) miktarla eşleşmeli ({q})" +msgstr "Benzersiz seri numaralarının sayısı ({s}) girilen miktarla eşleşmeli ({q})" #: InvenTree/models.py:59 stock/models.py:1763 msgid "Attachment" @@ -120,56 +120,57 @@ msgstr "Yorum" #: InvenTree/models.py:62 msgid "File comment" -msgstr "Yorum" +msgstr "Dosya yorumu" -#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1999 +#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:2022 #: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/stock.js:1154 +#: templates/js/stock.js:1179 msgid "User" msgstr "Kullanıcı" #: InvenTree/models.py:72 msgid "upload date" -msgstr "Yükleme tarihi" +msgstr "yükleme tarihi" -#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102 -#: part/models.py:686 part/models.py:2140 part/templates/part/params.html:27 -#: report/models.py:179 templates/InvenTree/search.html:137 -#: templates/InvenTree/search.html:289 templates/js/part.js:118 -#: templates/js/part.js:641 templates/js/stock.js:947 +#: InvenTree/models.py:107 InvenTree/models.py:108 company/models.py:396 +#: label/models.py:102 part/models.py:671 part/models.py:2163 +#: part/templates/part/params.html:27 report/models.py:180 +#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289 +#: templates/js/company.js:235 templates/js/part.js:118 +#: templates/js/part.js:642 templates/js/stock.js:972 msgid "Name" msgstr "Adı" #: InvenTree/models.py:114 build/models.py:135 #: build/templates/build/detail.html:21 company/models.py:339 -#: company/models.py:491 company/templates/company/detail.html:27 +#: company/models.py:532 company/templates/company/detail.html:27 #: company/templates/company/manufacturer_part_base.html:72 #: company/templates/company/supplier_part_base.html:71 #: company/templates/company/supplier_part_detail.html:31 label/models.py:109 -#: order/models.py:103 order/templates/order/purchase_order_detail.html:147 -#: part/models.py:710 part/templates/part/detail.html:54 -#: part/templates/part/set_category.html:14 report/models.py:192 -#: report/models.py:505 report/models.py:544 +#: order/models.py:104 order/templates/order/purchase_order_detail.html:147 +#: part/models.py:695 part/templates/part/detail.html:54 +#: part/templates/part/set_category.html:14 report/models.py:193 +#: report/models.py:530 report/models.py:569 #: report/templates/report/inventree_build_order_base.html:118 #: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224 #: templates/InvenTree/search.html:296 #: templates/InvenTree/settings/header.html:9 templates/js/bom.js:190 -#: templates/js/build.js:746 templates/js/build.js:1014 +#: templates/js/build.js:833 templates/js/build.js:1101 #: templates/js/company.js:56 templates/js/order.js:183 #: templates/js/order.js:280 templates/js/part.js:177 templates/js/part.js:260 -#: templates/js/part.js:437 templates/js/part.js:653 templates/js/part.js:721 -#: templates/js/stock.js:552 templates/js/stock.js:959 -#: templates/js/stock.js:1004 +#: templates/js/part.js:437 templates/js/part.js:654 templates/js/part.js:722 +#: templates/js/stock.js:557 templates/js/stock.js:984 +#: templates/js/stock.js:1029 msgid "Description" msgstr "Açıklama" #: InvenTree/models.py:115 msgid "Description (optional)" -msgstr "Açıklama(opsiyonel)" +msgstr "Açıklama (isteğe bağlı)" #: InvenTree/models.py:123 msgid "parent" -msgstr "ebeveyn" +msgstr "üst" #: InvenTree/settings.py:503 msgid "English" @@ -191,15 +192,15 @@ msgstr "Polonyaca" msgid "Turkish" msgstr "Türkçe" -#: InvenTree/status.py:93 +#: InvenTree/status.py:94 msgid "Background worker check failed" msgstr "Arka plan çalışanı kontrolü başarısız oldu" -#: InvenTree/status.py:97 +#: InvenTree/status.py:98 msgid "Email backend not configured" msgstr "E-posta arka ucu yapılandırılmadı" -#: InvenTree/status.py:100 +#: InvenTree/status.py:101 msgid "InvenTree system health checks failed" msgstr "InvenTree sistem sağlık kontrolü başarısız" @@ -258,79 +259,79 @@ msgstr "Reddedildi" #: InvenTree/status_codes.py:272 msgid "Legacy stock tracking entry" -msgstr "" +msgstr "Eski stok izleme girişi" #: InvenTree/status_codes.py:274 msgid "Stock item created" -msgstr "" +msgstr "Stok kalemi oluşturuldu" #: InvenTree/status_codes.py:276 msgid "Edited stock item" -msgstr "" +msgstr "Düzenlenen stok kalemi" #: InvenTree/status_codes.py:277 msgid "Assigned serial number" -msgstr "" +msgstr "Atanan seri numarası" #: InvenTree/status_codes.py:279 msgid "Stock counted" -msgstr "" +msgstr "Stok sayıldı" #: InvenTree/status_codes.py:280 msgid "Stock manually added" -msgstr "" +msgstr "Stok manuel olarak eklendi" #: InvenTree/status_codes.py:281 msgid "Stock manually removed" -msgstr "" +msgstr "Stok manuel olarak çıkarıldı" #: InvenTree/status_codes.py:283 msgid "Location changed" -msgstr "" +msgstr "Konum değişti" #: InvenTree/status_codes.py:285 msgid "Installed into assembly" -msgstr "" +msgstr "Montajda kullanıldı" #: InvenTree/status_codes.py:286 msgid "Removed from assembly" -msgstr "" +msgstr "Montajdan çıkarıldı" #: InvenTree/status_codes.py:288 msgid "Installed component item" -msgstr "" +msgstr "Bileşen ögesinde kullanıldı" #: InvenTree/status_codes.py:289 msgid "Removed component item" -msgstr "" +msgstr "Bileşen ögesinden çıkarıldı" #: InvenTree/status_codes.py:291 msgid "Split from parent item" -msgstr "" +msgstr "Üst ögeden ayır" #: InvenTree/status_codes.py:292 msgid "Split child item" -msgstr "" +msgstr "Alt ögeyi ayır" #: InvenTree/status_codes.py:294 templates/js/table_filters.js:181 msgid "Sent to customer" -msgstr "" +msgstr "Müşteriye gönderildi" #: InvenTree/status_codes.py:295 msgid "Returned from customer" -msgstr "" +msgstr "Müşteriden geri döndü" #: InvenTree/status_codes.py:297 msgid "Build order output created" -msgstr "" +msgstr "Yapım emri çıktısı oluşturuldu" #: InvenTree/status_codes.py:298 msgid "Build order output completed" -msgstr "" +msgstr "Yapım emri çıktısı tamamlandı" #: InvenTree/status_codes.py:300 msgid "Received against purchase order" -msgstr "" +msgstr "Satın alma emri karşılığında alındı" #: InvenTree/status_codes.py:315 msgid "Production" @@ -338,11 +339,11 @@ msgstr "Üretim" #: InvenTree/validators.py:22 msgid "Not a valid currency code" -msgstr "Geçerli para birimi yok" +msgstr "Geçerli bir para birimi kodu değil" #: InvenTree/validators.py:50 msgid "Invalid character in part name" -msgstr "Parça adında geçersiniz karakter bulunuyor" +msgstr "Parça adında geçersiz karakter" #: InvenTree/validators.py:63 #, python-brace-format @@ -353,131 +354,130 @@ msgstr "IPN regex kalıbıyla eşleşmelidir {pat}" #: InvenTree/validators.py:105 #, python-brace-format msgid "Reference must match pattern {pattern}" -msgstr "" +msgstr "Referans {pattern} deseniyle mutlaka eşleşmeli" #: InvenTree/validators.py:113 #, python-brace-format msgid "Illegal character in name ({x})" -msgstr "" +msgstr "({x}) adında geçersiz karakter" #: InvenTree/validators.py:132 InvenTree/validators.py:148 msgid "Overage value must not be negative" -msgstr "" +msgstr "Fazlalık değeri negatif olmamalıdır" #: InvenTree/validators.py:150 msgid "Overage must not exceed 100%" -msgstr "" +msgstr "Fazlalık %100'ü geçmemelidir" #: InvenTree/validators.py:157 msgid "Overage must be an integer value or a percentage" -msgstr "" +msgstr "Fazlalık bir tamsayı veya yüzde olmalıdır" -#: InvenTree/views.py:605 +#: InvenTree/views.py:608 msgid "Delete Item" -msgstr "" +msgstr "Ögeyi Sil" -#: InvenTree/views.py:654 +#: InvenTree/views.py:657 msgid "Check box to confirm item deletion" -msgstr "" +msgstr "Öge silme işlemini onaylamak için kutuyu işaretleyin" -#: InvenTree/views.py:669 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:672 templates/InvenTree/settings/user.html:18 msgid "Edit User Information" -msgstr "" +msgstr "Kullanıcı Bilgisini Düzenle" -#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:683 templates/InvenTree/settings/user.html:22 msgid "Set Password" -msgstr "" +msgstr "Şifre Belirle" -#: InvenTree/views.py:699 +#: InvenTree/views.py:702 msgid "Password fields must match" -msgstr "" +msgstr "Parola alanları eşleşmelidir" -#: InvenTree/views.py:950 templates/navbar.html:95 +#: InvenTree/views.py:953 templates/navbar.html:95 msgid "System Information" -msgstr "" +msgstr "Sistem Bilgisi" #: barcodes/api.py:53 barcodes/api.py:150 msgid "Must provide barcode_data parameter" -msgstr "" +msgstr "Barcode_data parametresini sağlamalıdır" #: barcodes/api.py:126 msgid "No match found for barcode data" -msgstr "" +msgstr "Barkod verisi için eşleşme bulunamadı" #: barcodes/api.py:128 msgid "Match found for barcode data" -msgstr "" +msgstr "Barkod verisi için eşleşme bulundu" #: barcodes/api.py:153 msgid "Must provide stockitem parameter" -msgstr "" +msgstr "Stok kalemi parametresi sağlamalıdır" #: barcodes/api.py:160 msgid "No matching stock item found" -msgstr "" +msgstr "Eşleşen stok kalemi bulunamadı" #: barcodes/api.py:190 msgid "Barcode already matches StockItem object" -msgstr "" +msgstr "Barkod başka bir stok kalemi nesnesi ile eşleşmektedir" #: barcodes/api.py:194 msgid "Barcode already matches StockLocation object" -msgstr "" +msgstr "Barkod başka bir stok konumu nesnesi ile eşleşmektedir" #: barcodes/api.py:198 msgid "Barcode already matches Part object" -msgstr "" +msgstr "Barkod başka bir parça nesnesi ile eşleşmektedir" #: barcodes/api.py:204 barcodes/api.py:216 msgid "Barcode hash already matches StockItem object" -msgstr "" +msgstr "Barkod karması (hash) zaten stok kalemi nesnesiyle eşleşiyor" #: barcodes/api.py:222 msgid "Barcode associated with StockItem" -msgstr "" +msgstr "Barkod başka bir stok kalemiyle ilişkili" #: build/forms.py:37 msgid "Build Order reference" -msgstr "" +msgstr "Yapım İşi Emri referansı" #: build/forms.py:38 msgid "Order target date" -msgstr "" +msgstr "Emir hedef tarihi" #: build/forms.py:42 build/templates/build/build_base.html:146 -#: build/templates/build/detail.html:121 order/forms.py:109 order/forms.py:144 +#: build/templates/build/detail.html:121 order/forms.py:114 order/forms.py:149 #: order/templates/order/order_base.html:124 #: order/templates/order/sales_order_base.html:119 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/build.js:793 templates/js/order.js:200 +#: templates/js/build.js:880 templates/js/order.js:200 #: templates/js/order.js:298 msgid "Target Date" -msgstr "" +msgstr "Hedeflenen tarih" #: build/forms.py:43 build/models.py:225 msgid "Target date for build completion. Build will be overdue after this date." -msgstr "" +msgstr "Yapım işinin tamamlanması için hedef tarih. Bu tarihten sonra yapım işi gecikmiş olacak." #: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1346 #: build/templates/build/allocation_card.html:23 #: build/templates/build/auto_allocate.html:17 #: build/templates/build/build_base.html:133 -#: build/templates/build/detail.html:31 common/models.py:699 -#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77 -#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262 -#: order/forms.py:279 order/models.py:616 order/models.py:817 +#: build/templates/build/detail.html:31 common/models.py:720 +#: company/forms.py:191 company/templates/company/supplier_part_pricing.html:77 +#: order/forms.py:193 order/forms.py:211 order/forms.py:246 order/forms.py:268 +#: order/forms.py:285 order/models.py:617 order/models.py:841 #: order/templates/order/order_wizard/match_parts.html:29 -#: order/templates/order/order_wizard/select_parts.html:32 +#: order/templates/order/order_wizard/select_parts.html:34 #: order/templates/order/purchase_order_detail.html:179 #: order/templates/order/sales_order_detail.html:70 #: order/templates/order/sales_order_detail.html:77 #: order/templates/order/sales_order_detail.html:162 -#: order/templates/order/sales_order_detail.html:230 part/forms.py:342 -#: part/forms.py:372 part/forms.py:388 part/models.py:2270 -#: part/templates/part/allocation.html:19 -#: part/templates/part/allocation.html:53 -#: part/templates/part/order_prices.html:175 -#: part/templates/part/part_pricing.html:13 +#: order/templates/order/sales_order_detail.html:234 part/forms.py:342 +#: part/forms.py:372 part/forms.py:388 part/forms.py:404 part/models.py:2293 +#: part/templates/part/internal_prices.html:98 +#: part/templates/part/order_prices.html:202 +#: part/templates/part/part_pricing.html:16 #: part/templates/part/sale_prices.html:85 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -486,266 +486,267 @@ msgstr "" #: stock/forms.py:175 stock/forms.py:308 #: stock/templates/stock/item_base.html:255 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364 -#: templates/js/bom.js:205 templates/js/build.js:486 templates/js/build.js:1024 -#: templates/js/part.js:795 templates/js/stock.js:1139 -#: templates/js/stock.js:1358 +#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:571 +#: templates/js/build.js:1111 templates/js/order.js:393 +#: templates/js/part.js:796 templates/js/stock.js:1164 +#: templates/js/stock.js:1383 msgid "Quantity" -msgstr "" +msgstr "Miktar" #: build/forms.py:49 msgid "Number of items to build" -msgstr "" +msgstr "Yapılacak öge sayısı" #: build/forms.py:91 msgid "Enter quantity for build output" -msgstr "" +msgstr "Yapım işi çıktısı için miktarını girin" -#: build/forms.py:95 order/forms.py:234 stock/forms.py:118 +#: build/forms.py:95 order/forms.py:240 stock/forms.py:118 msgid "Serial Numbers" -msgstr "" +msgstr "Seri Numaraları" #: build/forms.py:97 msgid "Enter serial numbers for build outputs" -msgstr "" +msgstr "Yapım işi çıktısı için seri numaraları girin" #: build/forms.py:103 msgid "Confirm creation of build output" -msgstr "" +msgstr "Yapım işi çıktısının oluşturulmasını onaylayın" #: build/forms.py:124 msgid "Confirm deletion of build output" -msgstr "" +msgstr "Yapım işi çıktısının silinmesini onaylayın" #: build/forms.py:145 msgid "Confirm unallocation of stock" -msgstr "" +msgstr "Stok tahsisinin iptalini onayla" #: build/forms.py:169 msgid "Confirm stock allocation" -msgstr "" +msgstr "Stok tahsisini onayla" #: build/forms.py:186 msgid "Mark build as complete" -msgstr "" +msgstr "Yapım işini tamamlandı olarak işaretle" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 -#: order/forms.py:82 stock/forms.py:347 -#: stock/templates/stock/item_base.html:285 +#: stock/forms.py:347 stock/templates/stock/item_base.html:285 #: stock/templates/stock/stock_adjust.html:17 #: templates/InvenTree/search.html:260 templates/js/barcode.js:363 -#: templates/js/barcode.js:531 templates/js/build.js:500 -#: templates/js/stock.js:639 templates/js/stock.js:1031 +#: templates/js/barcode.js:531 templates/js/build.js:218 +#: templates/js/build.js:585 templates/js/order.js:378 +#: templates/js/stock.js:643 templates/js/stock.js:1056 msgid "Location" -msgstr "" +msgstr "Konum" #: build/forms.py:211 msgid "Location of completed parts" -msgstr "" +msgstr "Tamamlanmış parçaların konumu" #: build/forms.py:215 build/templates/build/build_base.html:138 -#: build/templates/build/detail.html:59 order/models.py:468 +#: build/templates/build/detail.html:59 order/models.py:469 #: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:403 templates/InvenTree/search.html:252 -#: templates/js/barcode.js:119 templates/js/build.js:780 +#: stock/templates/stock/item_base.html:408 templates/InvenTree/search.html:252 +#: templates/js/barcode.js:119 templates/js/build.js:867 #: templates/js/order.js:187 templates/js/order.js:285 -#: templates/js/stock.js:626 templates/js/stock.js:1108 -#: templates/js/stock.js:1374 +#: templates/js/stock.js:630 templates/js/stock.js:1133 +#: templates/js/stock.js:1399 msgid "Status" -msgstr "" +msgstr "Durum" #: build/forms.py:216 msgid "Build output stock status" -msgstr "" +msgstr "Yapım işi çıktısı stok durumu" #: build/forms.py:223 msgid "Confirm incomplete" -msgstr "" +msgstr "Eksik olarak onayla" #: build/forms.py:224 msgid "Confirm completion with incomplete stock allocation" -msgstr "" +msgstr "Eksik parça tahsisi ile tamamlamayı onayla" #: build/forms.py:227 msgid "Confirm build completion" -msgstr "" +msgstr "Yapım işinin tamamlandığını onaylayın" #: build/forms.py:252 msgid "Confirm cancel" -msgstr "" +msgstr "İptali Onayla" #: build/forms.py:252 build/views.py:66 msgid "Confirm build cancellation" -msgstr "" +msgstr "Yapım işi iptalini onayla" #: build/forms.py:266 msgid "Select quantity of stock to allocate" -msgstr "" +msgstr "Tahsis edilecek stok miktarını seçiniz" #: build/models.py:66 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:73 -#: part/templates/part/allocation.html:23 #: report/templates/report/inventree_build_order_base.html:106 +#: templates/js/build.js:195 msgid "Build Order" -msgstr "" +msgstr "Yapım İşi Emri" #: build/models.py:67 build/templates/build/index.html:8 #: build/templates/build/index.html:15 order/templates/order/so_builds.html:12 #: order/templates/order/so_navbar.html:19 -#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:55 -#: part/templates/part/navbar.html:58 templates/InvenTree/index.html:183 +#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:57 +#: part/templates/part/navbar.html:60 templates/InvenTree/index.html:183 #: templates/InvenTree/search.html:185 #: templates/InvenTree/settings/tabs.html:34 users/models.py:43 msgid "Build Orders" -msgstr "" +msgstr "Yapım İşi Emirleri" #: build/models.py:127 msgid "Build Order Reference" -msgstr "" +msgstr "Yapım İşi Emri Referansı" -#: build/models.py:128 order/models.py:101 order/models.py:618 +#: build/models.py:128 order/models.py:102 order/models.py:619 #: order/templates/order/purchase_order_detail.html:174 -#: order/templates/order/sales_order_detail.html:225 part/models.py:2279 +#: order/templates/order/sales_order_detail.html:229 part/models.py:2302 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197 -#: templates/js/build.js:575 templates/js/build.js:1018 +#: templates/js/build.js:660 templates/js/build.js:1105 msgid "Reference" -msgstr "" +msgstr "Referans" #: build/models.py:138 msgid "Brief description of the build" -msgstr "" +msgstr "Yapım işinin kısa açıklaması" #: build/models.py:147 build/templates/build/build_base.html:163 #: build/templates/build/detail.html:77 msgid "Parent Build" -msgstr "" +msgstr "Üst Yapım İşi" #: build/models.py:148 msgid "BuildOrder to which this build is allocated" -msgstr "" +msgstr "Bu yapım işinin tahsis edildiği yapım işi emri" #: build/models.py:153 build/templates/build/auto_allocate.html:16 #: build/templates/build/build_base.html:128 -#: build/templates/build/detail.html:26 company/models.py:622 -#: order/models.py:660 order/models.py:693 -#: order/templates/order/order_wizard/select_parts.html:30 +#: build/templates/build/detail.html:26 company/models.py:663 +#: order/models.py:661 order/models.py:717 +#: order/templates/order/order_wizard/select_parts.html:32 #: order/templates/order/purchase_order_detail.html:132 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:213 part/models.py:321 -#: part/models.py:1967 part/models.py:1979 part/models.py:1997 -#: part/models.py:2072 part/models.py:2168 part/models.py:2254 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29 +#: order/templates/order/sales_order_detail.html:214 part/models.py:321 +#: part/models.py:1975 part/models.py:1987 part/models.py:2002 +#: part/models.py:2020 part/models.py:2095 part/models.py:2191 +#: part/models.py:2277 part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 part/templates/part/related.html:29 #: part/templates/part/set_category.html:13 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 #: templates/InvenTree/search.html:112 templates/InvenTree/search.html:210 #: templates/js/barcode.js:362 templates/js/bom.js:163 -#: templates/js/build.js:466 templates/js/build.js:751 -#: templates/js/build.js:991 templates/js/company.js:140 -#: templates/js/company.js:238 templates/js/part.js:241 -#: templates/js/part.js:404 templates/js/stock.js:521 -#: templates/js/stock.js:1346 +#: templates/js/build.js:551 templates/js/build.js:838 +#: templates/js/build.js:1078 templates/js/company.js:140 +#: templates/js/company.js:339 templates/js/part.js:241 +#: templates/js/part.js:404 templates/js/stock.js:526 +#: templates/js/stock.js:1371 msgid "Part" -msgstr "" +msgstr "Parça" #: build/models.py:161 msgid "Select part to build" -msgstr "" +msgstr "Yapım işi için parça seçin" #: build/models.py:166 msgid "Sales Order Reference" -msgstr "" +msgstr "Satış Emri Referansı" #: build/models.py:170 msgid "SalesOrder to which this build is allocated" -msgstr "" +msgstr "Bu yapım işinin tahsis edildiği satış emri" #: build/models.py:175 msgid "Source Location" -msgstr "" +msgstr "Kaynak Konum" #: build/models.py:179 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" -msgstr "" +msgstr "Bu yapım işi için stok alınacak konumu seçin (her hangi bir stok konumundan alınması için boş bırakın)" #: build/models.py:184 msgid "Destination Location" -msgstr "" +msgstr "Hedef Konum" #: build/models.py:188 msgid "Select location where the completed items will be stored" -msgstr "" +msgstr "Tamamlanmış ögelerin saklanacağı konumu seçiniz" #: build/models.py:192 msgid "Build Quantity" -msgstr "" +msgstr "Yapım İşi Miktarı" #: build/models.py:195 msgid "Number of stock items to build" -msgstr "" +msgstr "Yapım işi stok kalemlerinin sayısı" #: build/models.py:199 msgid "Completed items" -msgstr "" +msgstr "Tamamlanmış ögeler" #: build/models.py:201 msgid "Number of stock items which have been completed" -msgstr "" +msgstr "Tamamlanan stok kalemlerinin sayısı" #: build/models.py:205 part/templates/part/part_base.html:167 msgid "Build Status" -msgstr "" +msgstr "Yapım İşi Durumu" #: build/models.py:209 msgid "Build status code" -msgstr "" +msgstr "Yapım işi durum kodu" #: build/models.py:213 stock/models.py:466 msgid "Batch Code" -msgstr "" +msgstr "Sıra numarası" #: build/models.py:217 msgid "Batch code for this build output" -msgstr "" +msgstr "Yapım işi çıktısı için sıra numarası" -#: build/models.py:220 order/models.py:107 part/models.py:882 +#: build/models.py:220 order/models.py:108 part/models.py:867 #: part/templates/part/detail.html:126 templates/js/order.js:293 msgid "Creation Date" -msgstr "" +msgstr "Oluşturulma tarihi" -#: build/models.py:224 order/models.py:474 +#: build/models.py:224 order/models.py:475 msgid "Target completion date" -msgstr "" +msgstr "Hedef tamamlama tarihi" -#: build/models.py:228 order/models.py:220 templates/js/build.js:798 +#: build/models.py:228 order/models.py:221 templates/js/build.js:885 msgid "Completion Date" -msgstr "" +msgstr "Tamamlama tarihi" #: build/models.py:234 msgid "completed by" -msgstr "" +msgstr "tamamlayan" #: build/models.py:242 msgid "Issued by" -msgstr "" +msgstr "Veren" #: build/models.py:243 msgid "User who issued this build order" -msgstr "" +msgstr "Bu yapım işi emrini veren kullanıcı" #: build/models.py:251 build/templates/build/build_base.html:184 -#: build/templates/build/detail.html:105 order/models.py:121 +#: build/templates/build/detail.html:105 order/models.py:122 #: order/templates/order/order_base.html:138 -#: order/templates/order/sales_order_base.html:140 part/models.py:886 +#: order/templates/order/sales_order_base.html:140 part/models.py:871 #: report/templates/report/inventree_build_order_base.html:159 msgid "Responsible" -msgstr "" +msgstr "Sorumlu" #: build/models.py:252 msgid "User responsible for this build order" -msgstr "" +msgstr "Bu yapım işi emrinden sorumlu kullanıcı" #: build/models.py:257 build/templates/build/detail.html:91 #: company/templates/company/manufacturer_part_base.html:79 @@ -755,161 +756,159 @@ msgstr "" #: part/templates/part/detail.html:83 part/templates/part/part_base.html:94 #: stock/models.py:460 stock/templates/stock/item_base.html:345 msgid "External Link" -msgstr "" +msgstr "Harici Bağlantı" -#: build/models.py:258 part/models.py:744 stock/models.py:462 +#: build/models.py:258 part/models.py:729 stock/models.py:462 msgid "Link to external URL" -msgstr "" +msgstr "Harici URL'ye bağlantı" #: build/models.py:262 build/templates/build/navbar.html:53 -#: company/models.py:132 company/models.py:498 +#: company/models.py:132 company/models.py:539 #: company/templates/company/navbar.html:70 -#: company/templates/company/navbar.html:73 order/models.py:125 -#: order/models.py:620 order/templates/order/po_navbar.html:29 -#: order/templates/order/po_navbar.html:32 -#: order/templates/order/purchase_order_detail.html:239 -#: order/templates/order/sales_order_detail.html:278 +#: company/templates/company/navbar.html:73 order/models.py:126 +#: order/models.py:621 order/templates/order/po_navbar.html:38 +#: order/templates/order/po_navbar.html:41 +#: order/templates/order/purchase_order_detail.html:243 +#: order/templates/order/sales_order_detail.html:309 #: order/templates/order/so_navbar.html:33 -#: order/templates/order/so_navbar.html:36 part/models.py:871 -#: part/templates/part/navbar.html:134 +#: order/templates/order/so_navbar.html:36 part/models.py:856 +#: part/templates/part/navbar.html:142 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377 #: stock/models.py:532 stock/models.py:1667 stock/models.py:1769 #: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37 -#: templates/js/bom.js:356 templates/js/stock.js:141 templates/js/stock.js:674 +#: templates/js/bom.js:356 templates/js/stock.js:141 templates/js/stock.js:699 msgid "Notes" -msgstr "" +msgstr "Notlar" #: build/models.py:263 msgid "Extra build notes" -msgstr "" +msgstr "Yapım işi için ekstra notlar" #: build/models.py:740 msgid "No build output specified" -msgstr "" +msgstr "Yapım işi çıktısı belirtilmedi" #: build/models.py:743 msgid "Build output is already completed" -msgstr "" +msgstr "Yapım işi çıktısı zaten tamamlanmış" #: build/models.py:746 msgid "Build output does not match Build Order" -msgstr "" +msgstr "Yapım işi çıktısı, yapım işi emri ile eşleşmiyor" #: build/models.py:1152 msgid "BuildItem must be unique for build, stock_item and install_into" -msgstr "" +msgstr "Yapım işi ögesi; yapım işi, stok kalemi ve kurulacak yer için benzersiz olmalıdır" #: build/models.py:1177 msgid "Build item must specify a build output, as master part is marked as trackable" -msgstr "" +msgstr "Ana parça izlenebilir olarak işaretlendiğinden, yapım işi çıktısı için bir yapım işi ögesi belirtmelidir" #: build/models.py:1181 #, python-brace-format msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" -msgstr "" +msgstr "Tahsis edilecek miktar ({n}) mevcut miktarı ({q}) geçmemeli" -#: build/models.py:1188 order/models.py:791 +#: build/models.py:1188 order/models.py:815 msgid "StockItem is over-allocated" -msgstr "" +msgstr "Stok kalemi fazladan tahsis edilmiş" -#: build/models.py:1192 order/models.py:794 +#: build/models.py:1192 order/models.py:818 msgid "Allocation quantity must be greater than zero" -msgstr "" +msgstr "Tahsis edilen miktar sıfırdan büyük olmalıdır" #: build/models.py:1196 msgid "Quantity must be 1 for serialized stock" -msgstr "" +msgstr "Seri numaralı stok için miktar bir olmalı" #: build/models.py:1256 #, python-brace-format msgid "Selected stock item not found in BOM for part '{p}'" -msgstr "" +msgstr "{p} parçasının malzeme listesindeki seçili stok kalemi bulunamadı" #: build/models.py:1316 stock/templates/stock/item_base.html:317 -#: templates/InvenTree/search.html:183 templates/js/build.js:724 +#: templates/InvenTree/search.html:183 templates/js/build.js:811 #: templates/navbar.html:29 msgid "Build" -msgstr "" +msgstr "Yapım İşi" #: build/models.py:1317 msgid "Build to allocate parts" -msgstr "" +msgstr "Yapım işi için tahsis edilen parçalar" -#: build/models.py:1333 part/templates/part/allocation.html:18 -#: part/templates/part/allocation.html:24 -#: part/templates/part/allocation.html:31 -#: part/templates/part/allocation.html:49 -#: stock/templates/stock/item_base.html:8 +#: build/models.py:1333 stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:31 #: stock/templates/stock/item_base.html:339 -#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:841 -#: templates/js/stock.js:1090 +#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:206 +#: templates/js/build.js:211 templates/js/build.js:928 +#: templates/js/order.js:366 templates/js/order.js:371 +#: templates/js/stock.js:1115 msgid "Stock Item" -msgstr "" +msgstr "Stok Kalemi" #: build/models.py:1334 msgid "Source stock item" -msgstr "" +msgstr "Kaynak stok kalemi" #: build/models.py:1347 msgid "Stock quantity to allocate to build" -msgstr "" +msgstr "Yapım işi için tahsis edilen stok miktarı" #: build/models.py:1355 msgid "Install into" -msgstr "" +msgstr "Kurulduğu yer" #: build/models.py:1356 msgid "Destination stock item" -msgstr "" +msgstr "Hedef stok kalemi" #: build/templates/build/allocate.html:7 msgid "Allocate Parts" -msgstr "" +msgstr "Parçaları Tahsis Et" #: build/templates/build/allocate.html:15 msgid "Allocate Stock to Build" -msgstr "" +msgstr "Yapım İşi için Stok Tahsis Et" #: build/templates/build/allocate.html:22 msgid "Allocate stock to build" -msgstr "" +msgstr "Yapım işi için stok tahsis et" #: build/templates/build/allocate.html:23 msgid "Auto Allocate" -msgstr "" +msgstr "Otomatik Tahsis Et" -#: build/templates/build/allocate.html:25 templates/js/build.js:656 +#: build/templates/build/allocate.html:25 templates/js/build.js:743 msgid "Unallocate stock" -msgstr "" +msgstr "Stok tahsisini kaldır" #: build/templates/build/allocate.html:26 build/views.py:319 build/views.py:805 msgid "Unallocate Stock" -msgstr "" +msgstr "Stok Tahsisini Kaldır" #: build/templates/build/allocate.html:29 msgid "Order required parts" -msgstr "" +msgstr "Gerekli parçaları sipariş edin" #: build/templates/build/allocate.html:30 #: company/templates/company/detail_manufacturer_part.html:33 #: company/templates/company/detail_supplier_part.html:32 order/views.py:986 #: part/templates/part/category.html:127 msgid "Order Parts" -msgstr "" +msgstr "Parça Siparişi" #: build/templates/build/allocate.html:36 msgid "Untracked stock has been fully allocated for this Build Order" -msgstr "" +msgstr "Takip edilmeyen stok yapım işi emri için tamamen tahsis edildi" #: build/templates/build/allocate.html:40 msgid "Untracked stock has not been fully allocated for this Build Order" -msgstr "" +msgstr "Takip edilmeyen stok yapım işi emri için tamamen tahsis edilemedi" #: build/templates/build/allocate.html:47 msgid "This Build Order does not have any associated untracked BOM items" -msgstr "" +msgstr "Bu yapım işi emri, herhangi bir takip edilmeyen malzeme listesi öğesine sahip değil" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 @@ -917,60 +916,60 @@ msgstr "" #: order/templates/order/sales_order_detail.html:160 #: report/templates/report/inventree_test_report_base.html:75 #: stock/models.py:454 stock/templates/stock/item_base.html:249 -#: templates/js/build.js:484 +#: templates/js/build.js:569 msgid "Serial Number" -msgstr "" +msgstr "Seri Numara" #: build/templates/build/attachments.html:12 #: build/templates/build/navbar.html:43 build/templates/build/navbar.html:46 -#: order/templates/order/po_navbar.html:26 -#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:125 -#: part/templates/part/navbar.html:128 stock/templates/stock/navbar.html:47 +#: order/templates/order/po_navbar.html:35 +#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:133 +#: part/templates/part/navbar.html:136 stock/templates/stock/navbar.html:47 #: stock/templates/stock/navbar.html:50 msgid "Attachments" -msgstr "" +msgstr "Ekler" #: build/templates/build/auto_allocate.html:9 msgid "Automatically Allocate Stock" -msgstr "" +msgstr "Stoku Otomatik Olarak Tahsis Et" #: build/templates/build/auto_allocate.html:10 msgid "The following stock items will be allocated to the specified build output" -msgstr "" +msgstr "Aşağıdaki stok kalemleri, belirtilen yapım işi çıktısı için tahsis edilecek" #: build/templates/build/auto_allocate.html:37 msgid "No stock items found that can be automatically allocated to this build" -msgstr "" +msgstr "Bu yapım işi için otomatik tahsis edilecek stok kalemleri bulunamadı" #: build/templates/build/auto_allocate.html:39 msgid "Stock items will have to be manually allocated" -msgstr "" +msgstr "Stok kalemleri manuel olarak tahsis edilecek" #: build/templates/build/build_base.html:18 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" -msgstr "" +msgstr "Bu yapım işi emri, %(link)s sipariş emrine tahsis edilmiştir" #: build/templates/build/build_base.html:25 #, python-format msgid "This Build Order is a child of Build Order %(link)s" -msgstr "" +msgstr "Bu yapım işi emri, %(link)s yapım iş emrinin altıdır" #: build/templates/build/build_base.html:32 msgid "Build Order is ready to mark as completed" -msgstr "" +msgstr "Yapım işi tamamlandı olarak işaretlenmeye hazır" #: build/templates/build/build_base.html:37 msgid "Build Order cannot be completed as outstanding outputs remain" -msgstr "" +msgstr "Bekleyen çıktılar kaldığı için yapım işi emri tamamlanamıyor" #: build/templates/build/build_base.html:42 msgid "Required build quantity has not yet been completed" -msgstr "" +msgstr "Gerekli yapım işi miktarı henüz tamamlanmadı" #: build/templates/build/build_base.html:47 msgid "Stock has not been fully allocated to this Build Order" -msgstr "" +msgstr "Stok, yapım işi emri için tamamen tahsis edilemedi" #: build/templates/build/build_base.html:75 #: company/templates/company/company_base.html:40 @@ -982,7 +981,7 @@ msgstr "" #: stock/templates/stock/item_base.html:62 #: stock/templates/stock/location.html:31 msgid "Admin view" -msgstr "" +msgstr "Yönetici görünümü" #: build/templates/build/build_base.html:81 #: build/templates/build/build_base.html:150 @@ -993,115 +992,114 @@ msgstr "" #: templates/js/table_filters.js:245 templates/js/table_filters.js:264 #: templates/js/table_filters.js:281 msgid "Overdue" -msgstr "" +msgstr "Vadesi geçmiş" #: build/templates/build/build_base.html:90 msgid "Print actions" -msgstr "" +msgstr "Yazdırma işlemleri" #: build/templates/build/build_base.html:94 msgid "Print Build Order" -msgstr "" +msgstr "Yapım İşi Emrini Yazdır" #: build/templates/build/build_base.html:100 #: build/templates/build/build_base.html:225 msgid "Complete Build" -msgstr "" +msgstr "Tamamlanmış Yapım İşi" #: build/templates/build/build_base.html:105 msgid "Build actions" -msgstr "" +msgstr "Yapım İşi işlemleri" #: build/templates/build/build_base.html:109 msgid "Edit Build" -msgstr "" +msgstr "Yapım İşini Düzenle" #: build/templates/build/build_base.html:111 #: build/templates/build/build_base.html:209 build/views.py:57 msgid "Cancel Build" -msgstr "" +msgstr "Yapım İşini İptal Et" #: build/templates/build/build_base.html:124 #: build/templates/build/detail.html:11 msgid "Build Details" -msgstr "" +msgstr "Yapım İşi Detayları" #: build/templates/build/build_base.html:150 #, python-format msgid "This build was due on %(target)s" -msgstr "" +msgstr "Bu yapım işinin %(target)s tarihinde süresi doluyor" #: build/templates/build/build_base.html:157 #: build/templates/build/detail.html:64 msgid "Progress" -msgstr "" +msgstr "İlerleme" #: build/templates/build/build_base.html:170 -#: build/templates/build/detail.html:84 order/models.py:691 +#: build/templates/build/detail.html:84 order/models.py:715 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:35 #: order/templates/order/sales_order_ship.html:25 -#: part/templates/part/allocation.html:30 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 #: stock/templates/stock/item_base.html:279 templates/js/order.js:245 msgid "Sales Order" -msgstr "" +msgstr "Sipariş Emri" #: build/templates/build/build_base.html:177 #: build/templates/build/detail.html:98 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" -msgstr "" +msgstr "Veren" #: build/templates/build/build_base.html:217 msgid "Incomplete Outputs" -msgstr "" +msgstr "Tamamlanmamış Çıktılar" #: build/templates/build/build_base.html:218 msgid "Build Order cannot be completed as incomplete build outputs remain" -msgstr "" +msgstr "Tamamlanmamış yapım işi çıktıları kaldığı için yapım işi emri tamamlanamıyor" #: build/templates/build/build_children.html:10 #: build/templates/build/navbar.html:36 msgid "Child Build Orders" -msgstr "" +msgstr "Alt Yapım İşi Emrileri" #: build/templates/build/build_output.html:15 msgid "Incomplete Build Outputs" -msgstr "" +msgstr "Tamamlanmamış Yapım İşi Çıktıları" #: build/templates/build/build_output.html:22 msgid "Create new build output" -msgstr "" +msgstr "Yeni yapım işi çıktısı oluştur" #: build/templates/build/build_output.html:23 msgid "Create New Output" -msgstr "" +msgstr "Yeni Çıktı Oluştur" #: build/templates/build/build_output.html:36 msgid "Create a new build output" -msgstr "" +msgstr "Yeni bir yapım işi çıktısı oluştur" #: build/templates/build/build_output.html:37 msgid "No incomplete build outputs remain." -msgstr "" +msgstr "Tamamlanmamış yapım işi çıktısı kalmadı." #: build/templates/build/build_output.html:38 msgid "Create a new build output using the button above" -msgstr "" +msgstr "Yukarıdaki düğmeyi kullanarak yeni bir yapım işi çıktısı oluştur" #: build/templates/build/build_output.html:49 msgid "Completed Build Outputs" -msgstr "" +msgstr "Tamamlanmış Yapım İşi Çıktıları" #: build/templates/build/build_output_create.html:7 msgid "The Bill of Materials contains trackable parts" -msgstr "" +msgstr "Bu Malzeme Listesi takip edilebilir parçalar içeriyor" #: build/templates/build/build_output_create.html:8 msgid "Build outputs must be generated individually." -msgstr "" +msgstr "Yapım işi çıktıları ayrı ayrı oluşturulmalıdır." #: build/templates/build/build_output_create.html:9 msgid "Multiple build outputs will be created based on the quantity specified." @@ -1109,11 +1107,11 @@ msgstr "" #: build/templates/build/build_output_create.html:15 msgid "Trackable parts can have serial numbers specified" -msgstr "" +msgstr "Takip edilebilir parçaların seri numaraları belirtilmiş olmalı" #: build/templates/build/build_output_create.html:16 msgid "Enter serial numbers to generate multiple single build outputs" -msgstr "" +msgstr "Birden çok tek yapım işi çıktısı oluşturmak için seri numaraları girin" #: build/templates/build/cancel.html:5 msgid "Are you sure you wish to cancel this build?" @@ -1121,312 +1119,315 @@ msgstr "" #: build/templates/build/complete.html:8 msgid "Build Order is complete" -msgstr "" +msgstr "Yapım işi emri tamamlandı" #: build/templates/build/complete.html:12 msgid "Build Order is incomplete" -msgstr "" +msgstr "Yapım işi emri eksik" #: build/templates/build/complete.html:15 msgid "Incompleted build outputs remain" -msgstr "" +msgstr "Eksik yapım işi çıktıları kaldı" #: build/templates/build/complete.html:18 msgid "Required build quantity has not been completed" -msgstr "" +msgstr "Gerekli yapım işi miktarı tamamlanmadı" #: build/templates/build/complete.html:21 msgid "Required stock has not been fully allocated" -msgstr "" +msgstr "Gerekli stok tamamen tahsis edilemedi" #: build/templates/build/complete_output.html:10 msgid "Stock allocation is complete for this output" -msgstr "" +msgstr "Bu çıktı için stok tahsisi tamamlandı" #: build/templates/build/complete_output.html:14 msgid "Stock allocation is incomplete" -msgstr "" +msgstr "Stok tahsisi tamamlanmamış" #: build/templates/build/complete_output.html:20 msgid "tracked parts have not been fully allocated" -msgstr "" +msgstr "takip edilebilir parçalar tamamen tahsis edilemedi" #: build/templates/build/complete_output.html:41 msgid "The following items will be created" -msgstr "" +msgstr "Aşağıdaki ögeler oluşturulacak" #: build/templates/build/create_build_item.html:7 msgid "Select a stock item to allocate to the selected build output" -msgstr "" +msgstr "Seçili yapım işi emri için tahsis edilecek bir stok kalemi seçiniz" #: build/templates/build/create_build_item.html:11 #, python-format msgid "The allocated stock will be installed into the following build output:
%(output)s" -msgstr "" +msgstr "Tahsis edilen stok bu yapım işi çıktısının kurulmasında kullanılacak:
%(output)s" #: build/templates/build/create_build_item.html:17 #, python-format msgid "No stock available for %(part)s" -msgstr "" +msgstr "%(part)s için mevcut stok yok" #: build/templates/build/delete_build_item.html:8 msgid "Are you sure you want to unallocate this stock?" -msgstr "" +msgstr "Bu stokun tahsisinin iptal etmek istediğinizden emin misiniz?" #: build/templates/build/delete_build_item.html:11 msgid "The selected stock will be unallocated from the build output" -msgstr "" +msgstr "Bu yapım işi için seçili stok tahsisi iptal edilecek" #: build/templates/build/detail.html:35 msgid "Stock Source" -msgstr "" +msgstr "Stok Kaynağı" #: build/templates/build/detail.html:40 msgid "Stock can be taken from any available location." -msgstr "" +msgstr "Stok herhangi bir konumdan alınabilir." -#: build/templates/build/detail.html:46 stock/forms.py:169 stock/forms.py:375 +#: build/templates/build/detail.html:46 order/forms.py:85 order/models.py:678 +#: order/templates/order/purchase_order_detail.html:239 +#: order/templates/order/receive_parts.html:25 stock/forms.py:169 +#: stock/forms.py:375 msgid "Destination" -msgstr "" +msgstr "Hedef" #: build/templates/build/detail.html:53 msgid "Destination location not specified" -msgstr "" +msgstr "Hedef konumu belirtilmedi" #: build/templates/build/detail.html:70 -#: stock/templates/stock/item_base.html:303 templates/js/stock.js:634 -#: templates/js/stock.js:1381 templates/js/table_filters.js:112 +#: stock/templates/stock/item_base.html:303 templates/js/stock.js:638 +#: templates/js/stock.js:1406 templates/js/table_filters.js:112 #: templates/js/table_filters.js:206 msgid "Batch" -msgstr "" +msgstr "Toplu" #: build/templates/build/detail.html:116 #: order/templates/order/order_base.html:111 -#: order/templates/order/sales_order_base.html:113 templates/js/build.js:788 +#: order/templates/order/sales_order_base.html:113 templates/js/build.js:875 msgid "Created" -msgstr "" +msgstr "Oluşturuldu" #: build/templates/build/detail.html:127 msgid "No target date set" -msgstr "" +msgstr "Hedef tarih ayarlanmadı" -#: build/templates/build/detail.html:132 templates/js/build.js:766 +#: build/templates/build/detail.html:132 templates/js/build.js:853 msgid "Completed" -msgstr "" +msgstr "Tamamlandı" #: build/templates/build/detail.html:136 msgid "Build not complete" -msgstr "" +msgstr "Yapım İşi tamamlanmadı" #: build/templates/build/edit_build_item.html:7 msgid "Alter the quantity of stock allocated to the build output" -msgstr "" +msgstr "Yapım işi çıktısına tahsis edilen stok miktarını değiştir" #: build/templates/build/index.html:28 build/views.py:678 msgid "New Build Order" -msgstr "" +msgstr "Yeni Yapım İşi Emri" #: build/templates/build/index.html:37 build/templates/build/index.html:38 msgid "Print Build Orders" -msgstr "" +msgstr "Yapım İşi Emirlerini Yazdır" #: build/templates/build/index.html:43 #: order/templates/order/purchase_orders.html:27 #: order/templates/order/sales_orders.html:27 msgid "Display calendar view" -msgstr "" +msgstr "Takvim görünümünü görüntüle" #: build/templates/build/index.html:46 #: order/templates/order/purchase_orders.html:30 #: order/templates/order/sales_orders.html:30 msgid "Display list view" -msgstr "" +msgstr "Liste görünümünü görüntüle" #: build/templates/build/navbar.html:12 msgid "Build Order Details" -msgstr "" +msgstr "Yapım İşi Emri Detayları" #: build/templates/build/navbar.html:15 #: company/templates/company/navbar.html:15 -#: order/templates/order/po_navbar.html:14 -#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15 -#: templates/js/stock.js:1019 +#: order/templates/order/po_navbar.html:15 +#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:17 +#: templates/js/stock.js:1044 msgid "Details" -msgstr "" +msgstr "Detaylar" #: build/templates/build/navbar.html:21 build/templates/build/navbar.html:24 #: build/views.py:91 msgid "Allocate Stock" -msgstr "" +msgstr "Stok Tahsis Et" #: build/templates/build/navbar.html:29 build/templates/build/navbar.html:32 msgid "Build Outputs" -msgstr "" +msgstr "Yapım İşi Çıktıları" #: build/templates/build/navbar.html:39 msgid "Child Builds" -msgstr "" +msgstr "Alt Yapım İşleri" #: build/templates/build/navbar.html:50 msgid "Build Order Notes" -msgstr "" +msgstr "Yapım İşi Emri Notları" #: build/templates/build/notes.html:12 msgid "Build Notes" -msgstr "" +msgstr "Yapım İşi Notları" #: build/templates/build/notes.html:14 company/templates/company/notes.html:13 #: order/templates/order/order_notes.html:15 #: order/templates/order/sales_order_notes.html:16 #: part/templates/part/notes.html:14 stock/templates/stock/item_notes.html:15 msgid "Edit notes" -msgstr "" +msgstr "Notları Düzenle" #: build/templates/build/notes.html:26 company/templates/company/notes.html:24 #: order/templates/order/order_notes.html:27 #: order/templates/order/sales_order_notes.html:29 -#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:482 -#: stock/templates/stock/item_base.html:492 +#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:487 +#: stock/templates/stock/item_base.html:497 #: stock/templates/stock/item_notes.html:26 msgid "Save" -msgstr "" +msgstr "Kaydet" #: build/templates/build/unallocate.html:10 msgid "Are you sure you wish to unallocate all stock for this build?" -msgstr "" +msgstr "Bu yapım işi için tahsis edilen tüm stokları kaldırmak istediğinizden emin misiniz?" #: build/templates/build/unallocate.html:12 msgid "All incomplete stock allocations will be removed from the build" -msgstr "" +msgstr "Tüm eksik stok tahsisleri yapım işinden kaldırılacak" #: build/views.py:77 msgid "Build was cancelled" -msgstr "" +msgstr "Yapım işi iptal edildi" #: build/views.py:138 msgid "Allocated stock to build output" -msgstr "" +msgstr "Yapım işi çıktısına stok tahsis edildi" #: build/views.py:150 msgid "Create Build Output" -msgstr "" +msgstr "Yapım İşi Çıktısı Oluştur" #: build/views.py:168 msgid "Maximum output quantity is " -msgstr "" +msgstr "Maksimum çıktı miktarı " #: build/views.py:184 stock/views.py:1821 msgid "Serial numbers already exist" -msgstr "" +msgstr "Seri numaraları zaten mevcut" #: build/views.py:193 msgid "Serial numbers required for trackable build output" -msgstr "" +msgstr "Seri numaraları takip edilebilir yapım işi çıktıları için gerekli" #: build/views.py:259 msgid "Delete Build Output" -msgstr "" +msgstr "Yapım İşi Çıktısı Sil" #: build/views.py:280 build/views.py:370 msgid "Confirm unallocation of build stock" -msgstr "" +msgstr "Yapım işi stoku tahsisinin iptalini onayla" #: build/views.py:281 build/views.py:371 stock/views.py:425 msgid "Check the confirmation box" -msgstr "" +msgstr "Onay kutusunu işaretleyin" #: build/views.py:293 msgid "Build output does not match build" -msgstr "" +msgstr "Yapım işi çıktısı yapım işi ile eşleşmiyor" #: build/views.py:295 build/views.py:496 msgid "Build output must be specified" -msgstr "" +msgstr "Yapım işi çıktısı belirtilmeli" #: build/views.py:307 msgid "Build output deleted" -msgstr "" +msgstr "Yapım işi çıktısı silindi" #: build/views.py:405 msgid "Complete Build Order" -msgstr "" +msgstr "Tamamlanmış Yapım İşi Emri" #: build/views.py:411 msgid "Build order cannot be completed - incomplete outputs remain" -msgstr "" +msgstr "Yapım işi emri tamamlanamadı - eksik çıktılar kaldı" #: build/views.py:422 msgid "Completed build order" -msgstr "" +msgstr "Tamamlanmış yapım işi emri" #: build/views.py:438 msgid "Complete Build Output" -msgstr "" +msgstr "Tamamlanmış Yapım İşi Çıktısı" #: build/views.py:480 msgid "Invalid stock status value selected" -msgstr "" +msgstr "Geçersiz stok durum değeri seçildi" #: build/views.py:487 msgid "Quantity to complete cannot exceed build output quantity" -msgstr "" +msgstr "Tamamlanacak miktar yapım işi çıktı miktarını aşamaz" #: build/views.py:493 msgid "Confirm completion of incomplete build" -msgstr "" +msgstr "Eksik yapım işinin tamamlandığını onaylayın" #: build/views.py:592 msgid "Build output completed" -msgstr "" +msgstr "Yapım işi çıktısı tamamlandı" #: build/views.py:732 msgid "Created new build" -msgstr "" +msgstr "Yeni yapım işi oluşturuldu" #: build/views.py:753 msgid "Edit Build Order Details" -msgstr "" +msgstr "Yapım İşi Emri Detaylarını Düzenle" #: build/views.py:786 msgid "Edited build" -msgstr "" +msgstr "Yapım işi düzenlendi" #: build/views.py:795 msgid "Delete Build Order" -msgstr "" +msgstr "Yapım İşi Emrini Sil" #: build/views.py:810 msgid "Removed parts from build allocation" -msgstr "" +msgstr "Yapım işinden tahsis edilen parçalar çıkarıldı" #: build/views.py:822 msgid "Allocate stock to build output" -msgstr "" +msgstr "Yapım işi çıktısına stok tahsis edildi" #: build/views.py:865 msgid "Item must be currently in stock" -msgstr "" +msgstr "Öge stokta bulunmalı" #: build/views.py:871 msgid "Stock item is over-allocated" -msgstr "" +msgstr "Stok kalemi fazladan tahsis edilmiş" -#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:585 -#: templates/js/build.js:848 templates/js/build.js:1031 +#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:670 +#: templates/js/build.js:935 templates/js/build.js:1118 msgid "Available" -msgstr "" +msgstr "Mevcut" #: build/views.py:874 msgid "Stock item must be selected" -msgstr "" +msgstr "Stok kalemi seçilmeli" #: build/views.py:1037 msgid "Edit Stock Allocation" -msgstr "" +msgstr "Stok Tahsisini Düzenle" #: build/views.py:1041 msgid "Updated Build Item" -msgstr "" +msgstr "Yapım İşi Ögesini Güncelle" #: build/views.py:1070 msgid "Add Build Order Attachment" @@ -1435,56 +1436,56 @@ msgstr "" #: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:173 #: stock/views.py:277 msgid "Added attachment" -msgstr "" +msgstr "Ek eklendi" #: build/views.py:1119 order/views.py:194 order/views.py:215 msgid "Edit Attachment" -msgstr "" +msgstr "Ek Düzenle" #: build/views.py:1129 order/views.py:198 order/views.py:219 msgid "Attachment updated" -msgstr "" +msgstr "Ek güncellendi" #: build/views.py:1139 order/views.py:234 order/views.py:248 msgid "Delete Attachment" -msgstr "" +msgstr "Eki Sil" #: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333 msgid "Deleted attachment" -msgstr "" +msgstr "Eki sil" #: common/files.py:64 msgid "Unsupported file format: {ext.upper()}" -msgstr "" +msgstr "Desteklenmeyen dosya formatı: {ext.upper()}" #: common/files.py:69 msgid "Error reading file (invalid format)" -msgstr "" +msgstr "Dosya okurken hata (geçersiz biçim)" #: common/files.py:71 msgid "Error reading file (incorrect dimension)" -msgstr "" +msgstr "Dosya okurken hata (hatalı ölçüler)" #: common/files.py:73 msgid "Error reading file (data could be corrupted)" -msgstr "" +msgstr "Dosya okurken hata (veri bozulmuş olabilir)" #: common/forms.py:39 templates/attachment_table.html:15 msgid "File" -msgstr "" +msgstr "Dosya" #: common/forms.py:40 msgid "Select file to upload" -msgstr "" +msgstr "Yüklenecek dosyayı seç" #: common/forms.py:55 msgid "{name.title()} File" -msgstr "" +msgstr "{name.title()} Dosya" #: common/forms.py:56 #, python-brace-format msgid "Select {name} file to upload" -msgstr "" +msgstr "{name} dosyasını yüklemek için seçin" #: common/models.py:59 msgid "InvenTree Instance Name" @@ -1524,7 +1525,7 @@ msgstr "" #: common/models.py:86 msgid "Allow download of remote images and files from external URL" -msgstr "" +msgstr "Harici URL'den resim ve dosyaların indirilmesine izin ver" #: common/models.py:92 msgid "Barcode Support" @@ -1536,27 +1537,27 @@ msgstr "" #: common/models.py:99 msgid "IPN Regex" -msgstr "" +msgstr "DPN Regex" #: common/models.py:100 msgid "Regular expression pattern for matching Part IPN" -msgstr "" +msgstr "Parça DPN eşleştirmesi için Düzenli İfade Kalıbı (Regex)" #: common/models.py:104 msgid "Allow Duplicate IPN" -msgstr "" +msgstr "Yinelenen DPN'ye İzin Ver" #: common/models.py:105 msgid "Allow multiple parts to share the same IPN" -msgstr "" +msgstr "Birden çok parçanın aynı DPN'yi paylaşmasına izin ver" #: common/models.py:111 msgid "Allow Editing IPN" -msgstr "" +msgstr "DPN Düzenlemeye İzin Ver" #: common/models.py:112 msgid "Allow changing the IPN value while editing a part" -msgstr "" +msgstr "Parçayı düzenlerken DPN değiştirmeye izin ver" #: common/models.py:118 msgid "Copy Part BOM Data" @@ -1584,11 +1585,11 @@ msgstr "" #: common/models.py:139 msgid "Copy Category Parameter Templates" -msgstr "" +msgstr "Kategori Paremetre Sablonu Kopyala" #: common/models.py:140 msgid "Copy category parameter templates when creating a part" -msgstr "" +msgstr "Parça oluştururken kategori parametre şablonlarını kopyala" #: common/models.py:146 msgid "Recent Part Count" @@ -1598,68 +1599,68 @@ msgstr "" msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:153 part/models.py:2170 part/templates/part/detail.html:160 -#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25 +#: common/models.py:153 part/models.py:2193 part/templates/part/detail.html:160 +#: report/models.py:186 stock/forms.py:259 templates/js/table_filters.js:25 #: templates/js/table_filters.js:315 msgid "Template" -msgstr "" +msgstr "Şablon" #: common/models.py:154 msgid "Parts are templates by default" -msgstr "" +msgstr "Parçaları varsayılan olan şablondur" -#: common/models.py:160 part/models.py:834 part/templates/part/detail.html:170 +#: common/models.py:160 part/models.py:819 part/templates/part/detail.html:170 #: templates/js/table_filters.js:128 templates/js/table_filters.js:327 msgid "Assembly" -msgstr "" +msgstr "Montaj" #: common/models.py:161 msgid "Parts can be assembled from other components by default" -msgstr "" +msgstr "Parçalar varsayılan olarak başka bileşenlerden monte edilebilir" -#: common/models.py:167 part/models.py:840 part/templates/part/detail.html:180 +#: common/models.py:167 part/models.py:825 part/templates/part/detail.html:180 #: templates/js/table_filters.js:331 msgid "Component" -msgstr "" +msgstr "Bileşen" #: common/models.py:168 msgid "Parts can be used as sub-components by default" -msgstr "" +msgstr "Parçalar varsayılan olarak alt bileşen olarak kullanılabilir" -#: common/models.py:174 part/models.py:851 part/templates/part/detail.html:200 +#: common/models.py:174 part/models.py:836 part/templates/part/detail.html:200 msgid "Purchaseable" -msgstr "" +msgstr "Satın Alınabilir" #: common/models.py:175 msgid "Parts are purchaseable by default" -msgstr "" +msgstr "Parçalar varsayılan olarak satın alınabilir" -#: common/models.py:181 part/models.py:856 part/templates/part/detail.html:210 +#: common/models.py:181 part/models.py:841 part/templates/part/detail.html:210 #: templates/js/table_filters.js:339 msgid "Salable" -msgstr "" +msgstr "Satılabilir" #: common/models.py:182 msgid "Parts are salable by default" -msgstr "" +msgstr "Parçalar varsayılan olarak satılabilir" -#: common/models.py:188 part/models.py:846 part/templates/part/detail.html:190 +#: common/models.py:188 part/models.py:831 part/templates/part/detail.html:190 #: templates/js/table_filters.js:33 templates/js/table_filters.js:343 msgid "Trackable" -msgstr "" +msgstr "Takip Edilebilir" #: common/models.py:189 msgid "Parts are trackable by default" -msgstr "" +msgstr "Parçalar varsayılan olarak takip edilebilir" -#: common/models.py:195 part/models.py:866 part/templates/part/detail.html:150 +#: common/models.py:195 part/models.py:851 part/templates/part/detail.html:150 #: templates/js/table_filters.js:29 msgid "Virtual" -msgstr "" +msgstr "Sanal" #: common/models.py:196 msgid "Parts are virtual by default" -msgstr "" +msgstr "Parçalar varsayılan olarak sanaldır" #: common/models.py:202 msgid "Show Quantity in Forms" @@ -1669,160 +1670,185 @@ msgstr "" msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:209 templates/stats.html:25 -msgid "Debug Mode" +#: common/models.py:209 +msgid "Show Price in Forms" msgstr "" #: common/models.py:210 -msgid "Generate reports in debug mode (HTML output)" +msgid "Display part price in some forms" msgstr "" #: common/models.py:216 -msgid "Page Size" +msgid "Internal Prices" msgstr "" #: common/models.py:217 +msgid "Enable internal prices for parts" +msgstr "" + +#: common/models.py:223 +msgid "Internal Price as BOM-Price" +msgstr "" + +#: common/models.py:224 +msgid "Use the internal price (if set) in BOM-price calculations" +msgstr "" + +#: common/models.py:230 templates/stats.html:25 +msgid "Debug Mode" +msgstr "" + +#: common/models.py:231 +msgid "Generate reports in debug mode (HTML output)" +msgstr "" + +#: common/models.py:237 +msgid "Page Size" +msgstr "" + +#: common/models.py:238 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:227 +#: common/models.py:248 msgid "Test Reports" msgstr "" -#: common/models.py:228 +#: common/models.py:249 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:234 +#: common/models.py:255 msgid "Stock Expiry" msgstr "" -#: common/models.py:235 +#: common/models.py:256 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:241 +#: common/models.py:262 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:242 +#: common/models.py:263 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:248 +#: common/models.py:269 msgid "Stock Stale Time" msgstr "" -#: common/models.py:249 +#: common/models.py:270 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:251 part/templates/part/detail.html:121 +#: common/models.py:272 part/templates/part/detail.html:121 msgid "days" msgstr "" -#: common/models.py:256 +#: common/models.py:277 msgid "Build Expired Stock" msgstr "" -#: common/models.py:257 +#: common/models.py:278 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:263 +#: common/models.py:284 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:264 +#: common/models.py:285 msgid "Enable ownership control over stock locations and items" -msgstr "" +msgstr "Stok konumu ve ögeler üzerinde sahiplik kontrolünü etkinleştirin" -#: common/models.py:270 +#: common/models.py:291 msgid "Group by Part" msgstr "" -#: common/models.py:271 +#: common/models.py:292 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:277 +#: common/models.py:298 msgid "Recent Stock Count" msgstr "" -#: common/models.py:278 +#: common/models.py:299 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:284 +#: common/models.py:305 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:285 +#: common/models.py:306 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:290 +#: common/models.py:311 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:291 +#: common/models.py:312 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:295 +#: common/models.py:316 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:296 +#: common/models.py:317 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:301 +#: common/models.py:322 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:302 +#: common/models.py:323 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:525 +#: common/models.py:546 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:527 +#: common/models.py:548 msgid "Settings value" msgstr "" -#: common/models.py:562 +#: common/models.py:583 msgid "Must be an integer value" msgstr "" -#: common/models.py:585 +#: common/models.py:606 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:596 +#: common/models.py:617 msgid "Value must be an integer value" msgstr "" -#: common/models.py:619 +#: common/models.py:640 msgid "Key string must be unique" msgstr "" -#: common/models.py:700 company/forms.py:177 +#: common/models.py:721 company/forms.py:192 msgid "Price break quantity" msgstr "" -#: common/models.py:708 company/templates/company/supplier_part_pricing.html:82 +#: common/models.py:729 company/templates/company/supplier_part_pricing.html:82 +#: part/templates/part/internal_prices.html:103 #: part/templates/part/sale_prices.html:90 templates/js/bom.js:271 msgid "Price" msgstr "" -#: common/models.py:709 +#: common/models.py:730 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:798 +#: common/models.py:822 msgid "Default" msgstr "" @@ -1843,9 +1869,11 @@ msgid "Supplied value must be a boolean" msgstr "" #: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42 -#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27 +#: order/templates/order/po_navbar.html:19 +#: order/templates/order/po_navbar.html:22 order/views.py:582 +#: part/templates/part/bom_upload/upload_file.html:27 msgid "Upload File" -msgstr "" +msgstr "Dosya Yükle" #: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:583 part/templates/part/bom_upload/select_fields.html:58 @@ -1877,29 +1905,29 @@ msgstr "" msgid "Image URL" msgstr "" -#: company/forms.py:118 templates/js/part.js:786 +#: company/forms.py:133 templates/js/part.js:787 msgid "Single Price" msgstr "" -#: company/forms.py:120 +#: company/forms.py:135 msgid "Single quantity price" msgstr "" -#: company/forms.py:128 company/models.py:321 +#: company/forms.py:143 company/models.py:321 msgid "Select manufacturer" msgstr "" -#: company/forms.py:134 company/models.py:328 +#: company/forms.py:149 company/models.py:328 msgid "Manufacturer Part Number" msgstr "" -#: company/forms.py:136 company/models.py:327 +#: company/forms.py:151 company/models.py:327 #: company/templates/company/manufacturer_part_base.html:89 #: company/templates/company/manufacturer_part_detail.html:26 #: company/templates/company/supplier_part_base.html:102 #: company/templates/company/supplier_part_detail.html:35 #: order/templates/order/purchase_order_detail.html:162 part/bom.py:171 -#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307 +#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:408 msgid "MPN" msgstr "" @@ -1952,11 +1980,11 @@ msgstr "" msgid "Point of contact" msgstr "" -#: company/models.py:121 company/models.py:333 company/models.py:485 -#: order/models.py:105 part/models.py:743 +#: company/models.py:121 company/models.py:333 company/models.py:526 +#: order/models.py:106 part/models.py:728 #: report/templates/report/inventree_build_order_base.html:165 -#: templates/js/company.js:188 templates/js/company.js:318 -#: templates/js/part.js:497 +#: templates/js/company.js:188 templates/js/company.js:419 +#: templates/js/part.js:498 msgid "Link" msgstr "" @@ -1964,7 +1992,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:129 part/models.py:753 +#: company/models.py:129 part/models.py:738 msgid "Image" msgstr "" @@ -1992,12 +2020,12 @@ msgstr "" msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:305 company/models.py:456 stock/models.py:407 +#: company/models.py:305 company/models.py:497 stock/models.py:407 #: stock/templates/stock/item_base.html:235 msgid "Base Part" msgstr "" -#: company/models.py:309 company/models.py:460 order/views.py:1587 +#: company/models.py:309 company/models.py:501 order/views.py:1597 msgid "Select part" msgstr "" @@ -2008,7 +2036,7 @@ msgstr "" #: company/templates/company/supplier_part_detail.html:34 part/bom.py:170 #: part/bom.py:241 stock/templates/stock/item_base.html:352 #: templates/js/company.js:44 templates/js/company.js:165 -#: templates/js/company.js:289 +#: templates/js/company.js:390 msgid "Manufacturer" msgstr "" @@ -2020,89 +2048,114 @@ msgstr "" msgid "Manufacturer part description" msgstr "" -#: company/models.py:466 company/templates/company/detail.html:62 +#: company/models.py:390 company/models.py:520 +#: company/templates/company/manufacturer_part_base.html:6 +#: company/templates/company/manufacturer_part_base.html:19 +#: stock/templates/stock/item_base.html:362 +msgid "Manufacturer Part" +msgstr "" + +#: company/models.py:397 +msgid "Parameter name" +msgstr "" + +#: company/models.py:403 part/templates/part/params.html:28 +#: report/templates/report/inventree_test_report_base.html:90 +#: stock/models.py:1756 templates/InvenTree/settings/header.html:8 +#: templates/js/company.js:241 templates/js/stock.js:137 +msgid "Value" +msgstr "" + +#: company/models.py:404 +msgid "Parameter value" +msgstr "" + +#: company/models.py:410 part/models.py:813 part/models.py:2165 +#: part/templates/part/detail.html:106 part/templates/part/params.html:29 +#: templates/js/company.js:247 +msgid "Units" +msgstr "" + +#: company/models.py:411 +msgid "Parameter units" +msgstr "" + +#: company/models.py:507 company/templates/company/detail.html:62 #: company/templates/company/supplier_part_base.html:84 -#: company/templates/company/supplier_part_detail.html:25 order/models.py:192 +#: company/templates/company/supplier_part_detail.html:25 order/models.py:193 #: order/templates/order/order_base.html:92 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175 -#: part/bom.py:286 stock/templates/stock/item_base.html:364 -#: templates/js/company.js:48 templates/js/company.js:263 +#: part/bom.py:286 stock/templates/stock/item_base.html:369 +#: templates/js/company.js:48 templates/js/company.js:364 #: templates/js/order.js:170 msgid "Supplier" msgstr "" -#: company/models.py:467 +#: company/models.py:508 msgid "Select supplier" msgstr "" -#: company/models.py:472 company/templates/company/supplier_part_base.html:88 +#: company/models.py:513 company/templates/company/supplier_part_base.html:88 #: company/templates/company/supplier_part_detail.html:26 #: order/templates/order/purchase_order_detail.html:153 part/bom.py:176 #: part/bom.py:287 msgid "SKU" msgstr "" -#: company/models.py:473 +#: company/models.py:514 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:479 -#: company/templates/company/manufacturer_part_base.html:6 -#: company/templates/company/manufacturer_part_base.html:19 -#: stock/templates/stock/item_base.html:357 -msgid "Manufacturer Part" -msgstr "" - -#: company/models.py:480 +#: company/models.py:521 msgid "Select manufacturer part" msgstr "" -#: company/models.py:486 +#: company/models.py:527 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:492 +#: company/models.py:533 msgid "Supplier part description" msgstr "" -#: company/models.py:497 company/templates/company/supplier_part_base.html:116 -#: company/templates/company/supplier_part_detail.html:38 part/models.py:2282 +#: company/models.py:538 company/templates/company/supplier_part_base.html:116 +#: company/templates/company/supplier_part_detail.html:38 part/models.py:2305 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" -#: company/models.py:501 part/models.py:1614 +#: company/models.py:542 part/models.py:1606 msgid "base cost" msgstr "" -#: company/models.py:501 part/models.py:1614 +#: company/models.py:542 part/models.py:1606 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:503 company/templates/company/supplier_part_base.html:109 +#: company/models.py:544 company/templates/company/supplier_part_base.html:109 #: stock/models.py:431 stock/templates/stock/item_base.html:310 -#: templates/js/stock.js:670 +#: templates/js/stock.js:695 msgid "Packaging" msgstr "" -#: company/models.py:503 +#: company/models.py:544 msgid "Part packaging" msgstr "" -#: company/models.py:505 part/models.py:1616 +#: company/models.py:546 part/models.py:1608 msgid "multiple" msgstr "" -#: company/models.py:505 +#: company/models.py:546 msgid "Order multiple" msgstr "" #: company/templates/company/assigned_stock.html:10 #: company/templates/company/navbar.html:62 -#: company/templates/company/navbar.html:65 templates/js/build.js:477 +#: company/templates/company/navbar.html:65 templates/js/build.js:562 msgid "Assigned Stock" -msgstr "" +msgstr "Atanan Stok" #: company/templates/company/company_base.html:9 #: company/templates/company/company_base.html:35 @@ -2122,7 +2175,7 @@ msgstr "" #: company/templates/company/company_base.html:46 order/views.py:311 msgid "Create Purchase Order" -msgstr "" +msgstr "Satın Alma Emri Oluştur" #: company/templates/company/company_base.html:51 msgid "Edit company information" @@ -2165,13 +2218,13 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/detail.html:67 order/models.py:463 +#: company/templates/company/detail.html:67 order/models.py:464 #: order/templates/order/sales_order_base.html:94 stock/models.py:449 #: stock/models.py:450 stock/templates/stock/item_base.html:262 #: templates/js/company.js:40 templates/js/order.js:267 -#: templates/js/stock.js:1072 +#: templates/js/stock.js:1097 msgid "Customer" -msgstr "" +msgstr "Müşteri" #: company/templates/company/detail_manufacturer_part.html:11 #: templates/InvenTree/search.html:149 @@ -2205,17 +2258,17 @@ msgstr "" #: company/templates/company/detail_manufacturer_part.html:36 #: company/templates/company/detail_supplier_part.html:35 msgid "Delete parts" -msgstr "" +msgstr "Parçaları sil" #: company/templates/company/detail_manufacturer_part.html:36 #: company/templates/company/detail_supplier_part.html:35 msgid "Delete Parts" -msgstr "" +msgstr "Parçaları Sil" #: company/templates/company/detail_manufacturer_part.html:66 #: company/templates/company/detail_supplier_part.html:66 #: part/templates/part/bom.html:159 part/templates/part/category.html:118 -#: templates/js/stock.js:1287 +#: templates/js/stock.js:1312 msgid "New Part" msgstr "" @@ -2237,7 +2290,7 @@ msgstr "" #: company/templates/company/detail_stock.html:10 msgid "Supplier Stock" -msgstr "" +msgstr "Tedarikçi Stoku" #: company/templates/company/detail_stock.html:37 #: company/templates/company/supplier_part_stock.html:34 @@ -2248,26 +2301,25 @@ msgstr "" #: company/templates/company/detail_supplier_part.html:11 #: company/templates/company/manufacturer_part_navbar.html:11 -#: company/templates/company/manufacturer_part_suppliers.html:10 #: templates/InvenTree/search.html:164 msgid "Supplier Parts" -msgstr "" +msgstr "Tedarikçi Parçaları" #: company/templates/company/detail_supplier_part.html:21 -#: order/templates/order/order_wizard/select_parts.html:42 +#: order/templates/order/order_wizard/select_parts.html:44 #: order/templates/order/purchase_order_detail.html:50 msgid "Create new supplier part" -msgstr "" +msgstr "Yeni tedarikçi parçası oluştur" #: company/templates/company/detail_supplier_part.html:22 #: company/templates/company/manufacturer_part_suppliers.html:17 #: order/templates/order/purchase_order_detail.html:49 -#: part/templates/part/supplier.html:17 templates/js/stock.js:1293 +#: part/templates/part/supplier.html:17 templates/js/stock.js:1318 msgid "New Supplier Part" -msgstr "" +msgstr "Yeni Tedarikçi Parçası" #: company/templates/company/detail_supplier_part.html:72 -#: company/templates/company/manufacturer_part_suppliers.html:47 +#: company/templates/company/manufacturer_part_suppliers.html:82 #: company/views.py:64 order/templates/order/purchase_orders.html:185 #: part/templates/part/supplier.html:50 msgid "New Supplier" @@ -2287,7 +2339,7 @@ msgstr "" #: company/templates/company/supplier_part_orders.html:17 #: part/templates/part/orders.html:17 part/templates/part/part_base.html:58 msgid "Order part" -msgstr "" +msgstr "Parça siparişi" #: company/templates/company/manufacturer_part_base.html:41 msgid "Edit manufacturer part" @@ -2316,11 +2368,12 @@ msgstr "" #: company/templates/company/manufacturer_part_delete.html:36 #, python-format msgid "There are %(count)s suppliers defined for this manufacturer part. If you delete it, the following supplier parts will also be deleted:" -msgstr "" +msgstr "Bu üretici parçası için tanımlanmış %(count)s tedarikçi bulunmaktadır. Bunu silerseniz, aşağıdaki tedarikçi parçaları da silinecektir:" #: company/templates/company/manufacturer_part_navbar.html:14 -#: company/views.py:63 part/templates/part/navbar.html:84 -#: part/templates/part/navbar.html:87 templates/InvenTree/search.html:316 +#: company/templates/company/manufacturer_part_suppliers.html:10 +#: company/views.py:63 part/templates/part/navbar.html:86 +#: part/templates/part/navbar.html:89 templates/InvenTree/search.html:316 #: templates/navbar.html:35 msgid "Suppliers" msgstr "" @@ -2332,16 +2385,16 @@ msgstr "" #: company/templates/company/manufacturer_part_navbar.html:22 #: company/templates/company/navbar.html:41 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:36 stock/api.py:54 +#: part/templates/part/navbar.html:38 stock/api.py:54 #: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196 #: templates/InvenTree/search.html:232 #: templates/InvenTree/settings/tabs.html:31 templates/js/part.js:181 -#: templates/js/part.js:305 templates/js/part.js:464 templates/js/stock.js:561 +#: templates/js/part.js:305 templates/js/part.js:465 templates/js/stock.js:566 #: templates/navbar.html:26 msgid "Stock" -msgstr "" +msgstr "Stok" #: company/templates/company/manufacturer_part_navbar.html:26 msgid "Manufacturer Part Orders" @@ -2355,16 +2408,30 @@ msgstr "" #: company/templates/company/manufacturer_part_suppliers.html:22 #: part/templates/part/supplier.html:22 msgid "Delete supplier parts" -msgstr "" +msgstr "Tedarikçi parçalarını sil" #: company/templates/company/manufacturer_part_suppliers.html:22 #: part/templates/part/manufacturer.html:24 part/templates/part/params.html:44 #: part/templates/part/related.html:44 part/templates/part/supplier.html:22 -#: stock/views.py:1002 users/models.py:187 +#: stock/views.py:1002 users/models.py:191 msgid "Delete" msgstr "" -#: company/templates/company/manufacturer_part_suppliers.html:48 +#: company/templates/company/manufacturer_part_suppliers.html:37 +#: part/templates/part/category_navbar.html:34 +#: part/templates/part/category_navbar.html:37 +#: part/templates/part/navbar.html:24 +msgid "Parameters" +msgstr "" + +#: company/templates/company/manufacturer_part_suppliers.html:43 +#: part/templates/part/params.html:18 +#: templates/InvenTree/settings/category.html:29 +#: templates/InvenTree/settings/part.html:48 +msgid "New Parameter" +msgstr "" + +#: company/templates/company/manufacturer_part_suppliers.html:83 #: part/templates/part/supplier.html:51 msgid "Create new supplier" msgstr "" @@ -2379,16 +2446,16 @@ msgstr "" msgid "Supplied Parts" msgstr "" -#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:33 +#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:35 #: stock/templates/stock/location.html:107 #: stock/templates/stock/location.html:122 #: stock/templates/stock/location.html:136 #: stock/templates/stock/location_navbar.html:22 #: stock/templates/stock/location_navbar.html:29 -#: templates/InvenTree/search.html:198 templates/js/stock.js:971 +#: templates/InvenTree/search.html:198 templates/js/stock.js:996 #: templates/stats.html:93 templates/stats.html:102 users/models.py:42 msgid "Stock Items" -msgstr "" +msgstr "Stok Kalemleri" #: company/templates/company/navbar.html:47 #: company/templates/company/navbar.html:56 @@ -2396,25 +2463,25 @@ msgstr "" #: company/templates/company/sales_orders.html:11 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:13 -#: part/templates/part/navbar.html:104 part/templates/part/navbar.html:107 +#: part/templates/part/navbar.html:112 part/templates/part/navbar.html:115 #: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228 #: templates/InvenTree/search.html:345 #: templates/InvenTree/settings/tabs.html:40 templates/navbar.html:46 #: users/models.py:45 msgid "Sales Orders" -msgstr "" +msgstr "Satış Emirleri" #: company/templates/company/navbar.html:50 #: company/templates/company/purchase_orders.html:10 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:13 -#: part/templates/part/navbar.html:90 part/templates/part/navbar.html:93 +#: part/templates/part/navbar.html:92 part/templates/part/navbar.html:95 #: part/templates/part/orders.html:10 templates/InvenTree/index.html:205 #: templates/InvenTree/search.html:325 #: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:37 #: users/models.py:44 msgid "Purchase Orders" -msgstr "" +msgstr "Satın Alma Emirleri" #: company/templates/company/notes.html:11 msgid "Company Notes" @@ -2423,59 +2490,59 @@ msgstr "" #: company/templates/company/purchase_orders.html:18 #: order/templates/order/purchase_orders.html:20 msgid "Create new purchase order" -msgstr "" +msgstr "Yeni satın alma emri oluştur" #: company/templates/company/purchase_orders.html:19 #: order/templates/order/purchase_orders.html:21 msgid "New Purchase Order" -msgstr "" +msgstr "Yeni Satın Alma Emri" #: company/templates/company/sales_orders.html:19 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" -msgstr "" +msgstr "Yeni satış emri oluştur" #: company/templates/company/sales_orders.html:20 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" -msgstr "" +msgstr "Yeni Satış Emri" #: company/templates/company/supplier_part_base.html:7 #: company/templates/company/supplier_part_base.html:20 stock/models.py:416 -#: stock/templates/stock/item_base.html:369 templates/js/company.js:279 +#: stock/templates/stock/item_base.html:374 templates/js/company.js:380 msgid "Supplier Part" -msgstr "" +msgstr "Tedarikçi Parçası" #: company/templates/company/supplier_part_base.html:40 msgid "Edit supplier part" -msgstr "" +msgstr "Tedarikçi parçasını düzenle" #: company/templates/company/supplier_part_base.html:44 msgid "Delete supplier part" -msgstr "" +msgstr "Tedarikçi parçasını sil" #: company/templates/company/supplier_part_base.html:56 #: company/templates/company/supplier_part_detail.html:10 msgid "Supplier Part Details" -msgstr "" +msgstr "Tedarikçi Parçası Detayları" #: company/templates/company/supplier_part_delete.html:5 msgid "Are you sure you want to delete the following Supplier Parts?" -msgstr "" +msgstr "Aşağıdaki Tedarikçi Parçalarını silmek istediğinizden emin misin?" #: company/templates/company/supplier_part_navbar.html:12 #: company/templates/company/supplier_part_stock.html:10 msgid "Supplier Part Stock" -msgstr "" +msgstr "Tedarikçi Parça Stoku" #: company/templates/company/supplier_part_navbar.html:19 #: company/templates/company/supplier_part_orders.html:10 msgid "Supplier Part Orders" -msgstr "" +msgstr "Tedarikçi Parçası Emirleri" #: company/templates/company/supplier_part_navbar.html:26 msgid "Supplier Part Pricing" -msgstr "" +msgstr "Tedarikçi Parçası Fiyatlandırması" #: company/templates/company/supplier_part_navbar.html:29 msgid "Pricing" @@ -2490,8 +2557,8 @@ msgstr "" msgid "Pricing Information" msgstr "" -#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794 -#: part/templates/part/sale_prices.html:17 part/views.py:2733 +#: company/templates/company/supplier_part_pricing.html:19 company/views.py:855 +#: part/templates/part/sale_prices.html:17 part/views.py:2751 msgid "Add Price Break" msgstr "" @@ -2510,8 +2577,8 @@ msgstr "" msgid "Delete price break" msgstr "" -#: company/views.py:70 part/templates/part/navbar.html:78 -#: part/templates/part/navbar.html:81 templates/InvenTree/search.html:306 +#: company/views.py:70 part/templates/part/navbar.html:80 +#: part/templates/part/navbar.html:83 templates/InvenTree/search.html:306 #: templates/navbar.html:36 msgid "Manufacturers" msgstr "" @@ -2533,22 +2600,22 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:169 part/views.py:937 +#: company/views.py:169 part/views.py:948 msgid "Download Image" msgstr "" -#: company/views.py:198 part/views.py:969 +#: company/views.py:198 part/views.py:980 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:205 part/views.py:976 +#: company/views.py:205 part/views.py:987 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:214 part/views.py:985 +#: company/views.py:214 part/views.py:996 msgid "Supplied URL is not a valid image file" -msgstr "" +msgstr "Sağlanan URL geçerli bir resim dosyası değil" #: company/views.py:243 msgid "Update Company Image" @@ -2594,57 +2661,65 @@ msgstr "" msgid "Delete Manufacturer Part" msgstr "" -#: company/views.py:528 +#: company/views.py:514 +msgid "Add Manufacturer Part Parameter" +msgstr "" + +#: company/views.py:548 +msgid "Edit Manufacturer Part Parameter" +msgstr "" + +#: company/views.py:588 msgid "Edit Supplier Part" msgstr "" -#: company/views.py:578 templates/js/stock.js:1294 +#: company/views.py:639 templates/js/stock.js:1319 msgid "Create new Supplier Part" msgstr "" -#: company/views.py:722 +#: company/views.py:783 msgid "Delete Supplier Part" msgstr "" -#: company/views.py:799 part/views.py:2737 +#: company/views.py:860 part/views.py:2755 msgid "Added new price break" msgstr "" -#: company/views.py:855 part/views.py:2781 +#: company/views.py:916 part/views.py:2799 msgid "Edit Price Break" msgstr "" -#: company/views.py:870 part/views.py:2795 +#: company/views.py:931 part/views.py:2813 msgid "Delete Price Break" msgstr "" #: label/api.py:56 report/api.py:201 msgid "No valid objects provided to template" -msgstr "" +msgstr "Şablon için geçerli bir nesne sağlanmadı" #: label/models.py:103 msgid "Label name" -msgstr "" +msgstr "Etiket adı" #: label/models.py:110 msgid "Label description" -msgstr "" +msgstr "Etiket tanımı" #: label/models.py:117 stock/forms.py:202 msgid "Label" -msgstr "" +msgstr "Etiket" #: label/models.py:118 msgid "Label template file" -msgstr "" +msgstr "Etiket şablon listesi" -#: label/models.py:124 report/models.py:274 +#: label/models.py:124 report/models.py:297 msgid "Enabled" msgstr "" #: label/models.py:125 msgid "Label template is enabled" -msgstr "" +msgstr "Etiket sablonu etkinleştirildi" #: label/models.py:130 msgid "Width [mm]" @@ -2652,7 +2727,7 @@ msgstr "" #: label/models.py:131 msgid "Label width, specified in mm" -msgstr "" +msgstr "Etiket genişliği mm olarak belirtilmeli" #: label/models.py:137 msgid "Height [mm]" @@ -2660,22 +2735,22 @@ msgstr "" #: label/models.py:138 msgid "Label height, specified in mm" -msgstr "" +msgstr "Etiket yüksekliği mm olarak belirtilmeli" -#: label/models.py:144 +#: label/models.py:144 report/models.py:290 msgid "Filename Pattern" -msgstr "" +msgstr "Dosya Adı Deseni" #: label/models.py:145 msgid "Pattern for generating label filenames" -msgstr "" +msgstr "Etiket dosya adları oluşturma için desen" #: label/models.py:244 label/models.py:297 msgid "Query filters (comma-separated list of key=value pairs" msgstr "" -#: label/models.py:245 label/models.py:298 report/models.py:294 -#: report/models.py:415 report/models.py:449 +#: label/models.py:245 label/models.py:298 report/models.py:317 +#: report/models.py:440 report/models.py:474 msgid "Filters" msgstr "" @@ -2696,239 +2771,241 @@ msgstr "" msgid "Ship order" msgstr "" -#: order/forms.py:82 +#: order/forms.py:86 msgid "Receive parts to this location" -msgstr "" +msgstr "Parçaları bu konuma alın" -#: order/forms.py:103 +#: order/forms.py:108 msgid "Purchase Order reference" msgstr "" -#: order/forms.py:110 +#: order/forms.py:115 msgid "Target date for order delivery. Order will be overdue after this date." msgstr "" -#: order/forms.py:138 +#: order/forms.py:143 msgid "Enter sales order number" msgstr "" -#: order/forms.py:145 order/models.py:475 +#: order/forms.py:150 order/models.py:476 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/forms.py:236 -msgid "Enter stock item serial numbers" -msgstr "" - #: order/forms.py:242 +msgid "Enter stock item serial numbers" +msgstr "Stok kalemi seri numaları girin" + +#: order/forms.py:248 msgid "Enter quantity of stock items" msgstr "" -#: order/models.py:101 +#: order/models.py:102 msgid "Order reference" msgstr "" -#: order/models.py:103 +#: order/models.py:104 msgid "Order description" msgstr "" -#: order/models.py:105 +#: order/models.py:106 msgid "Link to external page" msgstr "" -#: order/models.py:113 part/templates/part/detail.html:132 +#: order/models.py:114 part/templates/part/detail.html:132 msgid "Created By" msgstr "" -#: order/models.py:120 +#: order/models.py:121 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:125 +#: order/models.py:126 msgid "Order notes" msgstr "" -#: order/models.py:184 order/models.py:468 +#: order/models.py:185 order/models.py:469 msgid "Purchase order status" msgstr "" -#: order/models.py:193 +#: order/models.py:194 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:196 order/templates/order/order_base.html:98 +#: order/models.py:197 order/templates/order/order_base.html:98 #: templates/js/order.js:179 msgid "Supplier Reference" msgstr "" -#: order/models.py:196 +#: order/models.py:197 msgid "Supplier order reference code" msgstr "" -#: order/models.py:203 +#: order/models.py:204 msgid "received by" msgstr "" -#: order/models.py:208 +#: order/models.py:209 msgid "Issue Date" msgstr "" -#: order/models.py:209 +#: order/models.py:210 msgid "Date order was issued" msgstr "" -#: order/models.py:214 +#: order/models.py:215 msgid "Target Delivery Date" msgstr "" -#: order/models.py:215 +#: order/models.py:216 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:221 +#: order/models.py:222 msgid "Date order was completed" msgstr "" -#: order/models.py:245 part/views.py:1675 stock/models.py:304 +#: order/models.py:246 part/views.py:1686 stock/models.py:304 #: stock/models.py:1020 msgid "Quantity must be greater than zero" msgstr "" -#: order/models.py:250 +#: order/models.py:251 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:348 +#: order/models.py:349 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:352 +#: order/models.py:353 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:354 +#: order/models.py:355 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:464 +#: order/models.py:465 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:470 +#: order/models.py:471 msgid "Customer Reference " msgstr "" -#: order/models.py:470 +#: order/models.py:471 msgid "Customer order reference code" msgstr "" -#: order/models.py:478 templates/js/order.js:303 +#: order/models.py:479 templates/js/order.js:303 msgid "Shipment Date" msgstr "" -#: order/models.py:485 +#: order/models.py:486 msgid "shipped by" msgstr "" -#: order/models.py:529 +#: order/models.py:530 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:616 +#: order/models.py:617 msgid "Item quantity" msgstr "" -#: order/models.py:618 +#: order/models.py:619 msgid "Line item reference" msgstr "" -#: order/models.py:620 +#: order/models.py:621 msgid "Line item notes" msgstr "" -#: order/models.py:646 order/models.py:691 -#: part/templates/part/allocation.html:17 -#: part/templates/part/allocation.html:45 +#: order/models.py:647 order/models.py:715 templates/js/order.js:353 msgid "Order" msgstr "" -#: order/models.py:647 order/templates/order/order_base.html:9 +#: order/models.py:648 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:324 templates/js/order.js:148 -#: templates/js/stock.js:1053 +#: templates/js/stock.js:669 templates/js/stock.js:1078 msgid "Purchase Order" msgstr "" -#: order/models.py:661 +#: order/models.py:662 msgid "Supplier part" msgstr "" -#: order/models.py:664 order/templates/order/order_base.html:131 +#: order/models.py:665 order/templates/order/order_base.html:131 #: order/templates/order/purchase_order_detail.html:219 #: order/templates/order/receive_parts.html:22 #: order/templates/order/sales_order_base.html:133 msgid "Received" msgstr "" -#: order/models.py:664 +#: order/models.py:665 msgid "Number of items received" msgstr "" -#: order/models.py:671 stock/models.py:542 -#: stock/templates/stock/item_base.html:331 templates/js/stock.js:665 +#: order/models.py:672 stock/models.py:542 +#: stock/templates/stock/item_base.html:331 templates/js/stock.js:690 msgid "Purchase Price" msgstr "" -#: order/models.py:672 +#: order/models.py:673 msgid "Unit purchase price" msgstr "" -#: order/models.py:700 part/templates/part/navbar.html:101 -#: part/templates/part/order_prices.html:82 -#: part/templates/part/part_pricing.html:78 +#: order/models.py:681 +msgid "Where does the Purchaser want this item to be stored?" +msgstr "" + +#: order/models.py:724 part/templates/part/navbar.html:109 +#: part/templates/part/order_prices.html:107 +#: part/templates/part/part_pricing.html:97 msgid "Sale Price" msgstr "" -#: order/models.py:701 +#: order/models.py:725 msgid "Unit sale price" msgstr "" -#: order/models.py:776 order/models.py:778 +#: order/models.py:800 order/models.py:802 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:782 +#: order/models.py:806 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:784 +#: order/models.py:808 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:787 +#: order/models.py:811 msgid "Allocation quantity cannot exceed stock quantity" -msgstr "" +msgstr "Tahsis miktarı stok miktarını aşamaz" -#: order/models.py:797 +#: order/models.py:821 msgid "Quantity must be 1 for serialized stock item" -msgstr "" +msgstr "Seri numaralı stok kalemi için miktar bir olmalı" -#: order/models.py:802 +#: order/models.py:826 msgid "Line" msgstr "" -#: order/models.py:813 +#: order/models.py:837 msgid "Item" msgstr "" -#: order/models.py:814 +#: order/models.py:838 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:817 +#: order/models.py:841 msgid "Enter stock allocation quantity" -msgstr "" +msgstr "Stok tahsis miktarını girin" #: order/templates/order/delete_attachment.html:5 #: stock/templates/stock/attachment_delete.html:5 @@ -2952,10 +3029,10 @@ msgstr "" #: order/templates/order/order_base.html:64 msgid "Export order to file" -msgstr "" +msgstr "Emiri dosya çıkar" #: order/templates/order/order_base.html:72 -#: order/templates/order/po_navbar.html:11 +#: order/templates/order/po_navbar.html:12 msgid "Purchase Order Details" msgstr "" @@ -2977,16 +3054,16 @@ msgstr "" #: order/templates/order/order_base.html:180 #: order/templates/order/purchase_order_detail.html:100 #: part/templates/part/category.html:208 part/templates/part/category.html:250 -#: stock/templates/stock/location.html:191 templates/js/stock.js:711 -#: templates/js/stock.js:1299 +#: stock/templates/stock/location.html:191 templates/js/stock.js:736 +#: templates/js/stock.js:1324 msgid "New Location" -msgstr "" +msgstr "Yeni Konum" #: order/templates/order/order_base.html:181 #: order/templates/order/purchase_order_detail.html:101 #: stock/templates/stock/location.html:42 msgid "Create new stock location" -msgstr "" +msgstr "Yeni stok konumu oluştur" #: order/templates/order/order_cancel.html:8 msgid "Cancelling this order means that the order and line items will no longer be editable." @@ -3015,7 +3092,7 @@ msgstr "" #: order/templates/order/order_wizard/match_fields.html:9 #: part/templates/part/bom_upload/select_fields.html:21 msgid "Missing selections for the following required columns" -msgstr "" +msgstr "Aşağıdaki gerekli sütunlar için eksik seçimler" #: order/templates/order/order_wizard/match_fields.html:20 msgid "Duplicate selections found, see below. Fix them then retry submitting." @@ -3036,7 +3113,7 @@ msgstr "" #: order/templates/order/order_wizard/match_fields.html:35 #: part/templates/part/bom_upload/select_fields.html:41 msgid "File Fields" -msgstr "" +msgstr "Dosya Alanları" #: order/templates/order/order_wizard/match_fields.html:42 #: part/templates/part/bom_upload/select_fields.html:47 @@ -3066,11 +3143,11 @@ msgstr "" #: order/templates/order/order_wizard/match_parts.html:28 msgid "Select Supplier Part" -msgstr "" +msgstr "Tedarikçi Parçası Seçin" #: order/templates/order/order_wizard/po_upload.html:11 msgid "Upload File for Purchase Order" -msgstr "" +msgstr "Sipariş Emri için Dosya Yükle" #: order/templates/order/order_wizard/po_upload.html:18 #, python-format @@ -3081,28 +3158,32 @@ msgstr "" msgid "Order is already processed. Files cannot be uploaded." msgstr "" -#: order/templates/order/order_wizard/select_parts.html:9 +#: order/templates/order/order_wizard/select_parts.html:11 msgid "Step 1 of 2 - Select Part Suppliers" -msgstr "" +msgstr "Adım 1/2 - Parça Tedarikçileri Seçin" -#: order/templates/order/order_wizard/select_parts.html:14 +#: order/templates/order/order_wizard/select_parts.html:16 msgid "Select suppliers" msgstr "" -#: order/templates/order/order_wizard/select_parts.html:18 +#: order/templates/order/order_wizard/select_parts.html:20 msgid "No purchaseable parts selected" msgstr "" -#: order/templates/order/order_wizard/select_parts.html:31 +#: order/templates/order/order_wizard/select_parts.html:33 msgid "Select Supplier" msgstr "" #: order/templates/order/order_wizard/select_parts.html:57 +msgid "No price" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:65 #, python-format msgid "Select a supplier for %(name)s" msgstr "" -#: order/templates/order/order_wizard/select_parts.html:69 +#: order/templates/order/order_wizard/select_parts.html:77 #: part/templates/part/set_category.html:32 msgid "Remove part" msgstr "" @@ -3135,15 +3216,20 @@ msgid "Select a purchase order for %(name)s" msgstr "" #: order/templates/order/po_attachments.html:12 -#: order/templates/order/po_navbar.html:23 +#: order/templates/order/po_navbar.html:32 msgid "Purchase Order Attachments" msgstr "" -#: order/templates/order/po_navbar.html:17 +#: order/templates/order/po_lineitem_delete.html:5 +#: order/templates/order/so_lineitem_delete.html:5 +msgid "Are you sure you wish to delete this line item?" +msgstr "" + +#: order/templates/order/po_navbar.html:26 msgid "Received Stock Items" msgstr "" -#: order/templates/order/po_navbar.html:20 +#: order/templates/order/po_navbar.html:29 #: order/templates/order/po_received_items.html:12 msgid "Received Items" msgstr "" @@ -3153,8 +3239,8 @@ msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:24 -#: order/templates/order/sales_order_detail.html:22 order/views.py:1311 -#: order/views.py:1394 +#: order/templates/order/sales_order_detail.html:22 order/views.py:1321 +#: order/views.py:1404 msgid "Add Line Item" msgstr "" @@ -3162,25 +3248,31 @@ msgstr "" msgid "No line items found" msgstr "" +#: order/templates/order/purchase_order_detail.html:142 +#: order/templates/order/sales_order_detail.html:223 +msgid "Total" +msgstr "" + #: order/templates/order/purchase_order_detail.html:191 -#: order/templates/order/sales_order_detail.html:235 +#: order/templates/order/sales_order_detail.html:246 msgid "Unit Price" msgstr "" #: order/templates/order/purchase_order_detail.html:198 +#: order/templates/order/sales_order_detail.html:253 msgid "Total price" msgstr "" -#: order/templates/order/purchase_order_detail.html:251 -#: order/templates/order/sales_order_detail.html:328 +#: order/templates/order/purchase_order_detail.html:255 +#: order/templates/order/sales_order_detail.html:359 msgid "Edit line item" msgstr "" -#: order/templates/order/purchase_order_detail.html:252 +#: order/templates/order/purchase_order_detail.html:256 msgid "Delete line item" msgstr "" -#: order/templates/order/purchase_order_detail.html:257 +#: order/templates/order/purchase_order_detail.html:261 msgid "Receive line item" msgstr "" @@ -3201,11 +3293,11 @@ msgstr "" #: part/templates/part/category_navbar.html:29 #: part/templates/part/category_partlist.html:10 #: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114 -#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:665 +#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:666 #: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89 #: users/models.py:40 msgid "Parts" -msgstr "" +msgstr "Parçalar" #: order/templates/order/receive_parts.html:15 msgid "Select parts to receive against this order" @@ -3216,7 +3308,7 @@ msgid "Order Code" msgstr "" #: order/templates/order/receive_parts.html:21 -#: part/templates/part/part_base.html:136 templates/js/part.js:480 +#: part/templates/part/part_base.html:136 templates/js/part.js:481 msgid "On Order" msgstr "" @@ -3224,11 +3316,11 @@ msgstr "" msgid "Receive" msgstr "" -#: order/templates/order/receive_parts.html:36 +#: order/templates/order/receive_parts.html:37 msgid "Error: Referenced part has been removed" msgstr "" -#: order/templates/order/receive_parts.html:57 +#: order/templates/order/receive_parts.html:61 msgid "Remove line" msgstr "" @@ -3254,7 +3346,7 @@ msgstr "" #: part/templates/part/bom_duplicate.html:12 #: stock/templates/stock/stockitem_convert.html:13 msgid "Warning" -msgstr "" +msgstr "Uyarı" #: order/templates/order/sales_order_cancel.html:9 msgid "Cancelling this order means that the order will no longer be editable." @@ -3265,68 +3357,68 @@ msgid "Sales Order Items" msgstr "" #: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:365 -#: templates/js/build.js:637 templates/js/build.js:1054 +#: templates/js/build.js:724 templates/js/build.js:1141 msgid "Actions" -msgstr "" +msgstr "İşlemler" -#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:525 -#: templates/js/build.js:859 +#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:610 +#: templates/js/build.js:946 msgid "Edit stock allocation" -msgstr "" +msgstr "Stok tahsisini düzenle" -#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:527 -#: templates/js/build.js:860 +#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:612 +#: templates/js/build.js:947 msgid "Delete stock allocation" -msgstr "" +msgstr "Stok tahsisini sil" #: order/templates/order/sales_order_detail.html:176 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:205 +#: order/templates/order/sales_order_detail.html:206 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:589 -#: templates/js/build.js:855 +#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:675 +#: templates/js/build.js:942 msgid "Allocated" msgstr "" -#: order/templates/order/sales_order_detail.html:245 +#: order/templates/order/sales_order_detail.html:276 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:282 +#: order/templates/order/sales_order_detail.html:313 msgid "PO" msgstr "" -#: order/templates/order/sales_order_detail.html:312 +#: order/templates/order/sales_order_detail.html:343 msgid "Allocate serial numbers" -msgstr "" +msgstr "Seri numaralarını tahsis et" -#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:651 +#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:738 msgid "Allocate stock" msgstr "" -#: order/templates/order/sales_order_detail.html:318 +#: order/templates/order/sales_order_detail.html:349 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:644 -#: templates/js/build.js:1062 +#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:731 +#: templates/js/build.js:1149 msgid "Build stock" msgstr "" -#: order/templates/order/sales_order_detail.html:325 -#: order/templates/order/sales_order_detail.html:434 +#: order/templates/order/sales_order_detail.html:356 +#: order/templates/order/sales_order_detail.html:465 msgid "Calculate price" msgstr "" -#: order/templates/order/sales_order_detail.html:329 +#: order/templates/order/sales_order_detail.html:360 msgid "Delete line item " msgstr "" -#: order/templates/order/sales_order_detail.html:440 +#: order/templates/order/sales_order_detail.html:471 msgid "Update Unit Price" msgstr "" @@ -3340,7 +3432,7 @@ msgstr "" #: order/templates/order/sales_order_ship.html:12 msgid "Ensure that the order allocation is correct before shipping the order." -msgstr "" +msgstr "Emri göndermeden önce emir tahsisinin doğru olduğundan emin olun." #: order/templates/order/sales_order_ship.html:18 msgid "Some line items in this order have been over-allocated" @@ -3356,21 +3448,17 @@ msgstr "" #: order/templates/order/so_allocate_by_serial.html:9 msgid "Allocate stock items by serial number" -msgstr "" +msgstr "Seri numarası ile stok kalemlerini tahsis et" #: order/templates/order/so_allocation_delete.html:7 msgid "This action will unallocate the following stock from the Sales Order" -msgstr "" +msgstr "Bu işlem Sipariş Emrinden belirtilen stok kalemleri tahsis edemedi" #: order/templates/order/so_attachments.html:12 #: order/templates/order/so_navbar.html:26 msgid "Sales Order Attachments" msgstr "" -#: order/templates/order/so_lineitem_delete.html:5 -msgid "Are you sure you wish to delete this line item?" -msgstr "" - #: order/views.py:104 msgid "Add Purchase Order Attachment" msgstr "" @@ -3471,93 +3559,97 @@ msgstr "" msgid "No lines specified" msgstr "" -#: order/views.py:1260 +#: order/views.py:1012 +msgid "Update prices" +msgstr "" + +#: order/views.py:1270 #, python-brace-format msgid "Ordered {n} parts" msgstr "" -#: order/views.py:1320 +#: order/views.py:1330 msgid "Supplier part must be specified" msgstr "" -#: order/views.py:1326 +#: order/views.py:1336 msgid "Supplier must match for Part and Order" msgstr "" -#: order/views.py:1457 order/views.py:1475 +#: order/views.py:1467 order/views.py:1485 msgid "Edit Line Item" msgstr "" -#: order/views.py:1491 order/views.py:1503 +#: order/views.py:1501 order/views.py:1513 msgid "Delete Line Item" msgstr "" -#: order/views.py:1496 order/views.py:1508 +#: order/views.py:1506 order/views.py:1518 msgid "Deleted line item" msgstr "" -#: order/views.py:1521 +#: order/views.py:1531 msgid "Allocate Serial Numbers" -msgstr "" +msgstr "Seri Numaralarını Tahsis Et" -#: order/views.py:1566 +#: order/views.py:1576 #, python-brace-format msgid "Allocated {n} items" msgstr "" -#: order/views.py:1582 +#: order/views.py:1592 msgid "Select line item" msgstr "" -#: order/views.py:1613 -#, python-brace-format -msgid "No matching item for serial {serial}" -msgstr "" - #: order/views.py:1623 #, python-brace-format -msgid "{serial} is not in stock" -msgstr "" +msgid "No matching item for serial {serial}" +msgstr "{serial} seri numarası için eşleşen öge bulunamadı" -#: order/views.py:1631 +#: order/views.py:1633 +#, python-brace-format +msgid "{serial} is not in stock" +msgstr "{serial} stokta yok" + +#: order/views.py:1641 #, python-brace-format msgid "{serial} already allocated to an order" -msgstr "" +msgstr "{serial} zaten bir emirde tahsis edilmiş" -#: order/views.py:1685 +#: order/views.py:1695 msgid "Allocate Stock to Order" msgstr "" -#: order/views.py:1759 +#: order/views.py:1769 msgid "Edit Allocation Quantity" -msgstr "" +msgstr "Tahsis Miktarını Düzenle" -#: order/views.py:1774 +#: order/views.py:1784 msgid "Remove allocation" -msgstr "" +msgstr "Tahsisi Sil" -#: order/views.py:1846 +#: order/views.py:1856 msgid "Sales order not found" msgstr "" -#: order/views.py:1852 +#: order/views.py:1862 msgid "Price not found" msgstr "" -#: order/views.py:1855 +#: order/views.py:1865 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:1860 +#: order/views.py:1870 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/bom.py:138 part/models.py:72 part/models.py:762 +#: part/bom.py:138 part/models.py:72 part/models.py:747 #: part/templates/part/category.html:66 part/templates/part/detail.html:90 msgid "Default Location" -msgstr "" +msgstr "Varsayılan Konum" #: part/bom.py:139 part/templates/part/part_base.html:124 msgid "Available Stock" @@ -3566,23 +3658,23 @@ msgstr "" #: part/bom.py:379 #, python-brace-format msgid "Unsupported file format: {f}" -msgstr "" +msgstr "Geçersiz dosya biçimi: {f}" #: part/bom.py:384 msgid "Error reading BOM file (invalid data)" -msgstr "" +msgstr "Malzeme listesi okurken hata (geçersiz data)" #: part/bom.py:386 msgid "Error reading BOM file (incorrect row size)" -msgstr "" +msgstr "Malzeme listesi okurken hata (geçersiz satır boyutu)" #: part/forms.py:89 stock/forms.py:265 msgid "File Format" -msgstr "" +msgstr "Dosya Biçimi" #: part/forms.py:89 stock/forms.py:265 msgid "Select output file format" -msgstr "" +msgstr "Çıktı dosyası biçimi seçin" #: part/forms.py:91 msgid "Cascading" @@ -3630,9 +3722,9 @@ msgstr "" #: part/forms.py:101 msgid "Include part supplier data in exported BOM" -msgstr "" +msgstr "Dışa aktarılan malzeme listesine parça tedarikçisi verilerini dahil edin" -#: part/forms.py:122 part/models.py:2168 +#: part/forms.py:122 part/models.py:2191 msgid "Parent Part" msgstr "" @@ -3658,11 +3750,11 @@ msgstr "" #: part/forms.py:165 msgid "BOM file" -msgstr "" +msgstr "Malzeme Listesi Dosyası" #: part/forms.py:165 msgid "Select BOM file to upload" -msgstr "" +msgstr "Yüklemek için Malzeme Listesi dosyası seçin" #: part/forms.py:184 msgid "Related Part" @@ -3694,21 +3786,21 @@ msgstr "" #: part/forms.py:237 msgid "Include category parameter templates" -msgstr "" +msgstr "Kategori parametre şablonlarını dahil et" #: part/forms.py:242 msgid "Include parent categories parameter templates" -msgstr "" +msgstr "Üst kategorilerin parametre şablonlarını dahil et" #: part/forms.py:322 msgid "Add parameter template to same level categories" -msgstr "" +msgstr "Parametre şablonunu aynı seviyedeki kategorilere ekle" #: part/forms.py:326 msgid "Add parameter template to all categories" -msgstr "" +msgstr "Parametre şablonunu tüm kategorilere ekle" -#: part/forms.py:344 part/models.py:2263 +#: part/forms.py:344 part/models.py:2286 msgid "Sub part" msgstr "" @@ -3718,7 +3810,7 @@ msgstr "" #: part/models.py:73 msgid "Default location for parts in this category" -msgstr "" +msgstr "Bu kategori içindeki parçalar için varsayılan konum" #: part/models.py:76 msgid "Default keywords" @@ -3728,7 +3820,7 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:82 part/models.py:2214 +#: part/models.py:82 part/models.py:2237 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -3737,367 +3829,362 @@ msgstr "" #: part/templates/part/category.html:94 templates/InvenTree/search.html:127 #: templates/stats.html:84 users/models.py:39 msgid "Part Categories" -msgstr "" +msgstr "Parça Kategorileri" -#: part/models.py:446 part/models.py:458 +#: part/models.py:448 part/models.py:460 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:555 +#: part/models.py:557 msgid "Next available serial numbers are" -msgstr "" +msgstr "Sonraki kullanılabilir seri numaraları" -#: part/models.py:559 +#: part/models.py:561 msgid "Next available serial number is" -msgstr "" +msgstr "Sonraki müsait seri numarası" -#: part/models.py:564 +#: part/models.py:566 msgid "Most recent serial number is" -msgstr "" +msgstr "En son seri numarası" -#: part/models.py:643 +#: part/models.py:645 msgid "Duplicate IPN not allowed in part settings" -msgstr "" +msgstr "Yinelenen DPN'ye parça ayarlarında izin verilmiyor" -#: part/models.py:654 -msgid "Part must be unique for name, IPN and revision" -msgstr "" - -#: part/models.py:685 part/templates/part/detail.html:22 +#: part/models.py:670 part/templates/part/detail.html:22 msgid "Part name" msgstr "" -#: part/models.py:692 +#: part/models.py:677 msgid "Is Template" -msgstr "" +msgstr "Şablon Mu" -#: part/models.py:693 +#: part/models.py:678 msgid "Is this part a template part?" -msgstr "" +msgstr "Bu parça bir şablon parçası mı?" -#: part/models.py:704 +#: part/models.py:689 msgid "Is this part a variant of another part?" -msgstr "" +msgstr "Bu parça başka bir parçanın çeşidi mi?" -#: part/models.py:705 part/templates/part/detail.html:60 +#: part/models.py:690 part/templates/part/detail.html:60 msgid "Variant Of" -msgstr "" +msgstr "Çeşidi" -#: part/models.py:711 +#: part/models.py:696 msgid "Part description" msgstr "" -#: part/models.py:716 part/templates/part/category.html:73 +#: part/models.py:701 part/templates/part/category.html:73 #: part/templates/part/detail.html:67 msgid "Keywords" msgstr "" -#: part/models.py:717 +#: part/models.py:702 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:724 part/models.py:2213 part/templates/part/detail.html:73 -#: part/templates/part/set_category.html:15 templates/js/part.js:451 +#: part/models.py:709 part/models.py:2236 part/templates/part/detail.html:73 +#: part/templates/part/set_category.html:15 templates/js/part.js:452 msgid "Category" msgstr "" -#: part/models.py:725 +#: part/models.py:710 msgid "Part category" msgstr "" -#: part/models.py:730 part/templates/part/detail.html:28 +#: part/models.py:715 part/templates/part/detail.html:28 #: part/templates/part/part_base.html:87 templates/js/part.js:169 #: templates/js/part.js:296 msgid "IPN" -msgstr "" +msgstr "DPN" -#: part/models.py:731 +#: part/models.py:716 msgid "Internal Part Number" msgstr "" -#: part/models.py:737 +#: part/models.py:722 msgid "Part revision or version number" -msgstr "" +msgstr "Parça revizyon veya versiyon numarası" -#: part/models.py:738 part/templates/part/detail.html:35 report/models.py:198 +#: part/models.py:723 part/templates/part/detail.html:35 report/models.py:199 #: templates/js/part.js:173 msgid "Revision" -msgstr "" +msgstr "Revizyon" -#: part/models.py:760 +#: part/models.py:745 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:807 part/templates/part/detail.html:97 +#: part/models.py:792 part/templates/part/detail.html:97 msgid "Default Supplier" msgstr "" -#: part/models.py:808 +#: part/models.py:793 msgid "Default supplier part" -msgstr "" +msgstr "Varsayılan tedarikçi parçası" -#: part/models.py:815 +#: part/models.py:800 msgid "Default Expiry" msgstr "" -#: part/models.py:816 +#: part/models.py:801 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:821 part/templates/part/detail.html:113 +#: part/models.py:806 part/templates/part/detail.html:113 msgid "Minimum Stock" msgstr "" -#: part/models.py:822 +#: part/models.py:807 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:828 part/models.py:2142 part/templates/part/detail.html:106 -#: part/templates/part/params.html:29 -msgid "Units" -msgstr "" - -#: part/models.py:829 +#: part/models.py:814 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:835 +#: part/models.py:820 msgid "Can this part be built from other parts?" -msgstr "" +msgstr "Bu parça diğer parçalardan yapılabilir mi?" -#: part/models.py:841 +#: part/models.py:826 msgid "Can this part be used to build other parts?" -msgstr "" +msgstr "Bu parça diğer parçaların yapımında kullanılabilir mi?" -#: part/models.py:847 +#: part/models.py:832 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:852 +#: part/models.py:837 msgid "Can this part be purchased from external suppliers?" -msgstr "" +msgstr "Bu parça dış tedarikçilerden satın alınabilir mi?" -#: part/models.py:857 +#: part/models.py:842 msgid "Can this part be sold to customers?" -msgstr "" +msgstr "Bu parça müşterilere satılabilir mi?" -#: part/models.py:861 part/templates/part/detail.html:227 +#: part/models.py:846 part/templates/part/detail.html:227 #: templates/js/table_filters.js:21 templates/js/table_filters.js:65 #: templates/js/table_filters.js:241 templates/js/table_filters.js:310 msgid "Active" msgstr "" -#: part/models.py:862 +#: part/models.py:847 msgid "Is this part active?" msgstr "" -#: part/models.py:867 +#: part/models.py:852 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:872 +#: part/models.py:857 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:875 +#: part/models.py:860 msgid "BOM checksum" msgstr "" -#: part/models.py:875 +#: part/models.py:860 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:878 +#: part/models.py:863 msgid "BOM checked by" msgstr "" -#: part/models.py:880 +#: part/models.py:865 msgid "BOM checked date" msgstr "" -#: part/models.py:884 +#: part/models.py:869 msgid "Creation User" msgstr "" -#: part/models.py:1616 +#: part/models.py:1608 msgid "Sell multiple" msgstr "" -#: part/models.py:2040 +#: part/models.py:2063 msgid "Test templates can only be created for trackable parts" -msgstr "" +msgstr "Test şablonları sadece takip edilebilir paçalar için oluşturulabilir" -#: part/models.py:2057 +#: part/models.py:2080 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2077 templates/js/part.js:716 templates/js/stock.js:117 +#: part/models.py:2100 templates/js/part.js:717 templates/js/stock.js:117 msgid "Test Name" msgstr "" -#: part/models.py:2078 +#: part/models.py:2101 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2083 +#: part/models.py:2106 msgid "Test Description" msgstr "" -#: part/models.py:2084 +#: part/models.py:2107 msgid "Enter description for this test" msgstr "" -#: part/models.py:2089 templates/js/part.js:725 +#: part/models.py:2112 templates/js/part.js:726 #: templates/js/table_filters.js:227 msgid "Required" -msgstr "" +msgstr "Gerekli" -#: part/models.py:2090 +#: part/models.py:2113 msgid "Is this test required to pass?" -msgstr "" +msgstr "Testi geçmesi için bu gerekli mi?" -#: part/models.py:2095 templates/js/part.js:733 +#: part/models.py:2118 templates/js/part.js:734 msgid "Requires Value" msgstr "" -#: part/models.py:2096 +#: part/models.py:2119 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2101 templates/js/part.js:740 +#: part/models.py:2124 templates/js/part.js:741 msgid "Requires Attachment" msgstr "" -#: part/models.py:2102 +#: part/models.py:2125 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2135 +#: part/models.py:2158 msgid "Parameter template name must be unique" -msgstr "" +msgstr "Parametre şablon adı benzersiz olmalıdır" -#: part/models.py:2140 +#: part/models.py:2163 msgid "Parameter Name" msgstr "" -#: part/models.py:2142 +#: part/models.py:2165 msgid "Parameter Units" msgstr "" -#: part/models.py:2170 part/models.py:2219 part/models.py:2220 +#: part/models.py:2193 part/models.py:2242 part/models.py:2243 #: templates/InvenTree/settings/category.html:62 msgid "Parameter Template" -msgstr "" +msgstr "Parametre Şablonu" -#: part/models.py:2172 +#: part/models.py:2195 msgid "Data" msgstr "" -#: part/models.py:2172 +#: part/models.py:2195 msgid "Parameter Value" msgstr "" -#: part/models.py:2224 templates/InvenTree/settings/category.html:67 +#: part/models.py:2247 templates/InvenTree/settings/category.html:67 msgid "Default Value" msgstr "" -#: part/models.py:2225 +#: part/models.py:2248 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2255 +#: part/models.py:2278 msgid "Select parent part" msgstr "" -#: part/models.py:2264 +#: part/models.py:2287 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2270 +#: part/models.py:2293 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2272 templates/js/bom.js:216 templates/js/bom.js:285 +#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:285 msgid "Optional" msgstr "" -#: part/models.py:2272 +#: part/models.py:2295 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2275 +#: part/models.py:2298 msgid "Overage" msgstr "" -#: part/models.py:2276 +#: part/models.py:2299 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2279 +#: part/models.py:2302 msgid "BOM item reference" msgstr "" -#: part/models.py:2282 +#: part/models.py:2305 msgid "BOM item notes" msgstr "" -#: part/models.py:2284 +#: part/models.py:2307 msgid "Checksum" msgstr "" -#: part/models.py:2284 +#: part/models.py:2307 msgid "BOM line checksum" msgstr "" -#: part/models.py:2288 templates/js/bom.js:302 templates/js/bom.js:309 +#: part/models.py:2311 templates/js/bom.js:302 templates/js/bom.js:309 #: templates/js/table_filters.js:51 msgid "Inherited" msgstr "" -#: part/models.py:2289 +#: part/models.py:2312 msgid "This BOM item is inherited by BOMs for variant parts" -msgstr "" +msgstr "Bu malzeme listesi, çeşit parçalar listesini kalıtsalıdır" -#: part/models.py:2294 templates/js/bom.js:294 +#: part/models.py:2317 templates/js/bom.js:294 msgid "Allow Variants" -msgstr "" +msgstr "Çeşide İzin Ver" -#: part/models.py:2295 +#: part/models.py:2318 msgid "Stock items for variant parts can be used for this BOM item" -msgstr "" +msgstr "Çeşit parçaların stok kalemleri bu malzeme listesinde kullanılabilir" -#: part/models.py:2371 part/views.py:1681 part/views.py:1733 +#: part/models.py:2394 part/views.py:1692 part/views.py:1744 #: stock/models.py:294 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2380 part/models.py:2382 +#: part/models.py:2403 part/models.py:2405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2385 +#: part/models.py:2408 msgid "BOM Item" msgstr "" -#: part/models.py:2502 +#: part/models.py:2527 msgid "Part 1" msgstr "" -#: part/models.py:2506 +#: part/models.py:2531 msgid "Part 2" msgstr "" -#: part/models.py:2506 +#: part/models.py:2531 msgid "Select Related Part" msgstr "" -#: part/models.py:2538 +#: part/models.py:2563 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" #: part/templates/part/allocation.html:11 -msgid "Part Stock Allocations" +msgid "Build Order Allocations" +msgstr "" + +#: part/templates/part/allocation.html:24 +msgid "Sales Order Allocations" msgstr "" #: part/templates/part/attachments.html:10 @@ -4112,8 +4199,8 @@ msgstr "" msgid "Deleting this entry will remove the BOM row from the following part" msgstr "" -#: part/templates/part/bom.html:10 part/templates/part/navbar.html:48 -#: part/templates/part/navbar.html:51 +#: part/templates/part/bom.html:10 part/templates/part/navbar.html:50 +#: part/templates/part/navbar.html:53 msgid "Bill of Materials" msgstr "" @@ -4160,7 +4247,7 @@ msgstr "" msgid "Validate Bill of Materials" msgstr "" -#: part/templates/part/bom.html:61 part/views.py:1976 +#: part/templates/part/bom.html:61 part/views.py:1987 msgid "Export Bill of Materials" msgstr "" @@ -4177,7 +4264,7 @@ msgid "All selected BOM items will be deleted" msgstr "" #: part/templates/part/bom.html:160 part/views.py:585 -#: templates/js/stock.js:1288 +#: templates/js/stock.js:1313 msgid "Create New Part" msgstr "" @@ -4227,11 +4314,11 @@ msgstr "" #: part/templates/part/bom_upload/upload_file.html:21 msgid "The BOM file must contain the required named columns as provided in the " -msgstr "" +msgstr "Malzeme Listesi dosyası gerekli sütün adlarını sağlandığı şekilde içermelidir " #: part/templates/part/bom_upload/upload_file.html:21 msgid "BOM Upload Template" -msgstr "" +msgstr "Malzeme Listesi Şablonu Yükle" #: part/templates/part/bom_upload/upload_file.html:22 msgid "Each part must already exist in the database" @@ -4258,7 +4345,7 @@ msgstr "" msgid "All parts" msgstr "" -#: part/templates/part/category.html:29 part/views.py:2379 +#: part/templates/part/category.html:29 part/views.py:2397 msgid "Create new part category" msgstr "" @@ -4272,7 +4359,7 @@ msgstr "" #: part/templates/part/category.html:50 part/templates/part/category.html:89 msgid "Category Details" -msgstr "" +msgstr "Kategori Detayları" #: part/templates/part/category.html:55 msgid "Category Path" @@ -4287,11 +4374,11 @@ msgstr "" #: part/templates/part/category_navbar.html:18 #: part/templates/part/subcategory.html:16 msgid "Subcategories" -msgstr "" +msgstr "Alt kategoriler" #: part/templates/part/category.html:84 msgid "Parts (Including subcategories)" -msgstr "" +msgstr "Parçalar (Alt kategoriler dahil)" #: part/templates/part/category.html:113 msgid "Export Part Data" @@ -4299,11 +4386,11 @@ msgstr "" #: part/templates/part/category.html:125 msgid "Set category" -msgstr "" +msgstr "Kategori ayarla" #: part/templates/part/category.html:125 msgid "Set Category" -msgstr "" +msgstr "Kategori Ayarla" #: part/templates/part/category.html:128 msgid "Export Data" @@ -4318,9 +4405,9 @@ msgid "View grid display" msgstr "" #: part/templates/part/category.html:209 -#: stock/templates/stock/location.html:192 templates/js/stock.js:712 +#: stock/templates/stock/location.html:192 templates/js/stock.js:737 msgid "Create new location" -msgstr "" +msgstr "Yeni konum oluştur" #: part/templates/part/category.html:214 part/templates/part/category.html:244 msgid "New Category" @@ -4336,7 +4423,7 @@ msgstr "" #: part/templates/part/category.html:251 stock/views.py:1391 msgid "Create new Stock Location" -msgstr "" +msgstr "Yeni Stok konumu oluştur" #: part/templates/part/category_delete.html:5 msgid "Are you sure you want to delete category" @@ -4345,11 +4432,11 @@ msgstr "" #: part/templates/part/category_delete.html:8 #, python-format msgid "This category contains %(count)s child categories" -msgstr "" +msgstr "Bu kategori %(count)s alt kategori içermektedir" #: part/templates/part/category_delete.html:9 msgid "If this category is deleted, these child categories will be moved to the" -msgstr "" +msgstr "Bu kategori silinirse, alt kategoriler taşınacaktır" #: part/templates/part/category_delete.html:11 msgid "category" @@ -4373,14 +4460,8 @@ msgstr "" msgid "If this category is deleted, these parts will be moved to the top-level category Teile" msgstr "" -#: part/templates/part/category_navbar.html:34 -#: part/templates/part/category_navbar.html:37 -#: part/templates/part/navbar.html:22 -msgid "Parameters" -msgstr "" - #: part/templates/part/category_parametric.html:10 -#: part/templates/part/navbar.html:19 part/templates/part/params.html:10 +#: part/templates/part/navbar.html:21 part/templates/part/params.html:10 msgid "Part Parameters" msgstr "" @@ -4408,17 +4489,17 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:11 part/templates/part/navbar.html:11 +#: part/templates/part/detail.html:11 part/templates/part/navbar.html:13 msgid "Part Details" msgstr "" #: part/templates/part/detail.html:42 part/templates/part/part_base.html:188 msgid "Latest Serial Number" -msgstr "" +msgstr "Son Seri Numarası" #: part/templates/part/detail.html:47 msgid "No serial numbers recorded" -msgstr "" +msgstr "Seri numaraları kaydedildi" #: part/templates/part/detail.html:120 msgid "Stock Expiry Time" @@ -4438,11 +4519,11 @@ msgstr "" #: part/templates/part/detail.html:163 msgid "Part is a template part (variants can be made from this part)" -msgstr "" +msgstr "Bu parça bir şablon parçadır (Bu parçanın çeşitleri yapılabilir)" #: part/templates/part/detail.html:165 msgid "Part is not a template part" -msgstr "" +msgstr "Parça şablon parçası değil" #: part/templates/part/detail.html:173 msgid "Part can be assembled from other parts" @@ -4462,15 +4543,15 @@ msgstr "" #: part/templates/part/detail.html:193 msgid "Part stock is tracked by serial number" -msgstr "" +msgstr "Parça stoku seri numarası ile takip edilebilir" #: part/templates/part/detail.html:195 msgid "Part stock is not tracked by serial number" -msgstr "" +msgstr "Parça stoku seri numarası ile takip edilemez" #: part/templates/part/detail.html:203 part/templates/part/detail.html:205 msgid "Part can be purchased from external suppliers" -msgstr "" +msgstr "Bu parça harici tedarikçilerden satın alınabilir" #: part/templates/part/detail.html:213 msgid "Part can be sold to customers" @@ -4488,6 +4569,36 @@ msgstr "" msgid "Part is not active" msgstr "" +#: part/templates/part/internal_prices.html:11 +#: part/templates/part/navbar.html:100 +msgid "Internal Price Information" +msgstr "" + +#: part/templates/part/internal_prices.html:19 part/views.py:2822 +msgid "Add Internal Price Break" +msgstr "" + +#: part/templates/part/internal_prices.html:28 templates/403.html:5 +#: templates/403.html:11 +msgid "Permission Denied" +msgstr "" + +#: part/templates/part/internal_prices.html:31 templates/403.html:14 +msgid "You do not have permission to view this page." +msgstr "" + +#: part/templates/part/internal_prices.html:59 +msgid "No internal price break information found" +msgstr "" + +#: part/templates/part/internal_prices.html:110 +msgid "Edit internal price break" +msgstr "" + +#: part/templates/part/internal_prices.html:111 +msgid "Delete internal price break" +msgstr "" + #: part/templates/part/manufacturer.html:11 msgid "Part Manufacturers" msgstr "" @@ -4501,127 +4612,141 @@ msgstr "" msgid "Create new manufacturer" msgstr "" -#: part/templates/part/navbar.html:26 part/templates/part/variants.html:11 +#: part/templates/part/navbar.html:28 part/templates/part/variants.html:11 msgid "Part Variants" -msgstr "" +msgstr "Parça Çeşitleri" -#: part/templates/part/navbar.html:29 +#: part/templates/part/navbar.html:31 msgid "Variants" -msgstr "" +msgstr "Çeşitler" -#: part/templates/part/navbar.html:40 +#: part/templates/part/navbar.html:42 msgid "Allocated Stock" msgstr "" -#: part/templates/part/navbar.html:43 +#: part/templates/part/navbar.html:45 msgid "Allocations" -msgstr "" +msgstr "Tahsisler" -#: part/templates/part/navbar.html:64 part/templates/part/navbar.html:67 +#: part/templates/part/navbar.html:66 part/templates/part/navbar.html:69 msgid "Used In" msgstr "" -#: part/templates/part/navbar.html:72 part/templates/part/order_prices.html:12 +#: part/templates/part/navbar.html:74 part/templates/part/order_prices.html:12 msgid "Order Price Information" msgstr "" -#: part/templates/part/navbar.html:75 +#: part/templates/part/navbar.html:77 msgid "Order Price" msgstr "" -#: part/templates/part/navbar.html:98 +#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:93 +#: part/templates/part/part_pricing.html:82 +msgid "Internal Price" +msgstr "" + +#: part/templates/part/navbar.html:106 msgid "Sales Price Information" msgstr "" -#: part/templates/part/navbar.html:112 part/templates/part/part_tests.html:10 +#: part/templates/part/navbar.html:120 part/templates/part/part_tests.html:10 msgid "Part Test Templates" -msgstr "" +msgstr "Parça Test Şablonları" -#: part/templates/part/navbar.html:115 stock/templates/stock/item_base.html:409 +#: part/templates/part/navbar.html:123 stock/templates/stock/item_base.html:414 msgid "Tests" msgstr "" -#: part/templates/part/navbar.html:119 part/templates/part/navbar.html:122 +#: part/templates/part/navbar.html:127 part/templates/part/navbar.html:130 #: part/templates/part/related.html:10 msgid "Related Parts" msgstr "" -#: part/templates/part/navbar.html:131 part/templates/part/notes.html:12 +#: part/templates/part/navbar.html:139 part/templates/part/notes.html:12 msgid "Part Notes" msgstr "" -#: part/templates/part/order_prices.html:21 +#: part/templates/part/order_prices.html:24 +#: part/templates/part/part_base.html:282 +msgid "Calculate" +msgstr "" + +#: part/templates/part/order_prices.html:31 msgid "Pricing ranges" msgstr "" -#: part/templates/part/order_prices.html:26 -#: part/templates/part/part_pricing.html:19 +#: part/templates/part/order_prices.html:36 +#: part/templates/part/part_pricing.html:22 msgid "Supplier Pricing" msgstr "" -#: part/templates/part/order_prices.html:27 -#: part/templates/part/order_prices.html:52 -#: part/templates/part/order_prices.html:83 -#: part/templates/part/part_pricing.html:23 -#: part/templates/part/part_pricing.html:49 -#: part/templates/part/part_pricing.html:81 +#: part/templates/part/order_prices.html:37 +#: part/templates/part/order_prices.html:62 +#: part/templates/part/order_prices.html:94 +#: part/templates/part/order_prices.html:108 +#: part/templates/part/part_pricing.html:26 +#: part/templates/part/part_pricing.html:52 +#: part/templates/part/part_pricing.html:85 +#: part/templates/part/part_pricing.html:100 msgid "Unit Cost" msgstr "" -#: part/templates/part/order_prices.html:34 -#: part/templates/part/order_prices.html:59 -#: part/templates/part/order_prices.html:88 -#: part/templates/part/part_pricing.html:29 -#: part/templates/part/part_pricing.html:55 -#: part/templates/part/part_pricing.html:85 +#: part/templates/part/order_prices.html:44 +#: part/templates/part/order_prices.html:69 +#: part/templates/part/order_prices.html:99 +#: part/templates/part/order_prices.html:113 +#: part/templates/part/part_pricing.html:32 +#: part/templates/part/part_pricing.html:58 +#: part/templates/part/part_pricing.html:89 +#: part/templates/part/part_pricing.html:104 msgid "Total Cost" msgstr "" -#: part/templates/part/order_prices.html:42 -#: part/templates/part/part_pricing.html:37 +#: part/templates/part/order_prices.html:52 +#: part/templates/part/part_pricing.html:40 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/order_prices.html:51 -#: part/templates/part/order_prices.html:103 -#: part/templates/part/part_pricing.html:45 +#: part/templates/part/order_prices.html:61 +#: part/templates/part/order_prices.html:128 +#: part/templates/part/part_pricing.html:48 msgid "BOM Pricing" msgstr "" -#: part/templates/part/order_prices.html:67 -#: part/templates/part/part_pricing.html:63 +#: part/templates/part/order_prices.html:77 +#: part/templates/part/part_pricing.html:66 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/order_prices.html:74 -#: part/templates/part/part_pricing.html:70 +#: part/templates/part/order_prices.html:84 +#: part/templates/part/part_pricing.html:73 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/order_prices.html:97 -#: part/templates/part/part_pricing.html:94 +#: part/templates/part/order_prices.html:122 +#: part/templates/part/part_pricing.html:113 msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/order_prices.html:113 +#: part/templates/part/order_prices.html:138 msgid "Stock Pricing" msgstr "" -#: part/templates/part/order_prices.html:121 +#: part/templates/part/order_prices.html:146 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/order_prices.html:140 +#: part/templates/part/order_prices.html:165 #, python-format msgid "Single Price - %(currency)s" msgstr "" -#: part/templates/part/order_prices.html:152 +#: part/templates/part/order_prices.html:177 #, python-format msgid "Single Price Difference - %(currency)s" msgstr "" -#: part/templates/part/order_prices.html:163 +#: part/templates/part/order_prices.html:189 #, python-format msgid "Part Single Price - %(currency)s" msgstr "" @@ -4630,37 +4755,24 @@ msgstr "" msgid "Add new parameter" msgstr "" -#: part/templates/part/params.html:18 -#: templates/InvenTree/settings/category.html:29 -#: templates/InvenTree/settings/part.html:44 -msgid "New Parameter" -msgstr "" - -#: part/templates/part/params.html:28 -#: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1756 templates/InvenTree/settings/header.html:8 -#: templates/js/stock.js:137 -msgid "Value" -msgstr "" - #: part/templates/part/params.html:41 templates/InvenTree/settings/user.html:19 msgid "Edit" msgstr "" #: part/templates/part/params.html:68 msgid "New Template" -msgstr "" +msgstr "Yeni Şablon" #: part/templates/part/params.html:69 msgid "Create New Parameter Template" -msgstr "" +msgstr "Yeni Parametre Şablonu Oluştur" #: part/templates/part/part_app_base.html:12 msgid "Part List" msgstr "" #: part/templates/part/part_base.html:26 templates/js/company.js:156 -#: templates/js/company.js:254 templates/js/part.js:84 templates/js/part.js:161 +#: templates/js/company.js:355 templates/js/part.js:84 templates/js/part.js:161 msgid "Inactive" msgstr "" @@ -4672,7 +4784,7 @@ msgstr "" #: stock/templates/stock/item_base.html:75 #: stock/templates/stock/location.html:51 msgid "Barcode actions" -msgstr "" +msgstr "Barkod işlemleri" #: part/templates/part/part_base.html:42 #: stock/templates/stock/item_base.html:77 @@ -4684,7 +4796,7 @@ msgstr "" #: stock/templates/stock/item_base.html:93 #: stock/templates/stock/location.html:54 msgid "Print Label" -msgstr "" +msgstr "Etiket Yazdır" #: part/templates/part/part_base.html:48 msgid "Show pricing information" @@ -4696,7 +4808,7 @@ msgstr "" #: part/templates/part/part_base.html:67 msgid "Part actions" -msgstr "" +msgstr "Parça işlemleri" #: part/templates/part/part_base.html:70 msgid "Duplicate part" @@ -4717,7 +4829,7 @@ msgstr "" #: part/templates/part/part_base.html:113 #, python-format msgid "This part is a variant of %(link)s" -msgstr "" +msgstr "Bu parça %(link)s parçasının bir çeşididir" #: part/templates/part/part_base.html:130 templates/js/table_filters.js:161 msgid "In Stock" @@ -4725,11 +4837,11 @@ msgstr "" #: part/templates/part/part_base.html:143 templates/InvenTree/index.html:131 msgid "Required for Build Orders" -msgstr "" +msgstr "Yapım İşi Emirleri için Gerekli" #: part/templates/part/part_base.html:150 msgid "Required for Sales Orders" -msgstr "" +msgstr "Satış Emirleri için Gerekli" #: part/templates/part/part_base.html:157 msgid "Allocated to Orders" @@ -4740,17 +4852,13 @@ msgid "Can Build" msgstr "" #: part/templates/part/part_base.html:178 templates/js/part.js:312 -#: templates/js/part.js:484 +#: templates/js/part.js:485 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:265 -msgid "Calculate" -msgstr "" - #: part/templates/part/part_tests.html:17 msgid "Add Test Template" -msgstr "" +msgstr "Test Şablonu Ekle" #: part/templates/part/part_thumb.html:20 msgid "Select from existing images" @@ -4779,7 +4887,7 @@ msgstr "" #: part/templates/part/partial_delete.html:44 #, python-format msgid "There are %(count)s suppliers defined for this part. If you delete this part, the following supplier parts will also be deleted:" -msgstr "" +msgstr "Bu parçası için tanımlanmış %(count)s tedarikçi bulunmaktadır. Bu parçayı silerseniz, aşağıdaki tedarikçi parçaları da silinecektir:" #: part/templates/part/partial_delete.html:55 #, python-format @@ -4804,29 +4912,29 @@ msgstr "" #: part/templates/part/set_category.html:9 msgid "Set category for the following parts" -msgstr "" +msgstr "Aşağıdaki parçalara kategori ayarla" #: part/templates/part/stock.html:10 msgid "Part Stock" -msgstr "" +msgstr "Parça Stoku" #: part/templates/part/stock.html:16 #, python-format msgid "Showing stock for all variants of %(full_name)s" -msgstr "" +msgstr "%(full_name)s için tüm çeşitlerin stokları gösteriliyor" #: part/templates/part/stock_count.html:7 templates/js/bom.js:239 -#: templates/js/part.js:302 templates/js/part.js:488 +#: templates/js/part.js:302 templates/js/part.js:489 msgid "No Stock" -msgstr "" +msgstr "Stok Yok" #: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:130 msgid "Low Stock" -msgstr "" +msgstr "Düşük Stok" #: part/templates/part/supplier.html:10 msgid "Part Suppliers" -msgstr "" +msgstr "Parça Tedarikçileri" #: part/templates/part/track.html:10 msgid "Part Tracking" @@ -4838,22 +4946,22 @@ msgstr "" #: part/templates/part/variant_part.html:9 msgid "Create new part variant" -msgstr "" +msgstr "Yeni parça çeşidi oluştur" #: part/templates/part/variant_part.html:10 #, python-format msgid "Create a new variant of template '%(full_name)s'." -msgstr "" +msgstr "%(full_name)s şablonu için yeni bir çeşit oluştur." #: part/templates/part/variants.html:19 msgid "Create new variant" -msgstr "" +msgstr "Yeni çeşit oluştur" #: part/templates/part/variants.html:20 msgid "New Variant" -msgstr "" +msgstr "Yeni Çeşit" -#: part/templatetags/inventree_extras.py:98 +#: part/templatetags/inventree_extras.py:99 msgid "Unknown database" msgstr "" @@ -4887,15 +4995,15 @@ msgstr "" #: part/views.py:248 msgid "Create Test Template" -msgstr "" +msgstr "Test Şablonu Oluştur" #: part/views.py:275 msgid "Edit Test Template" -msgstr "" +msgstr "Test Şablonu Düzenle" #: part/views.py:289 msgid "Delete Test Template" -msgstr "" +msgstr "Test Şablonu Sil" #: part/views.py:296 msgid "Set Part Category" @@ -4908,7 +5016,7 @@ msgstr "" #: part/views.py:381 msgid "Create Variant" -msgstr "" +msgstr "Çeşit Oluştur" #: part/views.py:466 msgid "Copied part" @@ -4922,233 +5030,245 @@ msgstr "" msgid "Created new part" msgstr "" -#: part/views.py:914 +#: part/views.py:925 msgid "Part QR Code" msgstr "" -#: part/views.py:1016 +#: part/views.py:1027 msgid "Upload Part Image" msgstr "" -#: part/views.py:1022 part/views.py:1057 +#: part/views.py:1033 part/views.py:1068 msgid "Updated part image" msgstr "" -#: part/views.py:1031 +#: part/views.py:1042 msgid "Select Part Image" msgstr "" -#: part/views.py:1060 +#: part/views.py:1071 msgid "Part image not found" msgstr "" -#: part/views.py:1071 +#: part/views.py:1082 msgid "Edit Part Properties" msgstr "" -#: part/views.py:1106 +#: part/views.py:1117 msgid "Duplicate BOM" msgstr "" -#: part/views.py:1136 +#: part/views.py:1147 msgid "Confirm duplication of BOM from parent" msgstr "" -#: part/views.py:1157 +#: part/views.py:1168 msgid "Validate BOM" msgstr "" -#: part/views.py:1178 +#: part/views.py:1189 msgid "Confirm that the BOM is valid" msgstr "" -#: part/views.py:1189 +#: part/views.py:1200 msgid "Validated Bill of Materials" msgstr "" -#: part/views.py:1323 +#: part/views.py:1334 msgid "No BOM file provided" msgstr "" -#: part/views.py:1684 +#: part/views.py:1695 msgid "Enter a valid quantity" msgstr "" -#: part/views.py:1709 part/views.py:1712 +#: part/views.py:1720 part/views.py:1723 msgid "Select valid part" msgstr "" -#: part/views.py:1718 +#: part/views.py:1729 msgid "Duplicate part selected" msgstr "" -#: part/views.py:1756 +#: part/views.py:1767 msgid "Select a part" msgstr "" -#: part/views.py:1762 +#: part/views.py:1773 msgid "Selected part creates a circular BOM" msgstr "" -#: part/views.py:1766 +#: part/views.py:1777 msgid "Specify quantity" msgstr "" -#: part/views.py:2028 +#: part/views.py:2039 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:2035 +#: part/views.py:2046 msgid "Part was deleted" msgstr "" -#: part/views.py:2044 +#: part/views.py:2055 msgid "Part Pricing" msgstr "" -#: part/views.py:2178 +#: part/views.py:2196 msgid "Create Part Parameter Template" -msgstr "" +msgstr "Parça Parametre Şablonu Oluştur" -#: part/views.py:2188 +#: part/views.py:2206 msgid "Edit Part Parameter Template" -msgstr "" +msgstr "Parça Parametre Şablonu Düzenle" -#: part/views.py:2195 +#: part/views.py:2213 msgid "Delete Part Parameter Template" -msgstr "" +msgstr "Parça Parametre Şablonu Sil" -#: part/views.py:2203 +#: part/views.py:2221 msgid "Create Part Parameter" msgstr "" -#: part/views.py:2253 +#: part/views.py:2271 msgid "Edit Part Parameter" msgstr "" -#: part/views.py:2267 +#: part/views.py:2285 msgid "Delete Part Parameter" msgstr "" -#: part/views.py:2327 +#: part/views.py:2345 msgid "Edit Part Category" msgstr "" -#: part/views.py:2365 +#: part/views.py:2383 msgid "Delete Part Category" msgstr "" -#: part/views.py:2371 +#: part/views.py:2389 msgid "Part category was deleted" msgstr "" -#: part/views.py:2423 +#: part/views.py:2441 msgid "Create Category Parameter Template" -msgstr "" +msgstr "Kategori Parametre Şablonu Oluştur" -#: part/views.py:2524 +#: part/views.py:2542 msgid "Edit Category Parameter Template" -msgstr "" +msgstr "Kategori Parametre Şablonu Düzenle" -#: part/views.py:2580 +#: part/views.py:2598 msgid "Delete Category Parameter Template" -msgstr "" +msgstr "Kategori Parametre Şablonu Sil" -#: part/views.py:2599 +#: part/views.py:2617 msgid "Create BOM Item" msgstr "" -#: part/views.py:2669 +#: part/views.py:2687 msgid "Edit BOM item" msgstr "" -#: part/views.py:2725 +#: part/views.py:2743 msgid "Confim BOM item deletion" msgstr "" -#: report/models.py:180 +#: part/views.py:2831 +msgid "Edit Internal Price Break" +msgstr "" + +#: part/views.py:2839 +msgid "Delete Internal Price Break" +msgstr "" + +#: report/models.py:181 msgid "Template name" -msgstr "" +msgstr "Şablon adı" -#: report/models.py:186 +#: report/models.py:187 msgid "Report template file" -msgstr "" +msgstr "Rapor şablon dosyası" -#: report/models.py:193 +#: report/models.py:194 msgid "Report template description" -msgstr "" +msgstr "Rapor şablon tanımı" -#: report/models.py:199 +#: report/models.py:200 msgid "Report revision number (auto-increments)" +msgstr "Revizyon numarası raporla (otomatik artış)" + +#: report/models.py:291 +msgid "Pattern for generating report filenames" msgstr "" -#: report/models.py:275 +#: report/models.py:298 msgid "Report template is enabled" -msgstr "" +msgstr "Rapor şablonu etkin" -#: report/models.py:295 +#: report/models.py:318 msgid "StockItem query filters (comma-separated list of key=value pairs)" -msgstr "" +msgstr "Stok kalemi sorgu filtreleri (anahter=değer [key=value] olarak virgülle ayrılmış liste)" -#: report/models.py:303 +#: report/models.py:326 msgid "Include Installed Tests" msgstr "" -#: report/models.py:304 +#: report/models.py:327 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:347 +#: report/models.py:371 msgid "Build Filters" msgstr "" -#: report/models.py:348 +#: report/models.py:372 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:385 +#: report/models.py:410 msgid "Part Filters" msgstr "" -#: report/models.py:386 +#: report/models.py:411 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:416 +#: report/models.py:441 msgid "Purchase order query filters" msgstr "" -#: report/models.py:450 +#: report/models.py:475 msgid "Sales order query filters" msgstr "" -#: report/models.py:500 +#: report/models.py:525 msgid "Snippet" msgstr "" -#: report/models.py:501 +#: report/models.py:526 msgid "Report snippet file" msgstr "" -#: report/models.py:505 +#: report/models.py:530 msgid "Snippet file description" msgstr "" -#: report/models.py:540 +#: report/models.py:565 msgid "Asset" msgstr "" -#: report/models.py:541 +#: report/models.py:566 msgid "Report asset file" msgstr "" -#: report/models.py:544 +#: report/models.py:569 msgid "Asset file description" msgstr "" #: report/templates/report/inventree_build_order_base.html:147 msgid "Required For" -msgstr "" +msgstr "İçin Gerekli Olan" #: report/templates/report/inventree_po_report.html:85 #: report/templates/report/inventree_so_report.html:85 @@ -5174,7 +5294,7 @@ msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/order.js:195 templates/js/stock.js:987 +#: templates/js/order.js:195 templates/js/stock.js:1012 msgid "Date" msgstr "" @@ -5189,7 +5309,7 @@ msgstr "" #: stock/api.py:212 #, python-brace-format msgid "Updated stock for {n} items" -msgstr "" +msgstr "{n} öge için stok güncellendi" #: stock/api.py:281 #, python-brace-format @@ -5197,54 +5317,54 @@ msgid "Moved {n} parts to {loc}" msgstr "" #: stock/forms.py:114 stock/forms.py:418 stock/models.py:509 -#: stock/templates/stock/item_base.html:376 templates/js/stock.js:654 +#: stock/templates/stock/item_base.html:381 templates/js/stock.js:658 msgid "Expiry Date" msgstr "" #: stock/forms.py:115 stock/forms.py:419 msgid "Expiration date for this stock item" -msgstr "" +msgstr "Bu stok kalemi için son kullanma tarihi" #: stock/forms.py:118 msgid "Enter unique serial numbers (or leave blank)" -msgstr "" +msgstr "Benzersiz seri numaraları giriniz (veya boş bırakınız)" #: stock/forms.py:169 msgid "Destination for serialized stock (by default, will remain in current location)" -msgstr "" +msgstr "Seri numaralandırılmış stok için hedef konum(varsayılan olarak, geçerli konumda kalacaktır)" #: stock/forms.py:171 msgid "Serial numbers" -msgstr "" +msgstr "Seri numaraları" #: stock/forms.py:171 msgid "Unique serial numbers (must match quantity)" -msgstr "" +msgstr "Benzersiz seri numaraları (miktar ile eşleşmeli)" #: stock/forms.py:173 stock/forms.py:349 msgid "Add transaction note (optional)" -msgstr "" +msgstr "İşlem notu ekle (isteğe bağlı)" #: stock/forms.py:203 stock/forms.py:259 msgid "Select test report template" -msgstr "" +msgstr "Test raporu şablonu seç" #: stock/forms.py:267 templates/js/table_filters.js:75 #: templates/js/table_filters.js:138 msgid "Include sublocations" -msgstr "" +msgstr "Alt konumları dahil et" #: stock/forms.py:267 msgid "Include stock items in sub locations" -msgstr "" +msgstr "Stok kalemlerine alt konumları dahil et" #: stock/forms.py:302 msgid "Stock item to install" -msgstr "" +msgstr "Kurulacak stok kalemi" #: stock/forms.py:309 msgid "Stock quantity to assign" -msgstr "" +msgstr "Atanacak stok miktarı" #: stock/forms.py:337 msgid "Must not exceed available quantity" @@ -5252,7 +5372,7 @@ msgstr "" #: stock/forms.py:347 msgid "Destination location for uninstalled items" -msgstr "" +msgstr "Sökülen ögeler için hedef konum" #: stock/forms.py:351 msgid "Confirm uninstall" @@ -5260,31 +5380,31 @@ msgstr "" #: stock/forms.py:351 msgid "Confirm removal of installed stock items" -msgstr "" +msgstr "Kurulu stok kalemlerinin kaldırılmasını onayla" #: stock/forms.py:375 msgid "Destination stock location" -msgstr "" +msgstr "Hedef stok konumu" #: stock/forms.py:377 msgid "Add note (required)" -msgstr "" +msgstr "Not ekle (gerekli)" #: stock/forms.py:381 stock/views.py:852 stock/views.py:1051 msgid "Confirm stock adjustment" -msgstr "" +msgstr "Stok ayarlamasını onayla" #: stock/forms.py:381 msgid "Confirm movement of stock items" -msgstr "" +msgstr "Stok kalemlerinin hareketini onaylayın" #: stock/forms.py:383 msgid "Set Default Location" -msgstr "" +msgstr "Varsayılan Konum Ayarla" #: stock/forms.py:383 msgid "Set the destination as the default location for selected parts" -msgstr "" +msgstr "Hedefi seçili parçalar için varsayılan konum olarak ayarla" #: stock/models.py:56 stock/models.py:547 msgid "Owner" @@ -5296,7 +5416,7 @@ msgstr "" #: stock/models.py:275 msgid "StockItem with this serial number already exists" -msgstr "" +msgstr "Bu seri numarasına sahip stok kalemi zaten var" #: stock/models.py:311 #, python-brace-format @@ -5305,11 +5425,11 @@ msgstr "" #: stock/models.py:321 stock/models.py:330 msgid "Quantity must be 1 for item with a serial number" -msgstr "" +msgstr "Seri numarası olan ögenin miktarı bir olmalı" #: stock/models.py:322 msgid "Serial number cannot be set if quantity greater than 1" -msgstr "" +msgstr "Miktar birden büyük ise seri numarası ayarlanamaz" #: stock/models.py:344 msgid "Item cannot belong to itself" @@ -5325,7 +5445,7 @@ msgstr "" #: stock/models.py:399 msgid "Parent Stock Item" -msgstr "" +msgstr "Üst Stok Kalemi" #: stock/models.py:408 msgid "Base part" @@ -5333,11 +5453,11 @@ msgstr "" #: stock/models.py:417 msgid "Select a matching supplier part for this stock item" -msgstr "" +msgstr "Bu stok kalemi için tedarikçi parçası seçin" #: stock/models.py:422 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" -msgstr "" +msgstr "Stok Konumu" #: stock/models.py:425 msgid "Where is this stock item located?" @@ -5357,7 +5477,7 @@ msgstr "" #: stock/models.py:456 msgid "Serial number for this item" -msgstr "" +msgstr "Bu öge için seri numarası" #: stock/models.py:468 msgid "Batch code for this stock item" @@ -5423,20 +5543,20 @@ msgstr "" #: stock/models.py:1026 msgid "Serial numbers must be a list of integers" -msgstr "" +msgstr "Seri numaraları tam sayı listesi olmalı" #: stock/models.py:1029 msgid "Quantity does not match serial numbers" -msgstr "" +msgstr "Miktar seri numaları ile eşleşmiyor" #: stock/models.py:1036 #, python-brace-format msgid "Serial numbers already exist: {exists}" -msgstr "" +msgstr "Seri numaraları zaten mevcut: {exists}" #: stock/models.py:1194 msgid "StockItem cannot be moved as it is not in stock" -msgstr "" +msgstr "Stok kalemi stokta olmadığı için taşınamaz" #: stock/models.py:1668 msgid "Entry notes" @@ -5483,12 +5603,12 @@ msgid "Stock Item Attachments" msgstr "" #: stock/templates/stock/item_base.html:33 -#: stock/templates/stock/item_base.html:380 templates/js/table_filters.js:150 +#: stock/templates/stock/item_base.html:385 templates/js/table_filters.js:150 msgid "Expired" msgstr "" #: stock/templates/stock/item_base.html:43 -#: stock/templates/stock/item_base.html:382 templates/js/table_filters.js:155 +#: stock/templates/stock/item_base.html:387 templates/js/table_filters.js:155 msgid "Stale" msgstr "" @@ -5503,11 +5623,11 @@ msgstr "" #: stock/templates/stock/item_base.html:84 templates/stock_table.html:31 msgid "Scan to Location" -msgstr "" +msgstr "Konuma Tara" #: stock/templates/stock/item_base.html:91 msgid "Printing actions" -msgstr "" +msgstr "Yazdırma işlemleri" #: stock/templates/stock/item_base.html:95 #: stock/templates/stock/item_tests.html:27 @@ -5516,7 +5636,7 @@ msgstr "" #: stock/templates/stock/item_base.html:104 msgid "Stock adjustment actions" -msgstr "" +msgstr "Stok ayarlama işlemleri" #: stock/templates/stock/item_base.html:108 #: stock/templates/stock/location.html:65 templates/stock_table.html:57 @@ -5533,7 +5653,7 @@ msgstr "" #: stock/templates/stock/item_base.html:117 msgid "Serialize stock" -msgstr "" +msgstr "Stoku seri numarala" #: stock/templates/stock/item_base.html:121 msgid "Transfer stock" @@ -5558,11 +5678,11 @@ msgstr "" #: stock/templates/stock/item_base.html:140 #: stock/templates/stock/location.html:62 msgid "Stock actions" -msgstr "" +msgstr "Stok işlemleri" #: stock/templates/stock/item_base.html:143 msgid "Convert to variant" -msgstr "" +msgstr "Çeşide çevir" #: stock/templates/stock/item_base.html:146 msgid "Duplicate stock item" @@ -5590,7 +5710,7 @@ msgstr "" #: stock/templates/stock/item_base.html:192 msgid "This stock item has not passed all required tests" -msgstr "" +msgstr "Stok kalemi tüm gerekli testleri geçmedi" #: stock/templates/stock/item_base.html:200 #, python-format @@ -5604,7 +5724,7 @@ msgstr "" #: stock/templates/stock/item_base.html:214 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." -msgstr "" +msgstr "Bu stok kalemi seri numaları - Benzersiz bir seri numarasına sahip ve miktarı ayarlanamaz." #: stock/templates/stock/item_base.html:218 msgid "This stock item cannot be deleted as it has child items" @@ -5618,9 +5738,9 @@ msgstr "" msgid "Stock Item Details" msgstr "" -#: stock/templates/stock/item_base.html:289 templates/js/build.js:508 +#: stock/templates/stock/item_base.html:289 templates/js/build.js:593 msgid "No location set" -msgstr "" +msgstr "Konum ayarlanmadı" #: stock/templates/stock/item_base.html:296 msgid "Barcode Identifier" @@ -5630,25 +5750,29 @@ msgstr "" msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:380 +#: stock/templates/stock/item_base.html:356 +msgid "No manufacturer set" +msgstr "" + +#: stock/templates/stock/item_base.html:385 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" -msgstr "" +msgstr "Bu stok kaleminin süresi %(item.expiry_date)s tarihinde sona erdi" -#: stock/templates/stock/item_base.html:382 +#: stock/templates/stock/item_base.html:387 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" -msgstr "" +msgstr "Bu stok kaleminin süresi %(item.expiry_date)s tarihinde sona erecek" -#: stock/templates/stock/item_base.html:389 templates/js/stock.js:660 +#: stock/templates/stock/item_base.html:394 templates/js/stock.js:664 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:394 +#: stock/templates/stock/item_base.html:399 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:398 +#: stock/templates/stock/item_base.html:403 msgid "No stocktake performed" msgstr "" @@ -5671,7 +5795,7 @@ msgstr "" #: stock/templates/stock/item_install.html:7 msgid "Install another StockItem into this item." -msgstr "" +msgstr "Bu ögeye başka bir stok kalemi ekle." #: stock/templates/stock/item_install.html:10 msgid "Stock items can only be installed if they meet the following criteria" @@ -5679,11 +5803,11 @@ msgstr "" #: stock/templates/stock/item_install.html:13 msgid "The StockItem links to a Part which is in the BOM for this StockItem" -msgstr "" +msgstr "Bu stok kalemi, kendi malzeme listesinin bir parçasına bağlıdır" #: stock/templates/stock/item_install.html:14 msgid "The StockItem is currently in stock" -msgstr "" +msgstr "Bu stok kalemi şu anda stokta" #: stock/templates/stock/item_installed.html:11 #: stock/templates/stock/navbar.html:27 @@ -5692,11 +5816,11 @@ msgstr "" #: stock/templates/stock/item_serialize.html:5 msgid "Create serialized items from this stock item." -msgstr "" +msgstr "Bu stok kalemi için seri numaralandırılmış ögeler oluştur." #: stock/templates/stock/item_serialize.html:7 msgid "Select quantity to serialize, and unique serial numbers." -msgstr "" +msgstr "Seri numaralandırılacak miktarı ve benzersiz seri numaralarını seçin." #: stock/templates/stock/item_tests.html:11 #: stock/templates/stock/navbar.html:19 stock/templates/stock/navbar.html:22 @@ -5713,7 +5837,7 @@ msgstr "" #: stock/templates/stock/location.html:20 msgid "You are not in the list of owners of this location. This stock location cannot be edited." -msgstr "" +msgstr "Bu konumun sahipleri listesinde değilsiniz. Bu stok konumu düzenlenemez." #: stock/templates/stock/location.html:37 msgid "All stock items" @@ -5725,34 +5849,34 @@ msgstr "" #: stock/templates/stock/location.html:71 msgid "Location actions" -msgstr "" +msgstr "Konum işlemleri" #: stock/templates/stock/location.html:73 msgid "Edit location" -msgstr "" +msgstr "Konumu düzenle" #: stock/templates/stock/location.html:75 msgid "Delete location" -msgstr "" +msgstr "Konumu sil" #: stock/templates/stock/location.html:87 msgid "Location Details" -msgstr "" +msgstr "Konum Detayları" #: stock/templates/stock/location.html:92 msgid "Location Path" -msgstr "" +msgstr "Konum Yolu" #: stock/templates/stock/location.html:97 msgid "Location Description" -msgstr "" +msgstr "Konum Tanımı" #: stock/templates/stock/location.html:102 #: stock/templates/stock/location_navbar.html:11 #: stock/templates/stock/location_navbar.html:18 #: stock/templates/stock/sublocation.html:16 msgid "Sublocations" -msgstr "" +msgstr "Alt konumlar" #: stock/templates/stock/location.html:112 msgid "Stock Details" @@ -5761,11 +5885,11 @@ msgstr "" #: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279 #: templates/stats.html:97 users/models.py:41 msgid "Stock Locations" -msgstr "" +msgstr "Stok Konumları" #: stock/templates/stock/location_delete.html:7 msgid "Are you sure you want to delete this stock location?" -msgstr "" +msgstr "Bu stok konumunu silmek istediğinizden emin misiniz?" #: stock/templates/stock/navbar.html:11 msgid "Stock Item Tracking" @@ -5801,28 +5925,28 @@ msgstr "" #: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364 msgid "Convert Stock Item" -msgstr "" +msgstr "Stok Kalemine Dönüştür" #: stock/templates/stock/stockitem_convert.html:8 #, python-format msgid "This stock item is current an instance of %(part)s" -msgstr "" +msgstr "Bu stok kalemi şu anda %(part)s parçasının örneğidir" #: stock/templates/stock/stockitem_convert.html:9 msgid "It can be converted to one of the part variants listed below." -msgstr "" +msgstr "Aşağıda listelenen parça çeşitlerinden birine dönüştürülebilir." #: stock/templates/stock/stockitem_convert.html:14 msgid "This action cannot be easily undone" -msgstr "" +msgstr "Bu işlem kolayca geri alınamaz" #: stock/templates/stock/sublocation.html:23 templates/stock_table.html:37 msgid "Printing Actions" -msgstr "" +msgstr "Yazdırma İşlemleri" #: stock/templates/stock/sublocation.html:27 templates/stock_table.html:41 msgid "Print labels" -msgstr "" +msgstr "Etiketleri yazdır" #: stock/templates/stock/tracking_delete.html:6 msgid "Are you sure you want to delete this stock tracking entry?" @@ -5830,16 +5954,16 @@ msgstr "" #: stock/views.py:123 msgid "Edit Stock Location" -msgstr "" +msgstr "Stok konumunu düzenle" #: stock/views.py:230 stock/views.py:1343 stock/views.py:1465 #: stock/views.py:1830 msgid "Owner is required (ownership control is enabled)" -msgstr "" +msgstr "Sahip gerekli (sahip kontrolü etkinleştirildi)" #: stock/views.py:245 msgid "Stock Location QR code" -msgstr "" +msgstr "Stok Konumu QR Kodu" #: stock/views.py:265 msgid "Add Stock Item Attachment" @@ -5867,7 +5991,7 @@ msgstr "" #: stock/views.py:385 msgid "Specify a valid location" -msgstr "" +msgstr "Geçerli bir konum belirtiniz" #: stock/views.py:396 msgid "Stock item returned from customer" @@ -5945,7 +6069,7 @@ msgstr "" msgid "Add Stock Items" msgstr "" -#: stock/views.py:1001 users/models.py:183 +#: stock/views.py:1001 users/models.py:187 msgid "Add" msgstr "" @@ -5968,7 +6092,7 @@ msgstr "" #: stock/views.py:1107 msgid "No action performed" -msgstr "" +msgstr "Herhangi bir işlem gerçekleştirilmedi" #: stock/views.py:1122 #, python-brace-format @@ -6009,9 +6133,9 @@ msgstr "" #: stock/views.py:1482 msgid "Serialize Stock" -msgstr "" +msgstr "Stoku Seri Numarala" -#: stock/views.py:1575 templates/js/build.js:244 +#: stock/views.py:1575 templates/js/build.js:326 msgid "Create new Stock Item" msgstr "" @@ -6025,7 +6149,7 @@ msgstr "" #: stock/views.py:1899 msgid "Delete Stock Location" -msgstr "" +msgstr "Stok Konumunu Sil" #: stock/views.py:1912 msgid "Delete Stock Item" @@ -6043,14 +6167,6 @@ msgstr "" msgid "Add Stock Tracking Entry" msgstr "" -#: templates/403.html:5 templates/403.html:11 -msgid "Permission Denied" -msgstr "" - -#: templates/403.html:14 -msgid "You do not have permission to view this page." -msgstr "" - #: templates/404.html:5 templates/404.html:11 msgid "Page Not Found" msgstr "" @@ -6119,13 +6235,13 @@ msgstr "" msgid "Enter a search query" msgstr "" -#: templates/InvenTree/search.html:268 templates/js/stock.js:298 +#: templates/InvenTree/search.html:268 templates/js/stock.js:303 msgid "Shipped to customer" msgstr "" -#: templates/InvenTree/search.html:271 templates/js/stock.js:308 +#: templates/InvenTree/search.html:271 templates/js/stock.js:313 msgid "No stock location set" -msgstr "" +msgstr "Stok konumu ayarlanmadı" #: templates/InvenTree/settings/appearance.html:10 msgid "Theme Settings" @@ -6157,25 +6273,25 @@ msgstr "" #: templates/InvenTree/settings/category.html:9 msgid "Category Settings" -msgstr "" +msgstr "Kategori Ayarları" #: templates/InvenTree/settings/category.html:25 msgid "Category Parameter Templates" -msgstr "" +msgstr "Kategori Parametre Şablonu" #: templates/InvenTree/settings/category.html:52 msgid "No category parameter templates found" -msgstr "" +msgstr "Kategori parametre şablonu bulunamadı" #: templates/InvenTree/settings/category.html:70 -#: templates/InvenTree/settings/part.html:81 +#: templates/InvenTree/settings/part.html:85 msgid "Edit Template" -msgstr "" +msgstr "Şablonu Düzenle" #: templates/InvenTree/settings/category.html:71 -#: templates/InvenTree/settings/part.html:82 +#: templates/InvenTree/settings/part.html:86 msgid "Delete Template" -msgstr "" +msgstr "Şablonu Sil" #: templates/InvenTree/settings/currencies.html:10 msgid "Currency Settings" @@ -6221,13 +6337,13 @@ msgstr "" msgid "Part Options" msgstr "" -#: templates/InvenTree/settings/part.html:40 +#: templates/InvenTree/settings/part.html:44 msgid "Part Parameter Templates" -msgstr "" +msgstr "Parça Parametre Şablonu" -#: templates/InvenTree/settings/part.html:61 +#: templates/InvenTree/settings/part.html:65 msgid "No part parameter templates found" -msgstr "" +msgstr "Parça parametre şablonu bulunamadı" #: templates/InvenTree/settings/po.html:9 msgid "Purchase Order Settings" @@ -6341,47 +6457,51 @@ msgid "API Version" msgstr "" #: templates/about.html:39 +msgid "Python Version" +msgstr "" + +#: templates/about.html:44 msgid "Django Version" msgstr "" -#: templates/about.html:46 +#: templates/about.html:51 msgid "Commit Hash" msgstr "" -#: templates/about.html:53 +#: templates/about.html:58 msgid "Commit Date" msgstr "" -#: templates/about.html:58 +#: templates/about.html:63 msgid "InvenTree Documentation" msgstr "" -#: templates/about.html:63 +#: templates/about.html:68 msgid "View Code on GitHub" msgstr "" -#: templates/about.html:68 +#: templates/about.html:73 msgid "Credits" msgstr "" -#: templates/about.html:73 +#: templates/about.html:78 msgid "Mobile App" msgstr "" -#: templates/about.html:78 +#: templates/about.html:83 msgid "Submit Bug Report" msgstr "" -#: templates/about.html:85 templates/clip.html:4 +#: templates/about.html:90 templates/clip.html:4 msgid "copy to clipboard" msgstr "" -#: templates/about.html:85 +#: templates/about.html:90 msgid "copy version information" msgstr "" -#: templates/about.html:95 templates/js/modals.js:568 -#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54 +#: templates/about.html:100 templates/js/modals.js:568 +#: templates/js/modals.js:861 templates/modals.html:29 templates/modals.html:54 #: templates/modals.html:97 msgid "Close" msgstr "" @@ -6442,7 +6562,7 @@ msgstr "" msgid "Unknown response from server" msgstr "" -#: templates/js/barcode.js:119 templates/js/modals.js:901 +#: templates/js/barcode.js:119 templates/js/modals.js:921 msgid "Invalid server response" msgstr "" @@ -6472,7 +6592,7 @@ msgstr "" #: templates/js/barcode.js:418 msgid "Check Stock Items into Location" -msgstr "" +msgstr "Stok Kalemlerini bu konuma kaydet" #: templates/js/barcode.js:422 templates/js/barcode.js:547 msgid "Check In" @@ -6488,7 +6608,7 @@ msgstr "" #: templates/js/barcode.js:485 msgid "Stock Item already in this location" -msgstr "" +msgstr "Stok kalemi zaten bu konumda" #: templates/js/barcode.js:492 msgid "Added stock item" @@ -6500,13 +6620,13 @@ msgstr "" #: templates/js/barcode.js:542 msgid "Check Into Location" -msgstr "" +msgstr "Konuma Kaydet" #: templates/js/barcode.js:605 msgid "Barcode does not match a valid location" -msgstr "" +msgstr "Barkod geçerli bir konumla eşleşmiyor" -#: templates/js/bom.js:175 templates/js/build.js:1004 +#: templates/js/bom.js:175 templates/js/build.js:1091 msgid "Open subassembly" msgstr "" @@ -6542,7 +6662,7 @@ msgstr "" msgid "Delete BOM Item" msgstr "" -#: templates/js/bom.js:470 templates/js/build.js:340 templates/js/build.js:1102 +#: templates/js/bom.js:470 templates/js/build.js:423 templates/js/build.js:1189 msgid "No BOM items found" msgstr "" @@ -6562,37 +6682,45 @@ msgstr "" msgid "Delete build output" msgstr "" -#: templates/js/build.js:243 templates/stock_table.html:20 +#: templates/js/build.js:184 +msgid "No build order allocations found" +msgstr "" + +#: templates/js/build.js:222 templates/js/order.js:382 +msgid "Location not specified" +msgstr "" + +#: templates/js/build.js:325 templates/stock_table.html:20 msgid "New Stock Item" msgstr "" -#: templates/js/build.js:559 +#: templates/js/build.js:644 msgid "Required Part" -msgstr "" +msgstr "Gerekli Parça" -#: templates/js/build.js:580 +#: templates/js/build.js:665 msgid "Quantity Per" msgstr "" -#: templates/js/build.js:648 templates/js/build.js:1066 +#: templates/js/build.js:735 templates/js/build.js:1153 #: templates/stock_table.html:59 msgid "Order stock" msgstr "" -#: templates/js/build.js:701 +#: templates/js/build.js:788 msgid "No builds matching query" msgstr "" -#: templates/js/build.js:718 templates/js/part.js:390 templates/js/part.js:634 -#: templates/js/stock.js:509 templates/js/stock.js:941 +#: templates/js/build.js:805 templates/js/part.js:390 templates/js/part.js:635 +#: templates/js/stock.js:514 templates/js/stock.js:966 msgid "Select" msgstr "" -#: templates/js/build.js:738 +#: templates/js/build.js:825 msgid "Build order is overdue" msgstr "" -#: templates/js/build.js:837 +#: templates/js/build.js:924 msgid "No parts allocated for" msgstr "" @@ -6612,27 +6740,39 @@ msgstr "" msgid "No manufacturer parts found" msgstr "" -#: templates/js/company.js:148 templates/js/company.js:246 +#: templates/js/company.js:148 templates/js/company.js:347 #: templates/js/part.js:68 templates/js/part.js:153 msgid "Template part" -msgstr "" +msgstr "Şablon Parça" -#: templates/js/company.js:152 templates/js/company.js:250 +#: templates/js/company.js:152 templates/js/company.js:351 #: templates/js/part.js:72 templates/js/part.js:157 msgid "Assembled part" msgstr "" -#: templates/js/company.js:227 +#: templates/js/company.js:226 +msgid "No parameters found" +msgstr "" + +#: templates/js/company.js:262 +msgid "Edit parameter" +msgstr "" + +#: templates/js/company.js:263 +msgid "Delete parameter" +msgstr "" + +#: templates/js/company.js:328 msgid "No supplier parts found" msgstr "" #: templates/js/filters.js:167 templates/js/filters.js:397 msgid "true" -msgstr "" +msgstr "doğru" #: templates/js/filters.js:171 templates/js/filters.js:398 msgid "false" -msgstr "" +msgstr "yanlış" #: templates/js/filters.js:193 msgid "Select filter" @@ -6656,27 +6796,27 @@ msgstr "" #: templates/js/label.js:11 msgid "Stock item(s) must be selected before printing labels" -msgstr "" +msgstr "Etiket yazdırılmadan önce stok kalemleri seçilmeli" #: templates/js/label.js:29 templates/js/label.js:79 msgid "No Labels Found" -msgstr "" +msgstr "Etiket Bulunamadı" #: templates/js/label.js:30 msgid "No labels found which match selected stock item(s)" -msgstr "" +msgstr "Seçili stok kalemleri için etiket bulunamadı" #: templates/js/label.js:61 msgid "Select Stock Locations" -msgstr "" +msgstr "Stok Konumu Seç" #: templates/js/label.js:62 msgid "Stock location(s) must be selected before printing labels" -msgstr "" +msgstr "Etiket yazdırılmadan önce stok konumları seçilmeli" #: templates/js/label.js:80 msgid "No labels found which match selected stock location(s)" -msgstr "" +msgstr "Seçili konumlarla eşleşen etiket bulunamadı" #: templates/js/label.js:154 msgid "stock items selected" @@ -6684,11 +6824,11 @@ msgstr "" #: templates/js/label.js:162 msgid "Select Label" -msgstr "" +msgstr "Etiket Seç" #: templates/js/label.js:177 msgid "Select Label Template" -msgstr "" +msgstr "Etiket Şablonu Seç" #: templates/js/modals.js:265 msgid "Waiting for server..." @@ -6710,76 +6850,76 @@ msgstr "" msgid "Loading Data" msgstr "" -#: templates/js/modals.js:567 templates/js/modals.js:845 +#: templates/js/modals.js:567 templates/js/modals.js:860 #: templates/modals.html:30 templates/modals.html:55 msgid "Submit" msgstr "" -#: templates/js/modals.js:797 +#: templates/js/modals.js:811 msgid "Invalid response from server" msgstr "" -#: templates/js/modals.js:797 +#: templates/js/modals.js:811 msgid "Form data missing from server response" msgstr "" -#: templates/js/modals.js:810 +#: templates/js/modals.js:824 msgid "Error posting form data" msgstr "" -#: templates/js/modals.js:901 +#: templates/js/modals.js:921 msgid "JSON response missing form data" msgstr "" -#: templates/js/modals.js:911 +#: templates/js/modals.js:931 msgid "No Response" msgstr "" -#: templates/js/modals.js:912 +#: templates/js/modals.js:932 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/modals.js:916 +#: templates/js/modals.js:936 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/modals.js:917 +#: templates/js/modals.js:937 msgid "Server returned error code 400" msgstr "" -#: templates/js/modals.js:921 +#: templates/js/modals.js:941 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/modals.js:922 +#: templates/js/modals.js:942 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/modals.js:926 +#: templates/js/modals.js:946 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/modals.js:927 +#: templates/js/modals.js:947 msgid "You do not have the required permissions to access this function" -msgstr "" +msgstr "Bu fonksiyona erişmek için gerekli izinlere sahip değilsiniz" -#: templates/js/modals.js:931 +#: templates/js/modals.js:951 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/modals.js:932 +#: templates/js/modals.js:952 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/modals.js:936 +#: templates/js/modals.js:956 msgid "Error 408: Timeout" msgstr "" -#: templates/js/modals.js:937 +#: templates/js/modals.js:957 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/modals.js:940 +#: templates/js/modals.js:960 msgid "Error requesting form data" msgstr "" @@ -6795,6 +6935,10 @@ msgstr "" msgid "No sales orders found" msgstr "" +#: templates/js/order.js:343 +msgid "No sales order allocations found" +msgstr "" + #: templates/js/part.js:10 msgid "YES" msgstr "" @@ -6821,41 +6965,41 @@ msgstr "" #: templates/js/part.js:194 msgid "No variants found" -msgstr "" +msgstr "Çeşit bulunamadı" -#: templates/js/part.js:280 templates/js/part.js:518 +#: templates/js/part.js:280 templates/js/part.js:519 msgid "No parts found" msgstr "" -#: templates/js/part.js:457 +#: templates/js/part.js:458 msgid "No category" msgstr "" -#: templates/js/part.js:475 templates/js/table_filters.js:323 +#: templates/js/part.js:476 templates/js/table_filters.js:323 msgid "Low stock" msgstr "" -#: templates/js/part.js:659 templates/js/stock.js:965 +#: templates/js/part.js:660 templates/js/stock.js:990 msgid "Path" msgstr "" -#: templates/js/part.js:702 +#: templates/js/part.js:703 msgid "No test templates matching query" -msgstr "" +msgstr "Sorgu ile eşleşen test şablonu bulunamadı" -#: templates/js/part.js:753 templates/js/stock.js:75 +#: templates/js/part.js:754 templates/js/stock.js:75 msgid "Edit test result" msgstr "" -#: templates/js/part.js:754 templates/js/stock.js:76 +#: templates/js/part.js:755 templates/js/stock.js:76 msgid "Delete test result" msgstr "" -#: templates/js/part.js:760 +#: templates/js/part.js:761 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/part.js:805 +#: templates/js/part.js:806 msgid "Single Price Difference" msgstr "" @@ -6865,11 +7009,11 @@ msgstr "" #: templates/js/report.js:55 msgid "Select Report Template" -msgstr "" +msgstr "Rapor Şablonu Seç" #: templates/js/report.js:70 msgid "Select Test Report Template" -msgstr "" +msgstr "Test Raporu Şablonu Seç" #: templates/js/report.js:99 msgid "Stock item(s) must be selected before printing reports" @@ -6883,7 +7027,7 @@ msgstr "" #: templates/js/report.js:117 msgid "No report templates found which match selected stock item(s)" -msgstr "" +msgstr "Seçili stok kalemleri için rapor şablonu bulunamadı" #: templates/js/report.js:152 msgid "Select Builds" @@ -6895,7 +7039,7 @@ msgstr "" #: templates/js/report.js:170 msgid "No report templates found which match selected build(s)" -msgstr "" +msgstr "Seçili yapım işleri için rapor şablonu bulunamadı" #: templates/js/report.js:205 msgid "Select Parts" @@ -6907,7 +7051,7 @@ msgstr "" #: templates/js/report.js:224 msgid "No report templates found which match selected part(s)" -msgstr "" +msgstr "Seçili parçalar için rapor şablonu bulunamadı" #: templates/js/report.js:259 msgid "Select Purchase Orders" @@ -6919,7 +7063,7 @@ msgstr "" #: templates/js/report.js:278 templates/js/report.js:332 msgid "No report templates found which match selected orders" -msgstr "" +msgstr "Seçili emirler için rapor şablonu bulunamadı" #: templates/js/report.js:313 msgid "Select Sales Orders" @@ -6953,155 +7097,155 @@ msgstr "" msgid "Test Date" msgstr "" -#: templates/js/stock.js:290 +#: templates/js/stock.js:295 msgid "In production" msgstr "" -#: templates/js/stock.js:294 +#: templates/js/stock.js:299 msgid "Installed in Stock Item" msgstr "" -#: templates/js/stock.js:302 +#: templates/js/stock.js:307 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/stock.js:334 +#: templates/js/stock.js:339 msgid "No stock items matching query" msgstr "" -#: templates/js/stock.js:355 +#: templates/js/stock.js:360 msgid "items" msgstr "" -#: templates/js/stock.js:447 +#: templates/js/stock.js:452 msgid "batches" msgstr "" -#: templates/js/stock.js:474 +#: templates/js/stock.js:479 msgid "locations" -msgstr "" +msgstr "konumlar" -#: templates/js/stock.js:476 +#: templates/js/stock.js:481 msgid "Undefined location" -msgstr "" +msgstr "Tanımsız konum" -#: templates/js/stock.js:577 +#: templates/js/stock.js:582 msgid "Stock item is in production" msgstr "" -#: templates/js/stock.js:582 +#: templates/js/stock.js:587 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/stock.js:585 +#: templates/js/stock.js:590 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/stock.js:589 +#: templates/js/stock.js:594 msgid "Stock item has expired" msgstr "" -#: templates/js/stock.js:591 +#: templates/js/stock.js:596 msgid "Stock item will expire soon" msgstr "" -#: templates/js/stock.js:595 +#: templates/js/stock.js:600 msgid "Stock item has been allocated" msgstr "" -#: templates/js/stock.js:599 +#: templates/js/stock.js:604 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/stock.js:607 +#: templates/js/stock.js:611 msgid "Stock item has been rejected" msgstr "" -#: templates/js/stock.js:611 +#: templates/js/stock.js:615 msgid "Stock item is lost" msgstr "" -#: templates/js/stock.js:614 +#: templates/js/stock.js:618 msgid "Stock item is destroyed" msgstr "" -#: templates/js/stock.js:618 templates/js/table_filters.js:143 +#: templates/js/stock.js:622 templates/js/table_filters.js:143 msgid "Depleted" msgstr "" -#: templates/js/stock.js:647 +#: templates/js/stock.js:651 msgid "Stocktake" msgstr "" -#: templates/js/stock.js:828 +#: templates/js/stock.js:853 msgid "Stock Status" msgstr "" -#: templates/js/stock.js:843 +#: templates/js/stock.js:868 msgid "Set Stock Status" msgstr "" -#: templates/js/stock.js:857 +#: templates/js/stock.js:882 msgid "Select Status Code" msgstr "" -#: templates/js/stock.js:858 +#: templates/js/stock.js:883 msgid "Status code must be selected" msgstr "" -#: templates/js/stock.js:997 +#: templates/js/stock.js:1022 msgid "Invalid date" msgstr "" -#: templates/js/stock.js:1044 +#: templates/js/stock.js:1069 msgid "Location no longer exists" -msgstr "" +msgstr "Konum artık yok" -#: templates/js/stock.js:1063 +#: templates/js/stock.js:1088 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/stock.js:1082 +#: templates/js/stock.js:1107 msgid "Customer no longer exists" msgstr "" -#: templates/js/stock.js:1100 +#: templates/js/stock.js:1125 msgid "Stock item no longer exists" msgstr "" -#: templates/js/stock.js:1123 +#: templates/js/stock.js:1148 msgid "Added" msgstr "" -#: templates/js/stock.js:1131 +#: templates/js/stock.js:1156 msgid "Removed" msgstr "" -#: templates/js/stock.js:1163 +#: templates/js/stock.js:1188 msgid "No user information" msgstr "" -#: templates/js/stock.js:1175 +#: templates/js/stock.js:1200 msgid "Edit tracking entry" msgstr "" -#: templates/js/stock.js:1176 +#: templates/js/stock.js:1201 msgid "Delete tracking entry" msgstr "" -#: templates/js/stock.js:1300 +#: templates/js/stock.js:1325 msgid "Create New Location" -msgstr "" +msgstr "Yeni Konum Oluştur" -#: templates/js/stock.js:1341 +#: templates/js/stock.js:1366 msgid "No installed items" msgstr "" -#: templates/js/stock.js:1364 +#: templates/js/stock.js:1389 msgid "Serial" -msgstr "" +msgstr "Seri No" -#: templates/js/stock.js:1392 +#: templates/js/stock.js:1417 msgid "Uninstall Stock Item" msgstr "" @@ -7115,11 +7259,11 @@ msgstr "" #: templates/js/table_filters.js:55 msgid "Allow Variant Stock" -msgstr "" +msgstr "Çeşit Stokuna İzin Ver" #: templates/js/table_filters.js:76 msgid "Include locations" -msgstr "" +msgstr "Konumları dahil et" #: templates/js/table_filters.js:86 templates/js/table_filters.js:87 #: templates/js/table_filters.js:300 @@ -7128,28 +7272,28 @@ msgstr "" #: templates/js/table_filters.js:97 templates/js/table_filters.js:186 msgid "Is Serialized" -msgstr "" +msgstr "Seri Numaralı" #: templates/js/table_filters.js:100 templates/js/table_filters.js:193 msgid "Serial number GTE" -msgstr "" +msgstr "Seri numarası BvE" #: templates/js/table_filters.js:101 templates/js/table_filters.js:194 msgid "Serial number greater than or equal to" -msgstr "" +msgstr "Seri numarası büyük veya eşit" #: templates/js/table_filters.js:104 templates/js/table_filters.js:197 msgid "Serial number LTE" -msgstr "" +msgstr "Seri numarası KvE" #: templates/js/table_filters.js:105 templates/js/table_filters.js:198 msgid "Serial number less than or equal to" -msgstr "" +msgstr "Seri numarası küçük veya eşit" #: templates/js/table_filters.js:108 templates/js/table_filters.js:109 #: templates/js/table_filters.js:189 templates/js/table_filters.js:190 msgid "Serial number" -msgstr "" +msgstr "Seri numarası" #: templates/js/table_filters.js:113 templates/js/table_filters.js:207 msgid "Batch code" @@ -7177,7 +7321,7 @@ msgstr "" #: templates/js/table_filters.js:139 msgid "Include stock in sublocations" -msgstr "" +msgstr "Alt konumlardaki stoku dahil et" #: templates/js/table_filters.js:144 msgid "Show stock items which are depleted" @@ -7205,11 +7349,11 @@ msgstr "" #: templates/js/table_filters.js:171 msgid "Include Variants" -msgstr "" +msgstr "Çeşitleri Dahil Et" #: templates/js/table_filters.js:172 msgid "Include stock items for variant parts" -msgstr "" +msgstr "Çeşit parçaların stok kalemlerini dahil et" #: templates/js/table_filters.js:176 msgid "Installed" @@ -7241,11 +7385,11 @@ msgstr "" #: templates/js/table_filters.js:301 msgid "Include parts in subcategories" -msgstr "" +msgstr "Alt kategorilerdeki parçaları dahil et" #: templates/js/table_filters.js:305 msgid "Has IPN" -msgstr "" +msgstr "DPN Var" #: templates/js/table_filters.js:306 msgid "Part has internal part number" @@ -7267,56 +7411,56 @@ msgstr "" msgid "Purchasable" msgstr "" -#: templates/js/tables.js:321 +#: templates/js/tables.js:323 msgid "Loading data" msgstr "" -#: templates/js/tables.js:324 +#: templates/js/tables.js:326 msgid "rows per page" msgstr "" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "Showing" msgstr "" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "to" msgstr "" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "of" msgstr "" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "rows" msgstr "" -#: templates/js/tables.js:330 templates/search_form.html:6 +#: templates/js/tables.js:332 templates/search_form.html:6 #: templates/search_form.html:8 msgid "Search" msgstr "" -#: templates/js/tables.js:333 +#: templates/js/tables.js:335 msgid "No matching results" msgstr "" -#: templates/js/tables.js:336 +#: templates/js/tables.js:338 msgid "Hide/Show pagination" msgstr "" -#: templates/js/tables.js:339 +#: templates/js/tables.js:341 msgid "Refresh" msgstr "" -#: templates/js/tables.js:342 +#: templates/js/tables.js:344 msgid "Toggle" msgstr "" -#: templates/js/tables.js:345 +#: templates/js/tables.js:347 msgid "Columns" msgstr "" -#: templates/js/tables.js:348 +#: templates/js/tables.js:350 msgid "All" msgstr "" @@ -7482,7 +7626,7 @@ msgstr "" #: templates/stock_table.html:27 msgid "Barcode Actions" -msgstr "" +msgstr "Barkod İşlemleri" #: templates/stock_table.html:43 msgid "Print test reports" @@ -7560,35 +7704,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:170 +#: users/models.py:174 msgid "Permission set" msgstr "" -#: users/models.py:178 +#: users/models.py:182 msgid "Group" msgstr "" -#: users/models.py:181 +#: users/models.py:185 msgid "View" msgstr "" -#: users/models.py:181 +#: users/models.py:185 msgid "Permission to view items" msgstr "" -#: users/models.py:183 +#: users/models.py:187 msgid "Permission to add items" msgstr "" -#: users/models.py:185 +#: users/models.py:189 msgid "Change" msgstr "" -#: users/models.py:185 +#: users/models.py:189 msgid "Permissions to edit items" msgstr "" -#: users/models.py:187 +#: users/models.py:191 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po index 9892439445..34dbe857dc 100644 --- a/InvenTree/locale/zh/LC_MESSAGES/django.po +++ b/InvenTree/locale/zh/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-06-16 22:40+0000\n" -"PO-Revision-Date: 2021-06-16 22:41\n" +"POT-Creation-Date: 2021-06-24 21:38+0000\n" +"PO-Revision-Date: 2021-06-24 21:40\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" @@ -77,7 +77,7 @@ msgstr "选择分类" msgid "Duplicate serial: {n}" msgstr "" -#: InvenTree/helpers.py:384 order/models.py:247 order/models.py:357 +#: InvenTree/helpers.py:384 order/models.py:248 order/models.py:358 #: stock/views.py:1795 msgid "Invalid quantity provided" msgstr "" @@ -122,9 +122,9 @@ msgstr "注释" msgid "File comment" msgstr "文件注释" -#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1999 +#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:2022 #: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/stock.js:1154 +#: templates/js/stock.js:1179 msgid "User" msgstr "用户" @@ -132,34 +132,35 @@ msgstr "用户" msgid "upload date" msgstr "上传日期" -#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102 -#: part/models.py:686 part/models.py:2140 part/templates/part/params.html:27 -#: report/models.py:179 templates/InvenTree/search.html:137 -#: templates/InvenTree/search.html:289 templates/js/part.js:118 -#: templates/js/part.js:641 templates/js/stock.js:947 +#: InvenTree/models.py:107 InvenTree/models.py:108 company/models.py:396 +#: label/models.py:102 part/models.py:671 part/models.py:2163 +#: part/templates/part/params.html:27 report/models.py:180 +#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289 +#: templates/js/company.js:235 templates/js/part.js:118 +#: templates/js/part.js:642 templates/js/stock.js:972 msgid "Name" msgstr "名称" #: InvenTree/models.py:114 build/models.py:135 #: build/templates/build/detail.html:21 company/models.py:339 -#: company/models.py:491 company/templates/company/detail.html:27 +#: company/models.py:532 company/templates/company/detail.html:27 #: company/templates/company/manufacturer_part_base.html:72 #: company/templates/company/supplier_part_base.html:71 #: company/templates/company/supplier_part_detail.html:31 label/models.py:109 -#: order/models.py:103 order/templates/order/purchase_order_detail.html:147 -#: part/models.py:710 part/templates/part/detail.html:54 -#: part/templates/part/set_category.html:14 report/models.py:192 -#: report/models.py:505 report/models.py:544 +#: order/models.py:104 order/templates/order/purchase_order_detail.html:147 +#: part/models.py:695 part/templates/part/detail.html:54 +#: part/templates/part/set_category.html:14 report/models.py:193 +#: report/models.py:530 report/models.py:569 #: report/templates/report/inventree_build_order_base.html:118 #: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224 #: templates/InvenTree/search.html:296 #: templates/InvenTree/settings/header.html:9 templates/js/bom.js:190 -#: templates/js/build.js:746 templates/js/build.js:1014 +#: templates/js/build.js:833 templates/js/build.js:1101 #: templates/js/company.js:56 templates/js/order.js:183 #: templates/js/order.js:280 templates/js/part.js:177 templates/js/part.js:260 -#: templates/js/part.js:437 templates/js/part.js:653 templates/js/part.js:721 -#: templates/js/stock.js:552 templates/js/stock.js:959 -#: templates/js/stock.js:1004 +#: templates/js/part.js:437 templates/js/part.js:654 templates/js/part.js:722 +#: templates/js/stock.js:557 templates/js/stock.js:984 +#: templates/js/stock.js:1029 msgid "Description" msgstr "" @@ -191,15 +192,15 @@ msgstr "" msgid "Turkish" msgstr "" -#: InvenTree/status.py:93 +#: InvenTree/status.py:94 msgid "Background worker check failed" msgstr "" -#: InvenTree/status.py:97 +#: InvenTree/status.py:98 msgid "Email backend not configured" msgstr "" -#: InvenTree/status.py:100 +#: InvenTree/status.py:101 msgid "InvenTree system health checks failed" msgstr "" @@ -372,27 +373,27 @@ msgstr "" msgid "Overage must be an integer value or a percentage" msgstr "" -#: InvenTree/views.py:605 +#: InvenTree/views.py:608 msgid "Delete Item" msgstr "" -#: InvenTree/views.py:654 +#: InvenTree/views.py:657 msgid "Check box to confirm item deletion" msgstr "" -#: InvenTree/views.py:669 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:672 templates/InvenTree/settings/user.html:18 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:683 templates/InvenTree/settings/user.html:22 msgid "Set Password" msgstr "" -#: InvenTree/views.py:699 +#: InvenTree/views.py:702 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:950 templates/navbar.html:95 +#: InvenTree/views.py:953 templates/navbar.html:95 msgid "System Information" msgstr "" @@ -445,11 +446,11 @@ msgid "Order target date" msgstr "" #: build/forms.py:42 build/templates/build/build_base.html:146 -#: build/templates/build/detail.html:121 order/forms.py:109 order/forms.py:144 +#: build/templates/build/detail.html:121 order/forms.py:114 order/forms.py:149 #: order/templates/order/order_base.html:124 #: order/templates/order/sales_order_base.html:119 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/build.js:793 templates/js/order.js:200 +#: templates/js/build.js:880 templates/js/order.js:200 #: templates/js/order.js:298 msgid "Target Date" msgstr "" @@ -462,22 +463,21 @@ msgstr "" #: build/templates/build/allocation_card.html:23 #: build/templates/build/auto_allocate.html:17 #: build/templates/build/build_base.html:133 -#: build/templates/build/detail.html:31 common/models.py:699 -#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77 -#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262 -#: order/forms.py:279 order/models.py:616 order/models.py:817 +#: build/templates/build/detail.html:31 common/models.py:720 +#: company/forms.py:191 company/templates/company/supplier_part_pricing.html:77 +#: order/forms.py:193 order/forms.py:211 order/forms.py:246 order/forms.py:268 +#: order/forms.py:285 order/models.py:617 order/models.py:841 #: order/templates/order/order_wizard/match_parts.html:29 -#: order/templates/order/order_wizard/select_parts.html:32 +#: order/templates/order/order_wizard/select_parts.html:34 #: order/templates/order/purchase_order_detail.html:179 #: order/templates/order/sales_order_detail.html:70 #: order/templates/order/sales_order_detail.html:77 #: order/templates/order/sales_order_detail.html:162 -#: order/templates/order/sales_order_detail.html:230 part/forms.py:342 -#: part/forms.py:372 part/forms.py:388 part/models.py:2270 -#: part/templates/part/allocation.html:19 -#: part/templates/part/allocation.html:53 -#: part/templates/part/order_prices.html:175 -#: part/templates/part/part_pricing.html:13 +#: order/templates/order/sales_order_detail.html:234 part/forms.py:342 +#: part/forms.py:372 part/forms.py:388 part/forms.py:404 part/models.py:2293 +#: part/templates/part/internal_prices.html:98 +#: part/templates/part/order_prices.html:202 +#: part/templates/part/part_pricing.html:16 #: part/templates/part/sale_prices.html:85 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -486,9 +486,10 @@ msgstr "" #: stock/forms.py:175 stock/forms.py:308 #: stock/templates/stock/item_base.html:255 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364 -#: templates/js/bom.js:205 templates/js/build.js:486 templates/js/build.js:1024 -#: templates/js/part.js:795 templates/js/stock.js:1139 -#: templates/js/stock.js:1358 +#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:571 +#: templates/js/build.js:1111 templates/js/order.js:393 +#: templates/js/part.js:796 templates/js/stock.js:1164 +#: templates/js/stock.js:1383 msgid "Quantity" msgstr "" @@ -500,7 +501,7 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/forms.py:95 order/forms.py:234 stock/forms.py:118 +#: build/forms.py:95 order/forms.py:240 stock/forms.py:118 msgid "Serial Numbers" msgstr "" @@ -529,12 +530,12 @@ msgid "Mark build as complete" msgstr "" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 -#: order/forms.py:82 stock/forms.py:347 -#: stock/templates/stock/item_base.html:285 +#: stock/forms.py:347 stock/templates/stock/item_base.html:285 #: stock/templates/stock/stock_adjust.html:17 #: templates/InvenTree/search.html:260 templates/js/barcode.js:363 -#: templates/js/barcode.js:531 templates/js/build.js:500 -#: templates/js/stock.js:639 templates/js/stock.js:1031 +#: templates/js/barcode.js:531 templates/js/build.js:218 +#: templates/js/build.js:585 templates/js/order.js:378 +#: templates/js/stock.js:643 templates/js/stock.js:1056 msgid "Location" msgstr "" @@ -543,13 +544,13 @@ msgid "Location of completed parts" msgstr "" #: build/forms.py:215 build/templates/build/build_base.html:138 -#: build/templates/build/detail.html:59 order/models.py:468 +#: build/templates/build/detail.html:59 order/models.py:469 #: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:403 templates/InvenTree/search.html:252 -#: templates/js/barcode.js:119 templates/js/build.js:780 +#: stock/templates/stock/item_base.html:408 templates/InvenTree/search.html:252 +#: templates/js/barcode.js:119 templates/js/build.js:867 #: templates/js/order.js:187 templates/js/order.js:285 -#: templates/js/stock.js:626 templates/js/stock.js:1108 -#: templates/js/stock.js:1374 +#: templates/js/stock.js:630 templates/js/stock.js:1133 +#: templates/js/stock.js:1399 msgid "Status" msgstr "" @@ -583,16 +584,16 @@ msgstr "" #: build/models.py:66 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:73 -#: part/templates/part/allocation.html:23 #: report/templates/report/inventree_build_order_base.html:106 +#: templates/js/build.js:195 msgid "Build Order" msgstr "" #: build/models.py:67 build/templates/build/index.html:8 #: build/templates/build/index.html:15 order/templates/order/so_builds.html:12 #: order/templates/order/so_navbar.html:19 -#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:55 -#: part/templates/part/navbar.html:58 templates/InvenTree/index.html:183 +#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:57 +#: part/templates/part/navbar.html:60 templates/InvenTree/index.html:183 #: templates/InvenTree/search.html:185 #: templates/InvenTree/settings/tabs.html:34 users/models.py:43 msgid "Build Orders" @@ -602,12 +603,12 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:128 order/models.py:101 order/models.py:618 +#: build/models.py:128 order/models.py:102 order/models.py:619 #: order/templates/order/purchase_order_detail.html:174 -#: order/templates/order/sales_order_detail.html:225 part/models.py:2279 +#: order/templates/order/sales_order_detail.html:229 part/models.py:2302 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197 -#: templates/js/build.js:575 templates/js/build.js:1018 +#: templates/js/build.js:660 templates/js/build.js:1105 msgid "Reference" msgstr "" @@ -626,27 +627,27 @@ msgstr "" #: build/models.py:153 build/templates/build/auto_allocate.html:16 #: build/templates/build/build_base.html:128 -#: build/templates/build/detail.html:26 company/models.py:622 -#: order/models.py:660 order/models.py:693 -#: order/templates/order/order_wizard/select_parts.html:30 +#: build/templates/build/detail.html:26 company/models.py:663 +#: order/models.py:661 order/models.py:717 +#: order/templates/order/order_wizard/select_parts.html:32 #: order/templates/order/purchase_order_detail.html:132 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:213 part/models.py:321 -#: part/models.py:1967 part/models.py:1979 part/models.py:1997 -#: part/models.py:2072 part/models.py:2168 part/models.py:2254 -#: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29 +#: order/templates/order/sales_order_detail.html:214 part/models.py:321 +#: part/models.py:1975 part/models.py:1987 part/models.py:2002 +#: part/models.py:2020 part/models.py:2095 part/models.py:2191 +#: part/models.py:2277 part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 part/templates/part/related.html:29 #: part/templates/part/set_category.html:13 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 #: templates/InvenTree/search.html:112 templates/InvenTree/search.html:210 #: templates/js/barcode.js:362 templates/js/bom.js:163 -#: templates/js/build.js:466 templates/js/build.js:751 -#: templates/js/build.js:991 templates/js/company.js:140 -#: templates/js/company.js:238 templates/js/part.js:241 -#: templates/js/part.js:404 templates/js/stock.js:521 -#: templates/js/stock.js:1346 +#: templates/js/build.js:551 templates/js/build.js:838 +#: templates/js/build.js:1078 templates/js/company.js:140 +#: templates/js/company.js:339 templates/js/part.js:241 +#: templates/js/part.js:404 templates/js/stock.js:526 +#: templates/js/stock.js:1371 msgid "Part" msgstr "" @@ -710,16 +711,16 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:220 order/models.py:107 part/models.py:882 +#: build/models.py:220 order/models.py:108 part/models.py:867 #: part/templates/part/detail.html:126 templates/js/order.js:293 msgid "Creation Date" msgstr "" -#: build/models.py:224 order/models.py:474 +#: build/models.py:224 order/models.py:475 msgid "Target completion date" msgstr "" -#: build/models.py:228 order/models.py:220 templates/js/build.js:798 +#: build/models.py:228 order/models.py:221 templates/js/build.js:885 msgid "Completion Date" msgstr "" @@ -736,9 +737,9 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:251 build/templates/build/build_base.html:184 -#: build/templates/build/detail.html:105 order/models.py:121 +#: build/templates/build/detail.html:105 order/models.py:122 #: order/templates/order/order_base.html:138 -#: order/templates/order/sales_order_base.html:140 part/models.py:886 +#: order/templates/order/sales_order_base.html:140 part/models.py:871 #: report/templates/report/inventree_build_order_base.html:159 msgid "Responsible" msgstr "" @@ -757,26 +758,26 @@ msgstr "" msgid "External Link" msgstr "" -#: build/models.py:258 part/models.py:744 stock/models.py:462 +#: build/models.py:258 part/models.py:729 stock/models.py:462 msgid "Link to external URL" msgstr "" #: build/models.py:262 build/templates/build/navbar.html:53 -#: company/models.py:132 company/models.py:498 +#: company/models.py:132 company/models.py:539 #: company/templates/company/navbar.html:70 -#: company/templates/company/navbar.html:73 order/models.py:125 -#: order/models.py:620 order/templates/order/po_navbar.html:29 -#: order/templates/order/po_navbar.html:32 -#: order/templates/order/purchase_order_detail.html:239 -#: order/templates/order/sales_order_detail.html:278 +#: company/templates/company/navbar.html:73 order/models.py:126 +#: order/models.py:621 order/templates/order/po_navbar.html:38 +#: order/templates/order/po_navbar.html:41 +#: order/templates/order/purchase_order_detail.html:243 +#: order/templates/order/sales_order_detail.html:309 #: order/templates/order/so_navbar.html:33 -#: order/templates/order/so_navbar.html:36 part/models.py:871 -#: part/templates/part/navbar.html:134 +#: order/templates/order/so_navbar.html:36 part/models.py:856 +#: part/templates/part/navbar.html:142 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377 #: stock/models.py:532 stock/models.py:1667 stock/models.py:1769 #: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37 -#: templates/js/bom.js:356 templates/js/stock.js:141 templates/js/stock.js:674 +#: templates/js/bom.js:356 templates/js/stock.js:141 templates/js/stock.js:699 msgid "Notes" msgstr "" @@ -809,11 +810,11 @@ msgstr "" msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1188 order/models.py:791 +#: build/models.py:1188 order/models.py:815 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1192 order/models.py:794 +#: build/models.py:1192 order/models.py:818 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -827,7 +828,7 @@ msgid "Selected stock item not found in BOM for part '{p}'" msgstr "" #: build/models.py:1316 stock/templates/stock/item_base.html:317 -#: templates/InvenTree/search.html:183 templates/js/build.js:724 +#: templates/InvenTree/search.html:183 templates/js/build.js:811 #: templates/navbar.html:29 msgid "Build" msgstr "" @@ -836,15 +837,13 @@ msgstr "" msgid "Build to allocate parts" msgstr "" -#: build/models.py:1333 part/templates/part/allocation.html:18 -#: part/templates/part/allocation.html:24 -#: part/templates/part/allocation.html:31 -#: part/templates/part/allocation.html:49 -#: stock/templates/stock/item_base.html:8 +#: build/models.py:1333 stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:31 #: stock/templates/stock/item_base.html:339 -#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:841 -#: templates/js/stock.js:1090 +#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:206 +#: templates/js/build.js:211 templates/js/build.js:928 +#: templates/js/order.js:366 templates/js/order.js:371 +#: templates/js/stock.js:1115 msgid "Stock Item" msgstr "" @@ -880,7 +879,7 @@ msgstr "" msgid "Auto Allocate" msgstr "" -#: build/templates/build/allocate.html:25 templates/js/build.js:656 +#: build/templates/build/allocate.html:25 templates/js/build.js:743 msgid "Unallocate stock" msgstr "" @@ -917,15 +916,15 @@ msgstr "" #: order/templates/order/sales_order_detail.html:160 #: report/templates/report/inventree_test_report_base.html:75 #: stock/models.py:454 stock/templates/stock/item_base.html:249 -#: templates/js/build.js:484 +#: templates/js/build.js:569 msgid "Serial Number" msgstr "" #: build/templates/build/attachments.html:12 #: build/templates/build/navbar.html:43 build/templates/build/navbar.html:46 -#: order/templates/order/po_navbar.html:26 -#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:125 -#: part/templates/part/navbar.html:128 stock/templates/stock/navbar.html:47 +#: order/templates/order/po_navbar.html:35 +#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:133 +#: part/templates/part/navbar.html:136 stock/templates/stock/navbar.html:47 #: stock/templates/stock/navbar.html:50 msgid "Attachments" msgstr "" @@ -1037,11 +1036,10 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:170 -#: build/templates/build/detail.html:84 order/models.py:691 +#: build/templates/build/detail.html:84 order/models.py:715 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:35 #: order/templates/order/sales_order_ship.html:25 -#: part/templates/part/allocation.html:30 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 #: stock/templates/stock/item_base.html:279 templates/js/order.js:245 @@ -1185,7 +1183,10 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:46 stock/forms.py:169 stock/forms.py:375 +#: build/templates/build/detail.html:46 order/forms.py:85 order/models.py:678 +#: order/templates/order/purchase_order_detail.html:239 +#: order/templates/order/receive_parts.html:25 stock/forms.py:169 +#: stock/forms.py:375 msgid "Destination" msgstr "" @@ -1194,15 +1195,15 @@ msgid "Destination location not specified" msgstr "" #: build/templates/build/detail.html:70 -#: stock/templates/stock/item_base.html:303 templates/js/stock.js:634 -#: templates/js/stock.js:1381 templates/js/table_filters.js:112 +#: stock/templates/stock/item_base.html:303 templates/js/stock.js:638 +#: templates/js/stock.js:1406 templates/js/table_filters.js:112 #: templates/js/table_filters.js:206 msgid "Batch" msgstr "" #: build/templates/build/detail.html:116 #: order/templates/order/order_base.html:111 -#: order/templates/order/sales_order_base.html:113 templates/js/build.js:788 +#: order/templates/order/sales_order_base.html:113 templates/js/build.js:875 msgid "Created" msgstr "" @@ -1210,7 +1211,7 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:132 templates/js/build.js:766 +#: build/templates/build/detail.html:132 templates/js/build.js:853 msgid "Completed" msgstr "" @@ -1248,9 +1249,9 @@ msgstr "" #: build/templates/build/navbar.html:15 #: company/templates/company/navbar.html:15 -#: order/templates/order/po_navbar.html:14 -#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15 -#: templates/js/stock.js:1019 +#: order/templates/order/po_navbar.html:15 +#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:17 +#: templates/js/stock.js:1044 msgid "Details" msgstr "" @@ -1285,8 +1286,8 @@ msgstr "" #: build/templates/build/notes.html:26 company/templates/company/notes.html:24 #: order/templates/order/order_notes.html:27 #: order/templates/order/sales_order_notes.html:29 -#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:482 -#: stock/templates/stock/item_base.html:492 +#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:487 +#: stock/templates/stock/item_base.html:497 #: stock/templates/stock/item_notes.html:26 msgid "Save" msgstr "" @@ -1411,8 +1412,8 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:585 -#: templates/js/build.js:848 templates/js/build.js:1031 +#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:670 +#: templates/js/build.js:935 templates/js/build.js:1118 msgid "Available" msgstr "" @@ -1598,8 +1599,8 @@ msgstr "" msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:153 part/models.py:2170 part/templates/part/detail.html:160 -#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25 +#: common/models.py:153 part/models.py:2193 part/templates/part/detail.html:160 +#: report/models.py:186 stock/forms.py:259 templates/js/table_filters.js:25 #: templates/js/table_filters.js:315 msgid "Template" msgstr "" @@ -1608,7 +1609,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:160 part/models.py:834 part/templates/part/detail.html:170 +#: common/models.py:160 part/models.py:819 part/templates/part/detail.html:170 #: templates/js/table_filters.js:128 templates/js/table_filters.js:327 msgid "Assembly" msgstr "" @@ -1617,7 +1618,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:167 part/models.py:840 part/templates/part/detail.html:180 +#: common/models.py:167 part/models.py:825 part/templates/part/detail.html:180 #: templates/js/table_filters.js:331 msgid "Component" msgstr "" @@ -1626,7 +1627,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:174 part/models.py:851 part/templates/part/detail.html:200 +#: common/models.py:174 part/models.py:836 part/templates/part/detail.html:200 msgid "Purchaseable" msgstr "" @@ -1634,7 +1635,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:181 part/models.py:856 part/templates/part/detail.html:210 +#: common/models.py:181 part/models.py:841 part/templates/part/detail.html:210 #: templates/js/table_filters.js:339 msgid "Salable" msgstr "" @@ -1643,7 +1644,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:188 part/models.py:846 part/templates/part/detail.html:190 +#: common/models.py:188 part/models.py:831 part/templates/part/detail.html:190 #: templates/js/table_filters.js:33 templates/js/table_filters.js:343 msgid "Trackable" msgstr "" @@ -1652,7 +1653,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:195 part/models.py:866 part/templates/part/detail.html:150 +#: common/models.py:195 part/models.py:851 part/templates/part/detail.html:150 #: templates/js/table_filters.js:29 msgid "Virtual" msgstr "" @@ -1669,160 +1670,185 @@ msgstr "" msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:209 templates/stats.html:25 -msgid "Debug Mode" +#: common/models.py:209 +msgid "Show Price in Forms" msgstr "" #: common/models.py:210 -msgid "Generate reports in debug mode (HTML output)" +msgid "Display part price in some forms" msgstr "" #: common/models.py:216 -msgid "Page Size" +msgid "Internal Prices" msgstr "" #: common/models.py:217 +msgid "Enable internal prices for parts" +msgstr "" + +#: common/models.py:223 +msgid "Internal Price as BOM-Price" +msgstr "" + +#: common/models.py:224 +msgid "Use the internal price (if set) in BOM-price calculations" +msgstr "" + +#: common/models.py:230 templates/stats.html:25 +msgid "Debug Mode" +msgstr "" + +#: common/models.py:231 +msgid "Generate reports in debug mode (HTML output)" +msgstr "" + +#: common/models.py:237 +msgid "Page Size" +msgstr "" + +#: common/models.py:238 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:227 +#: common/models.py:248 msgid "Test Reports" msgstr "" -#: common/models.py:228 +#: common/models.py:249 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:234 +#: common/models.py:255 msgid "Stock Expiry" msgstr "" -#: common/models.py:235 +#: common/models.py:256 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:241 +#: common/models.py:262 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:242 +#: common/models.py:263 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:248 +#: common/models.py:269 msgid "Stock Stale Time" msgstr "" -#: common/models.py:249 +#: common/models.py:270 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:251 part/templates/part/detail.html:121 +#: common/models.py:272 part/templates/part/detail.html:121 msgid "days" msgstr "" -#: common/models.py:256 +#: common/models.py:277 msgid "Build Expired Stock" msgstr "" -#: common/models.py:257 +#: common/models.py:278 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:263 +#: common/models.py:284 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:264 +#: common/models.py:285 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:270 +#: common/models.py:291 msgid "Group by Part" msgstr "" -#: common/models.py:271 +#: common/models.py:292 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:277 +#: common/models.py:298 msgid "Recent Stock Count" msgstr "" -#: common/models.py:278 +#: common/models.py:299 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:284 +#: common/models.py:305 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:285 +#: common/models.py:306 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:290 +#: common/models.py:311 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:291 +#: common/models.py:312 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:295 +#: common/models.py:316 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:296 +#: common/models.py:317 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:301 +#: common/models.py:322 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:302 +#: common/models.py:323 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:525 +#: common/models.py:546 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:527 +#: common/models.py:548 msgid "Settings value" msgstr "" -#: common/models.py:562 +#: common/models.py:583 msgid "Must be an integer value" msgstr "" -#: common/models.py:585 +#: common/models.py:606 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:596 +#: common/models.py:617 msgid "Value must be an integer value" msgstr "" -#: common/models.py:619 +#: common/models.py:640 msgid "Key string must be unique" msgstr "" -#: common/models.py:700 company/forms.py:177 +#: common/models.py:721 company/forms.py:192 msgid "Price break quantity" msgstr "" -#: common/models.py:708 company/templates/company/supplier_part_pricing.html:82 +#: common/models.py:729 company/templates/company/supplier_part_pricing.html:82 +#: part/templates/part/internal_prices.html:103 #: part/templates/part/sale_prices.html:90 templates/js/bom.js:271 msgid "Price" msgstr "" -#: common/models.py:709 +#: common/models.py:730 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:798 +#: common/models.py:822 msgid "Default" msgstr "" @@ -1843,7 +1869,9 @@ msgid "Supplied value must be a boolean" msgstr "" #: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42 -#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27 +#: order/templates/order/po_navbar.html:19 +#: order/templates/order/po_navbar.html:22 order/views.py:582 +#: part/templates/part/bom_upload/upload_file.html:27 msgid "Upload File" msgstr "" @@ -1877,29 +1905,29 @@ msgstr "" msgid "Image URL" msgstr "" -#: company/forms.py:118 templates/js/part.js:786 +#: company/forms.py:133 templates/js/part.js:787 msgid "Single Price" msgstr "" -#: company/forms.py:120 +#: company/forms.py:135 msgid "Single quantity price" msgstr "" -#: company/forms.py:128 company/models.py:321 +#: company/forms.py:143 company/models.py:321 msgid "Select manufacturer" msgstr "" -#: company/forms.py:134 company/models.py:328 +#: company/forms.py:149 company/models.py:328 msgid "Manufacturer Part Number" msgstr "" -#: company/forms.py:136 company/models.py:327 +#: company/forms.py:151 company/models.py:327 #: company/templates/company/manufacturer_part_base.html:89 #: company/templates/company/manufacturer_part_detail.html:26 #: company/templates/company/supplier_part_base.html:102 #: company/templates/company/supplier_part_detail.html:35 #: order/templates/order/purchase_order_detail.html:162 part/bom.py:171 -#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307 +#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:408 msgid "MPN" msgstr "" @@ -1952,11 +1980,11 @@ msgstr "" msgid "Point of contact" msgstr "" -#: company/models.py:121 company/models.py:333 company/models.py:485 -#: order/models.py:105 part/models.py:743 +#: company/models.py:121 company/models.py:333 company/models.py:526 +#: order/models.py:106 part/models.py:728 #: report/templates/report/inventree_build_order_base.html:165 -#: templates/js/company.js:188 templates/js/company.js:318 -#: templates/js/part.js:497 +#: templates/js/company.js:188 templates/js/company.js:419 +#: templates/js/part.js:498 msgid "Link" msgstr "" @@ -1964,7 +1992,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:129 part/models.py:753 +#: company/models.py:129 part/models.py:738 msgid "Image" msgstr "" @@ -1992,12 +2020,12 @@ msgstr "" msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:305 company/models.py:456 stock/models.py:407 +#: company/models.py:305 company/models.py:497 stock/models.py:407 #: stock/templates/stock/item_base.html:235 msgid "Base Part" msgstr "" -#: company/models.py:309 company/models.py:460 order/views.py:1587 +#: company/models.py:309 company/models.py:501 order/views.py:1597 msgid "Select part" msgstr "" @@ -2008,7 +2036,7 @@ msgstr "" #: company/templates/company/supplier_part_detail.html:34 part/bom.py:170 #: part/bom.py:241 stock/templates/stock/item_base.html:352 #: templates/js/company.js:44 templates/js/company.js:165 -#: templates/js/company.js:289 +#: templates/js/company.js:390 msgid "Manufacturer" msgstr "" @@ -2020,87 +2048,112 @@ msgstr "" msgid "Manufacturer part description" msgstr "" -#: company/models.py:466 company/templates/company/detail.html:62 +#: company/models.py:390 company/models.py:520 +#: company/templates/company/manufacturer_part_base.html:6 +#: company/templates/company/manufacturer_part_base.html:19 +#: stock/templates/stock/item_base.html:362 +msgid "Manufacturer Part" +msgstr "" + +#: company/models.py:397 +msgid "Parameter name" +msgstr "" + +#: company/models.py:403 part/templates/part/params.html:28 +#: report/templates/report/inventree_test_report_base.html:90 +#: stock/models.py:1756 templates/InvenTree/settings/header.html:8 +#: templates/js/company.js:241 templates/js/stock.js:137 +msgid "Value" +msgstr "" + +#: company/models.py:404 +msgid "Parameter value" +msgstr "" + +#: company/models.py:410 part/models.py:813 part/models.py:2165 +#: part/templates/part/detail.html:106 part/templates/part/params.html:29 +#: templates/js/company.js:247 +msgid "Units" +msgstr "" + +#: company/models.py:411 +msgid "Parameter units" +msgstr "" + +#: company/models.py:507 company/templates/company/detail.html:62 #: company/templates/company/supplier_part_base.html:84 -#: company/templates/company/supplier_part_detail.html:25 order/models.py:192 +#: company/templates/company/supplier_part_detail.html:25 order/models.py:193 #: order/templates/order/order_base.html:92 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175 -#: part/bom.py:286 stock/templates/stock/item_base.html:364 -#: templates/js/company.js:48 templates/js/company.js:263 +#: part/bom.py:286 stock/templates/stock/item_base.html:369 +#: templates/js/company.js:48 templates/js/company.js:364 #: templates/js/order.js:170 msgid "Supplier" msgstr "" -#: company/models.py:467 +#: company/models.py:508 msgid "Select supplier" msgstr "" -#: company/models.py:472 company/templates/company/supplier_part_base.html:88 +#: company/models.py:513 company/templates/company/supplier_part_base.html:88 #: company/templates/company/supplier_part_detail.html:26 #: order/templates/order/purchase_order_detail.html:153 part/bom.py:176 #: part/bom.py:287 msgid "SKU" msgstr "" -#: company/models.py:473 +#: company/models.py:514 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:479 -#: company/templates/company/manufacturer_part_base.html:6 -#: company/templates/company/manufacturer_part_base.html:19 -#: stock/templates/stock/item_base.html:357 -msgid "Manufacturer Part" -msgstr "" - -#: company/models.py:480 +#: company/models.py:521 msgid "Select manufacturer part" msgstr "" -#: company/models.py:486 +#: company/models.py:527 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:492 +#: company/models.py:533 msgid "Supplier part description" msgstr "" -#: company/models.py:497 company/templates/company/supplier_part_base.html:116 -#: company/templates/company/supplier_part_detail.html:38 part/models.py:2282 +#: company/models.py:538 company/templates/company/supplier_part_base.html:116 +#: company/templates/company/supplier_part_detail.html:38 part/models.py:2305 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" -#: company/models.py:501 part/models.py:1614 +#: company/models.py:542 part/models.py:1606 msgid "base cost" msgstr "" -#: company/models.py:501 part/models.py:1614 +#: company/models.py:542 part/models.py:1606 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:503 company/templates/company/supplier_part_base.html:109 +#: company/models.py:544 company/templates/company/supplier_part_base.html:109 #: stock/models.py:431 stock/templates/stock/item_base.html:310 -#: templates/js/stock.js:670 +#: templates/js/stock.js:695 msgid "Packaging" msgstr "" -#: company/models.py:503 +#: company/models.py:544 msgid "Part packaging" msgstr "" -#: company/models.py:505 part/models.py:1616 +#: company/models.py:546 part/models.py:1608 msgid "multiple" msgstr "" -#: company/models.py:505 +#: company/models.py:546 msgid "Order multiple" msgstr "" #: company/templates/company/assigned_stock.html:10 #: company/templates/company/navbar.html:62 -#: company/templates/company/navbar.html:65 templates/js/build.js:477 +#: company/templates/company/navbar.html:65 templates/js/build.js:562 msgid "Assigned Stock" msgstr "" @@ -2165,11 +2218,11 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/detail.html:67 order/models.py:463 +#: company/templates/company/detail.html:67 order/models.py:464 #: order/templates/order/sales_order_base.html:94 stock/models.py:449 #: stock/models.py:450 stock/templates/stock/item_base.html:262 #: templates/js/company.js:40 templates/js/order.js:267 -#: templates/js/stock.js:1072 +#: templates/js/stock.js:1097 msgid "Customer" msgstr "" @@ -2215,7 +2268,7 @@ msgstr "" #: company/templates/company/detail_manufacturer_part.html:66 #: company/templates/company/detail_supplier_part.html:66 #: part/templates/part/bom.html:159 part/templates/part/category.html:118 -#: templates/js/stock.js:1287 +#: templates/js/stock.js:1312 msgid "New Part" msgstr "" @@ -2248,13 +2301,12 @@ msgstr "" #: company/templates/company/detail_supplier_part.html:11 #: company/templates/company/manufacturer_part_navbar.html:11 -#: company/templates/company/manufacturer_part_suppliers.html:10 #: templates/InvenTree/search.html:164 msgid "Supplier Parts" msgstr "" #: company/templates/company/detail_supplier_part.html:21 -#: order/templates/order/order_wizard/select_parts.html:42 +#: order/templates/order/order_wizard/select_parts.html:44 #: order/templates/order/purchase_order_detail.html:50 msgid "Create new supplier part" msgstr "" @@ -2262,12 +2314,12 @@ msgstr "" #: company/templates/company/detail_supplier_part.html:22 #: company/templates/company/manufacturer_part_suppliers.html:17 #: order/templates/order/purchase_order_detail.html:49 -#: part/templates/part/supplier.html:17 templates/js/stock.js:1293 +#: part/templates/part/supplier.html:17 templates/js/stock.js:1318 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail_supplier_part.html:72 -#: company/templates/company/manufacturer_part_suppliers.html:47 +#: company/templates/company/manufacturer_part_suppliers.html:82 #: company/views.py:64 order/templates/order/purchase_orders.html:185 #: part/templates/part/supplier.html:50 msgid "New Supplier" @@ -2319,8 +2371,9 @@ msgid "There are %(count)s suppliers defined for this manufacturer part. If you msgstr "" #: company/templates/company/manufacturer_part_navbar.html:14 -#: company/views.py:63 part/templates/part/navbar.html:84 -#: part/templates/part/navbar.html:87 templates/InvenTree/search.html:316 +#: company/templates/company/manufacturer_part_suppliers.html:10 +#: company/views.py:63 part/templates/part/navbar.html:86 +#: part/templates/part/navbar.html:89 templates/InvenTree/search.html:316 #: templates/navbar.html:35 msgid "Suppliers" msgstr "" @@ -2332,13 +2385,13 @@ msgstr "" #: company/templates/company/manufacturer_part_navbar.html:22 #: company/templates/company/navbar.html:41 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:36 stock/api.py:54 +#: part/templates/part/navbar.html:38 stock/api.py:54 #: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196 #: templates/InvenTree/search.html:232 #: templates/InvenTree/settings/tabs.html:31 templates/js/part.js:181 -#: templates/js/part.js:305 templates/js/part.js:464 templates/js/stock.js:561 +#: templates/js/part.js:305 templates/js/part.js:465 templates/js/stock.js:566 #: templates/navbar.html:26 msgid "Stock" msgstr "" @@ -2360,11 +2413,25 @@ msgstr "" #: company/templates/company/manufacturer_part_suppliers.html:22 #: part/templates/part/manufacturer.html:24 part/templates/part/params.html:44 #: part/templates/part/related.html:44 part/templates/part/supplier.html:22 -#: stock/views.py:1002 users/models.py:187 +#: stock/views.py:1002 users/models.py:191 msgid "Delete" msgstr "" -#: company/templates/company/manufacturer_part_suppliers.html:48 +#: company/templates/company/manufacturer_part_suppliers.html:37 +#: part/templates/part/category_navbar.html:34 +#: part/templates/part/category_navbar.html:37 +#: part/templates/part/navbar.html:24 +msgid "Parameters" +msgstr "" + +#: company/templates/company/manufacturer_part_suppliers.html:43 +#: part/templates/part/params.html:18 +#: templates/InvenTree/settings/category.html:29 +#: templates/InvenTree/settings/part.html:48 +msgid "New Parameter" +msgstr "" + +#: company/templates/company/manufacturer_part_suppliers.html:83 #: part/templates/part/supplier.html:51 msgid "Create new supplier" msgstr "" @@ -2379,13 +2446,13 @@ msgstr "" msgid "Supplied Parts" msgstr "" -#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:33 +#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:35 #: stock/templates/stock/location.html:107 #: stock/templates/stock/location.html:122 #: stock/templates/stock/location.html:136 #: stock/templates/stock/location_navbar.html:22 #: stock/templates/stock/location_navbar.html:29 -#: templates/InvenTree/search.html:198 templates/js/stock.js:971 +#: templates/InvenTree/search.html:198 templates/js/stock.js:996 #: templates/stats.html:93 templates/stats.html:102 users/models.py:42 msgid "Stock Items" msgstr "" @@ -2396,7 +2463,7 @@ msgstr "" #: company/templates/company/sales_orders.html:11 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:13 -#: part/templates/part/navbar.html:104 part/templates/part/navbar.html:107 +#: part/templates/part/navbar.html:112 part/templates/part/navbar.html:115 #: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228 #: templates/InvenTree/search.html:345 #: templates/InvenTree/settings/tabs.html:40 templates/navbar.html:46 @@ -2408,7 +2475,7 @@ msgstr "" #: company/templates/company/purchase_orders.html:10 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:13 -#: part/templates/part/navbar.html:90 part/templates/part/navbar.html:93 +#: part/templates/part/navbar.html:92 part/templates/part/navbar.html:95 #: part/templates/part/orders.html:10 templates/InvenTree/index.html:205 #: templates/InvenTree/search.html:325 #: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:37 @@ -2442,7 +2509,7 @@ msgstr "" #: company/templates/company/supplier_part_base.html:7 #: company/templates/company/supplier_part_base.html:20 stock/models.py:416 -#: stock/templates/stock/item_base.html:369 templates/js/company.js:279 +#: stock/templates/stock/item_base.html:374 templates/js/company.js:380 msgid "Supplier Part" msgstr "" @@ -2490,8 +2557,8 @@ msgstr "" msgid "Pricing Information" msgstr "" -#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794 -#: part/templates/part/sale_prices.html:17 part/views.py:2733 +#: company/templates/company/supplier_part_pricing.html:19 company/views.py:855 +#: part/templates/part/sale_prices.html:17 part/views.py:2751 msgid "Add Price Break" msgstr "" @@ -2510,8 +2577,8 @@ msgstr "" msgid "Delete price break" msgstr "" -#: company/views.py:70 part/templates/part/navbar.html:78 -#: part/templates/part/navbar.html:81 templates/InvenTree/search.html:306 +#: company/views.py:70 part/templates/part/navbar.html:80 +#: part/templates/part/navbar.html:83 templates/InvenTree/search.html:306 #: templates/navbar.html:36 msgid "Manufacturers" msgstr "" @@ -2533,20 +2600,20 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:169 part/views.py:937 +#: company/views.py:169 part/views.py:948 msgid "Download Image" msgstr "" -#: company/views.py:198 part/views.py:969 +#: company/views.py:198 part/views.py:980 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:205 part/views.py:976 +#: company/views.py:205 part/views.py:987 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:214 part/views.py:985 +#: company/views.py:214 part/views.py:996 msgid "Supplied URL is not a valid image file" msgstr "" @@ -2594,27 +2661,35 @@ msgstr "" msgid "Delete Manufacturer Part" msgstr "" -#: company/views.py:528 +#: company/views.py:514 +msgid "Add Manufacturer Part Parameter" +msgstr "" + +#: company/views.py:548 +msgid "Edit Manufacturer Part Parameter" +msgstr "" + +#: company/views.py:588 msgid "Edit Supplier Part" msgstr "" -#: company/views.py:578 templates/js/stock.js:1294 +#: company/views.py:639 templates/js/stock.js:1319 msgid "Create new Supplier Part" msgstr "" -#: company/views.py:722 +#: company/views.py:783 msgid "Delete Supplier Part" msgstr "" -#: company/views.py:799 part/views.py:2737 +#: company/views.py:860 part/views.py:2755 msgid "Added new price break" msgstr "" -#: company/views.py:855 part/views.py:2781 +#: company/views.py:916 part/views.py:2799 msgid "Edit Price Break" msgstr "" -#: company/views.py:870 part/views.py:2795 +#: company/views.py:931 part/views.py:2813 msgid "Delete Price Break" msgstr "" @@ -2638,7 +2713,7 @@ msgstr "" msgid "Label template file" msgstr "" -#: label/models.py:124 report/models.py:274 +#: label/models.py:124 report/models.py:297 msgid "Enabled" msgstr "" @@ -2662,7 +2737,7 @@ msgstr "" msgid "Label height, specified in mm" msgstr "" -#: label/models.py:144 +#: label/models.py:144 report/models.py:290 msgid "Filename Pattern" msgstr "" @@ -2674,8 +2749,8 @@ msgstr "" msgid "Query filters (comma-separated list of key=value pairs" msgstr "" -#: label/models.py:245 label/models.py:298 report/models.py:294 -#: report/models.py:415 report/models.py:449 +#: label/models.py:245 label/models.py:298 report/models.py:317 +#: report/models.py:440 report/models.py:474 msgid "Filters" msgstr "" @@ -2696,237 +2771,239 @@ msgstr "" msgid "Ship order" msgstr "" -#: order/forms.py:82 +#: order/forms.py:86 msgid "Receive parts to this location" msgstr "" -#: order/forms.py:103 +#: order/forms.py:108 msgid "Purchase Order reference" msgstr "" -#: order/forms.py:110 +#: order/forms.py:115 msgid "Target date for order delivery. Order will be overdue after this date." msgstr "" -#: order/forms.py:138 +#: order/forms.py:143 msgid "Enter sales order number" msgstr "" -#: order/forms.py:145 order/models.py:475 +#: order/forms.py:150 order/models.py:476 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/forms.py:236 +#: order/forms.py:242 msgid "Enter stock item serial numbers" msgstr "" -#: order/forms.py:242 +#: order/forms.py:248 msgid "Enter quantity of stock items" msgstr "" -#: order/models.py:101 +#: order/models.py:102 msgid "Order reference" msgstr "" -#: order/models.py:103 +#: order/models.py:104 msgid "Order description" msgstr "" -#: order/models.py:105 +#: order/models.py:106 msgid "Link to external page" msgstr "" -#: order/models.py:113 part/templates/part/detail.html:132 +#: order/models.py:114 part/templates/part/detail.html:132 msgid "Created By" msgstr "" -#: order/models.py:120 +#: order/models.py:121 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:125 +#: order/models.py:126 msgid "Order notes" msgstr "" -#: order/models.py:184 order/models.py:468 +#: order/models.py:185 order/models.py:469 msgid "Purchase order status" msgstr "" -#: order/models.py:193 +#: order/models.py:194 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:196 order/templates/order/order_base.html:98 +#: order/models.py:197 order/templates/order/order_base.html:98 #: templates/js/order.js:179 msgid "Supplier Reference" msgstr "" -#: order/models.py:196 +#: order/models.py:197 msgid "Supplier order reference code" msgstr "" -#: order/models.py:203 +#: order/models.py:204 msgid "received by" msgstr "" -#: order/models.py:208 +#: order/models.py:209 msgid "Issue Date" msgstr "" -#: order/models.py:209 +#: order/models.py:210 msgid "Date order was issued" msgstr "" -#: order/models.py:214 +#: order/models.py:215 msgid "Target Delivery Date" msgstr "" -#: order/models.py:215 +#: order/models.py:216 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:221 +#: order/models.py:222 msgid "Date order was completed" msgstr "" -#: order/models.py:245 part/views.py:1675 stock/models.py:304 +#: order/models.py:246 part/views.py:1686 stock/models.py:304 #: stock/models.py:1020 msgid "Quantity must be greater than zero" msgstr "" -#: order/models.py:250 +#: order/models.py:251 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:348 +#: order/models.py:349 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:352 +#: order/models.py:353 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:354 +#: order/models.py:355 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:464 +#: order/models.py:465 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:470 +#: order/models.py:471 msgid "Customer Reference " msgstr "" -#: order/models.py:470 +#: order/models.py:471 msgid "Customer order reference code" msgstr "" -#: order/models.py:478 templates/js/order.js:303 +#: order/models.py:479 templates/js/order.js:303 msgid "Shipment Date" msgstr "" -#: order/models.py:485 +#: order/models.py:486 msgid "shipped by" msgstr "" -#: order/models.py:529 +#: order/models.py:530 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:616 +#: order/models.py:617 msgid "Item quantity" msgstr "" -#: order/models.py:618 +#: order/models.py:619 msgid "Line item reference" msgstr "" -#: order/models.py:620 +#: order/models.py:621 msgid "Line item notes" msgstr "" -#: order/models.py:646 order/models.py:691 -#: part/templates/part/allocation.html:17 -#: part/templates/part/allocation.html:45 +#: order/models.py:647 order/models.py:715 templates/js/order.js:353 msgid "Order" msgstr "" -#: order/models.py:647 order/templates/order/order_base.html:9 +#: order/models.py:648 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:324 templates/js/order.js:148 -#: templates/js/stock.js:1053 +#: templates/js/stock.js:669 templates/js/stock.js:1078 msgid "Purchase Order" msgstr "" -#: order/models.py:661 +#: order/models.py:662 msgid "Supplier part" msgstr "" -#: order/models.py:664 order/templates/order/order_base.html:131 +#: order/models.py:665 order/templates/order/order_base.html:131 #: order/templates/order/purchase_order_detail.html:219 #: order/templates/order/receive_parts.html:22 #: order/templates/order/sales_order_base.html:133 msgid "Received" msgstr "" -#: order/models.py:664 +#: order/models.py:665 msgid "Number of items received" msgstr "" -#: order/models.py:671 stock/models.py:542 -#: stock/templates/stock/item_base.html:331 templates/js/stock.js:665 +#: order/models.py:672 stock/models.py:542 +#: stock/templates/stock/item_base.html:331 templates/js/stock.js:690 msgid "Purchase Price" msgstr "" -#: order/models.py:672 +#: order/models.py:673 msgid "Unit purchase price" msgstr "" -#: order/models.py:700 part/templates/part/navbar.html:101 -#: part/templates/part/order_prices.html:82 -#: part/templates/part/part_pricing.html:78 +#: order/models.py:681 +msgid "Where does the Purchaser want this item to be stored?" +msgstr "" + +#: order/models.py:724 part/templates/part/navbar.html:109 +#: part/templates/part/order_prices.html:107 +#: part/templates/part/part_pricing.html:97 msgid "Sale Price" msgstr "" -#: order/models.py:701 +#: order/models.py:725 msgid "Unit sale price" msgstr "" -#: order/models.py:776 order/models.py:778 +#: order/models.py:800 order/models.py:802 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:782 +#: order/models.py:806 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:784 +#: order/models.py:808 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:787 +#: order/models.py:811 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:797 +#: order/models.py:821 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:802 +#: order/models.py:826 msgid "Line" msgstr "" -#: order/models.py:813 +#: order/models.py:837 msgid "Item" msgstr "" -#: order/models.py:814 +#: order/models.py:838 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:817 +#: order/models.py:841 msgid "Enter stock allocation quantity" msgstr "" @@ -2955,7 +3032,7 @@ msgid "Export order to file" msgstr "" #: order/templates/order/order_base.html:72 -#: order/templates/order/po_navbar.html:11 +#: order/templates/order/po_navbar.html:12 msgid "Purchase Order Details" msgstr "" @@ -2977,8 +3054,8 @@ msgstr "" #: order/templates/order/order_base.html:180 #: order/templates/order/purchase_order_detail.html:100 #: part/templates/part/category.html:208 part/templates/part/category.html:250 -#: stock/templates/stock/location.html:191 templates/js/stock.js:711 -#: templates/js/stock.js:1299 +#: stock/templates/stock/location.html:191 templates/js/stock.js:736 +#: templates/js/stock.js:1324 msgid "New Location" msgstr "" @@ -3081,28 +3158,32 @@ msgstr "" msgid "Order is already processed. Files cannot be uploaded." msgstr "" -#: order/templates/order/order_wizard/select_parts.html:9 +#: order/templates/order/order_wizard/select_parts.html:11 msgid "Step 1 of 2 - Select Part Suppliers" msgstr "" -#: order/templates/order/order_wizard/select_parts.html:14 +#: order/templates/order/order_wizard/select_parts.html:16 msgid "Select suppliers" msgstr "" -#: order/templates/order/order_wizard/select_parts.html:18 +#: order/templates/order/order_wizard/select_parts.html:20 msgid "No purchaseable parts selected" msgstr "" -#: order/templates/order/order_wizard/select_parts.html:31 +#: order/templates/order/order_wizard/select_parts.html:33 msgid "Select Supplier" msgstr "" #: order/templates/order/order_wizard/select_parts.html:57 +msgid "No price" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:65 #, python-format msgid "Select a supplier for %(name)s" msgstr "" -#: order/templates/order/order_wizard/select_parts.html:69 +#: order/templates/order/order_wizard/select_parts.html:77 #: part/templates/part/set_category.html:32 msgid "Remove part" msgstr "" @@ -3135,15 +3216,20 @@ msgid "Select a purchase order for %(name)s" msgstr "" #: order/templates/order/po_attachments.html:12 -#: order/templates/order/po_navbar.html:23 +#: order/templates/order/po_navbar.html:32 msgid "Purchase Order Attachments" msgstr "" -#: order/templates/order/po_navbar.html:17 +#: order/templates/order/po_lineitem_delete.html:5 +#: order/templates/order/so_lineitem_delete.html:5 +msgid "Are you sure you wish to delete this line item?" +msgstr "" + +#: order/templates/order/po_navbar.html:26 msgid "Received Stock Items" msgstr "" -#: order/templates/order/po_navbar.html:20 +#: order/templates/order/po_navbar.html:29 #: order/templates/order/po_received_items.html:12 msgid "Received Items" msgstr "" @@ -3153,8 +3239,8 @@ msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:24 -#: order/templates/order/sales_order_detail.html:22 order/views.py:1311 -#: order/views.py:1394 +#: order/templates/order/sales_order_detail.html:22 order/views.py:1321 +#: order/views.py:1404 msgid "Add Line Item" msgstr "" @@ -3162,25 +3248,31 @@ msgstr "" msgid "No line items found" msgstr "" +#: order/templates/order/purchase_order_detail.html:142 +#: order/templates/order/sales_order_detail.html:223 +msgid "Total" +msgstr "" + #: order/templates/order/purchase_order_detail.html:191 -#: order/templates/order/sales_order_detail.html:235 +#: order/templates/order/sales_order_detail.html:246 msgid "Unit Price" msgstr "" #: order/templates/order/purchase_order_detail.html:198 +#: order/templates/order/sales_order_detail.html:253 msgid "Total price" msgstr "" -#: order/templates/order/purchase_order_detail.html:251 -#: order/templates/order/sales_order_detail.html:328 +#: order/templates/order/purchase_order_detail.html:255 +#: order/templates/order/sales_order_detail.html:359 msgid "Edit line item" msgstr "" -#: order/templates/order/purchase_order_detail.html:252 +#: order/templates/order/purchase_order_detail.html:256 msgid "Delete line item" msgstr "" -#: order/templates/order/purchase_order_detail.html:257 +#: order/templates/order/purchase_order_detail.html:261 msgid "Receive line item" msgstr "" @@ -3201,7 +3293,7 @@ msgstr "" #: part/templates/part/category_navbar.html:29 #: part/templates/part/category_partlist.html:10 #: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114 -#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:665 +#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:666 #: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89 #: users/models.py:40 msgid "Parts" @@ -3216,7 +3308,7 @@ msgid "Order Code" msgstr "" #: order/templates/order/receive_parts.html:21 -#: part/templates/part/part_base.html:136 templates/js/part.js:480 +#: part/templates/part/part_base.html:136 templates/js/part.js:481 msgid "On Order" msgstr "" @@ -3224,11 +3316,11 @@ msgstr "" msgid "Receive" msgstr "" -#: order/templates/order/receive_parts.html:36 +#: order/templates/order/receive_parts.html:37 msgid "Error: Referenced part has been removed" msgstr "" -#: order/templates/order/receive_parts.html:57 +#: order/templates/order/receive_parts.html:61 msgid "Remove line" msgstr "" @@ -3265,17 +3357,17 @@ msgid "Sales Order Items" msgstr "" #: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:365 -#: templates/js/build.js:637 templates/js/build.js:1054 +#: templates/js/build.js:724 templates/js/build.js:1141 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:525 -#: templates/js/build.js:859 +#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:610 +#: templates/js/build.js:946 msgid "Edit stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:527 -#: templates/js/build.js:860 +#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:612 +#: templates/js/build.js:947 msgid "Delete stock allocation" msgstr "" @@ -3283,50 +3375,50 @@ msgstr "" msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:205 +#: order/templates/order/sales_order_detail.html:206 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:589 -#: templates/js/build.js:855 +#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:675 +#: templates/js/build.js:942 msgid "Allocated" msgstr "" -#: order/templates/order/sales_order_detail.html:245 +#: order/templates/order/sales_order_detail.html:276 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:282 +#: order/templates/order/sales_order_detail.html:313 msgid "PO" msgstr "" -#: order/templates/order/sales_order_detail.html:312 +#: order/templates/order/sales_order_detail.html:343 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:651 +#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:738 msgid "Allocate stock" msgstr "" -#: order/templates/order/sales_order_detail.html:318 +#: order/templates/order/sales_order_detail.html:349 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:644 -#: templates/js/build.js:1062 +#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:731 +#: templates/js/build.js:1149 msgid "Build stock" msgstr "" -#: order/templates/order/sales_order_detail.html:325 -#: order/templates/order/sales_order_detail.html:434 +#: order/templates/order/sales_order_detail.html:356 +#: order/templates/order/sales_order_detail.html:465 msgid "Calculate price" msgstr "" -#: order/templates/order/sales_order_detail.html:329 +#: order/templates/order/sales_order_detail.html:360 msgid "Delete line item " msgstr "" -#: order/templates/order/sales_order_detail.html:440 +#: order/templates/order/sales_order_detail.html:471 msgid "Update Unit Price" msgstr "" @@ -3367,10 +3459,6 @@ msgstr "" msgid "Sales Order Attachments" msgstr "" -#: order/templates/order/so_lineitem_delete.html:5 -msgid "Are you sure you wish to delete this line item?" -msgstr "" - #: order/views.py:104 msgid "Add Purchase Order Attachment" msgstr "" @@ -3471,90 +3559,94 @@ msgstr "" msgid "No lines specified" msgstr "" -#: order/views.py:1260 +#: order/views.py:1012 +msgid "Update prices" +msgstr "" + +#: order/views.py:1270 #, python-brace-format msgid "Ordered {n} parts" msgstr "" -#: order/views.py:1320 +#: order/views.py:1330 msgid "Supplier part must be specified" msgstr "" -#: order/views.py:1326 +#: order/views.py:1336 msgid "Supplier must match for Part and Order" msgstr "" -#: order/views.py:1457 order/views.py:1475 +#: order/views.py:1467 order/views.py:1485 msgid "Edit Line Item" msgstr "" -#: order/views.py:1491 order/views.py:1503 +#: order/views.py:1501 order/views.py:1513 msgid "Delete Line Item" msgstr "" -#: order/views.py:1496 order/views.py:1508 +#: order/views.py:1506 order/views.py:1518 msgid "Deleted line item" msgstr "" -#: order/views.py:1521 +#: order/views.py:1531 msgid "Allocate Serial Numbers" msgstr "" -#: order/views.py:1566 +#: order/views.py:1576 #, python-brace-format msgid "Allocated {n} items" msgstr "" -#: order/views.py:1582 +#: order/views.py:1592 msgid "Select line item" msgstr "" -#: order/views.py:1613 -#, python-brace-format -msgid "No matching item for serial {serial}" -msgstr "" - #: order/views.py:1623 #, python-brace-format +msgid "No matching item for serial {serial}" +msgstr "" + +#: order/views.py:1633 +#, python-brace-format msgid "{serial} is not in stock" msgstr "" -#: order/views.py:1631 +#: order/views.py:1641 #, python-brace-format msgid "{serial} already allocated to an order" msgstr "" -#: order/views.py:1685 +#: order/views.py:1695 msgid "Allocate Stock to Order" msgstr "" -#: order/views.py:1759 +#: order/views.py:1769 msgid "Edit Allocation Quantity" msgstr "" -#: order/views.py:1774 +#: order/views.py:1784 msgid "Remove allocation" msgstr "" -#: order/views.py:1846 +#: order/views.py:1856 msgid "Sales order not found" msgstr "" -#: order/views.py:1852 +#: order/views.py:1862 msgid "Price not found" msgstr "" -#: order/views.py:1855 +#: order/views.py:1865 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:1860 +#: order/views.py:1870 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/bom.py:138 part/models.py:72 part/models.py:762 +#: part/bom.py:138 part/models.py:72 part/models.py:747 #: part/templates/part/category.html:66 part/templates/part/detail.html:90 msgid "Default Location" msgstr "" @@ -3632,7 +3724,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:122 part/models.py:2168 +#: part/forms.py:122 part/models.py:2191 msgid "Parent Part" msgstr "" @@ -3708,7 +3800,7 @@ msgstr "" msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:344 part/models.py:2263 +#: part/forms.py:344 part/models.py:2286 msgid "Sub part" msgstr "" @@ -3728,7 +3820,7 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:82 part/models.py:2214 +#: part/models.py:82 part/models.py:2237 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -3739,365 +3831,360 @@ msgstr "" msgid "Part Categories" msgstr "" -#: part/models.py:446 part/models.py:458 +#: part/models.py:448 part/models.py:460 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:555 +#: part/models.py:557 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:559 +#: part/models.py:561 msgid "Next available serial number is" msgstr "" -#: part/models.py:564 +#: part/models.py:566 msgid "Most recent serial number is" msgstr "" -#: part/models.py:643 +#: part/models.py:645 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:654 -msgid "Part must be unique for name, IPN and revision" -msgstr "" - -#: part/models.py:685 part/templates/part/detail.html:22 +#: part/models.py:670 part/templates/part/detail.html:22 msgid "Part name" msgstr "" -#: part/models.py:692 +#: part/models.py:677 msgid "Is Template" msgstr "" -#: part/models.py:693 +#: part/models.py:678 msgid "Is this part a template part?" msgstr "" -#: part/models.py:704 +#: part/models.py:689 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:705 part/templates/part/detail.html:60 +#: part/models.py:690 part/templates/part/detail.html:60 msgid "Variant Of" msgstr "" -#: part/models.py:711 +#: part/models.py:696 msgid "Part description" msgstr "" -#: part/models.py:716 part/templates/part/category.html:73 +#: part/models.py:701 part/templates/part/category.html:73 #: part/templates/part/detail.html:67 msgid "Keywords" msgstr "" -#: part/models.py:717 +#: part/models.py:702 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:724 part/models.py:2213 part/templates/part/detail.html:73 -#: part/templates/part/set_category.html:15 templates/js/part.js:451 +#: part/models.py:709 part/models.py:2236 part/templates/part/detail.html:73 +#: part/templates/part/set_category.html:15 templates/js/part.js:452 msgid "Category" msgstr "" -#: part/models.py:725 +#: part/models.py:710 msgid "Part category" msgstr "" -#: part/models.py:730 part/templates/part/detail.html:28 +#: part/models.py:715 part/templates/part/detail.html:28 #: part/templates/part/part_base.html:87 templates/js/part.js:169 #: templates/js/part.js:296 msgid "IPN" msgstr "" -#: part/models.py:731 +#: part/models.py:716 msgid "Internal Part Number" msgstr "" -#: part/models.py:737 +#: part/models.py:722 msgid "Part revision or version number" msgstr "" -#: part/models.py:738 part/templates/part/detail.html:35 report/models.py:198 +#: part/models.py:723 part/templates/part/detail.html:35 report/models.py:199 #: templates/js/part.js:173 msgid "Revision" msgstr "" -#: part/models.py:760 +#: part/models.py:745 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:807 part/templates/part/detail.html:97 +#: part/models.py:792 part/templates/part/detail.html:97 msgid "Default Supplier" msgstr "" -#: part/models.py:808 +#: part/models.py:793 msgid "Default supplier part" msgstr "" -#: part/models.py:815 +#: part/models.py:800 msgid "Default Expiry" msgstr "" -#: part/models.py:816 +#: part/models.py:801 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:821 part/templates/part/detail.html:113 +#: part/models.py:806 part/templates/part/detail.html:113 msgid "Minimum Stock" msgstr "" -#: part/models.py:822 +#: part/models.py:807 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:828 part/models.py:2142 part/templates/part/detail.html:106 -#: part/templates/part/params.html:29 -msgid "Units" -msgstr "" - -#: part/models.py:829 +#: part/models.py:814 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:835 +#: part/models.py:820 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:841 +#: part/models.py:826 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:847 +#: part/models.py:832 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:852 +#: part/models.py:837 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:857 +#: part/models.py:842 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:861 part/templates/part/detail.html:227 +#: part/models.py:846 part/templates/part/detail.html:227 #: templates/js/table_filters.js:21 templates/js/table_filters.js:65 #: templates/js/table_filters.js:241 templates/js/table_filters.js:310 msgid "Active" msgstr "" -#: part/models.py:862 +#: part/models.py:847 msgid "Is this part active?" msgstr "" -#: part/models.py:867 +#: part/models.py:852 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:872 +#: part/models.py:857 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:875 +#: part/models.py:860 msgid "BOM checksum" msgstr "" -#: part/models.py:875 +#: part/models.py:860 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:878 +#: part/models.py:863 msgid "BOM checked by" msgstr "" -#: part/models.py:880 +#: part/models.py:865 msgid "BOM checked date" msgstr "" -#: part/models.py:884 +#: part/models.py:869 msgid "Creation User" msgstr "" -#: part/models.py:1616 +#: part/models.py:1608 msgid "Sell multiple" msgstr "" -#: part/models.py:2040 +#: part/models.py:2063 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2057 +#: part/models.py:2080 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2077 templates/js/part.js:716 templates/js/stock.js:117 +#: part/models.py:2100 templates/js/part.js:717 templates/js/stock.js:117 msgid "Test Name" msgstr "" -#: part/models.py:2078 +#: part/models.py:2101 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2083 +#: part/models.py:2106 msgid "Test Description" msgstr "" -#: part/models.py:2084 +#: part/models.py:2107 msgid "Enter description for this test" msgstr "" -#: part/models.py:2089 templates/js/part.js:725 +#: part/models.py:2112 templates/js/part.js:726 #: templates/js/table_filters.js:227 msgid "Required" msgstr "" -#: part/models.py:2090 +#: part/models.py:2113 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2095 templates/js/part.js:733 +#: part/models.py:2118 templates/js/part.js:734 msgid "Requires Value" msgstr "" -#: part/models.py:2096 +#: part/models.py:2119 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2101 templates/js/part.js:740 +#: part/models.py:2124 templates/js/part.js:741 msgid "Requires Attachment" msgstr "" -#: part/models.py:2102 +#: part/models.py:2125 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2135 +#: part/models.py:2158 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2140 +#: part/models.py:2163 msgid "Parameter Name" msgstr "" -#: part/models.py:2142 +#: part/models.py:2165 msgid "Parameter Units" msgstr "" -#: part/models.py:2170 part/models.py:2219 part/models.py:2220 +#: part/models.py:2193 part/models.py:2242 part/models.py:2243 #: templates/InvenTree/settings/category.html:62 msgid "Parameter Template" msgstr "" -#: part/models.py:2172 +#: part/models.py:2195 msgid "Data" msgstr "" -#: part/models.py:2172 +#: part/models.py:2195 msgid "Parameter Value" msgstr "" -#: part/models.py:2224 templates/InvenTree/settings/category.html:67 +#: part/models.py:2247 templates/InvenTree/settings/category.html:67 msgid "Default Value" msgstr "" -#: part/models.py:2225 +#: part/models.py:2248 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2255 +#: part/models.py:2278 msgid "Select parent part" msgstr "" -#: part/models.py:2264 +#: part/models.py:2287 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2270 +#: part/models.py:2293 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2272 templates/js/bom.js:216 templates/js/bom.js:285 +#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:285 msgid "Optional" msgstr "" -#: part/models.py:2272 +#: part/models.py:2295 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2275 +#: part/models.py:2298 msgid "Overage" msgstr "" -#: part/models.py:2276 +#: part/models.py:2299 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2279 +#: part/models.py:2302 msgid "BOM item reference" msgstr "" -#: part/models.py:2282 +#: part/models.py:2305 msgid "BOM item notes" msgstr "" -#: part/models.py:2284 +#: part/models.py:2307 msgid "Checksum" msgstr "" -#: part/models.py:2284 +#: part/models.py:2307 msgid "BOM line checksum" msgstr "" -#: part/models.py:2288 templates/js/bom.js:302 templates/js/bom.js:309 +#: part/models.py:2311 templates/js/bom.js:302 templates/js/bom.js:309 #: templates/js/table_filters.js:51 msgid "Inherited" msgstr "" -#: part/models.py:2289 +#: part/models.py:2312 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2294 templates/js/bom.js:294 +#: part/models.py:2317 templates/js/bom.js:294 msgid "Allow Variants" msgstr "" -#: part/models.py:2295 +#: part/models.py:2318 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2371 part/views.py:1681 part/views.py:1733 +#: part/models.py:2394 part/views.py:1692 part/views.py:1744 #: stock/models.py:294 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2380 part/models.py:2382 +#: part/models.py:2403 part/models.py:2405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2385 +#: part/models.py:2408 msgid "BOM Item" msgstr "" -#: part/models.py:2502 +#: part/models.py:2527 msgid "Part 1" msgstr "" -#: part/models.py:2506 +#: part/models.py:2531 msgid "Part 2" msgstr "" -#: part/models.py:2506 +#: part/models.py:2531 msgid "Select Related Part" msgstr "" -#: part/models.py:2538 +#: part/models.py:2563 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" #: part/templates/part/allocation.html:11 -msgid "Part Stock Allocations" +msgid "Build Order Allocations" +msgstr "" + +#: part/templates/part/allocation.html:24 +msgid "Sales Order Allocations" msgstr "" #: part/templates/part/attachments.html:10 @@ -4112,8 +4199,8 @@ msgstr "" msgid "Deleting this entry will remove the BOM row from the following part" msgstr "" -#: part/templates/part/bom.html:10 part/templates/part/navbar.html:48 -#: part/templates/part/navbar.html:51 +#: part/templates/part/bom.html:10 part/templates/part/navbar.html:50 +#: part/templates/part/navbar.html:53 msgid "Bill of Materials" msgstr "" @@ -4160,7 +4247,7 @@ msgstr "" msgid "Validate Bill of Materials" msgstr "" -#: part/templates/part/bom.html:61 part/views.py:1976 +#: part/templates/part/bom.html:61 part/views.py:1987 msgid "Export Bill of Materials" msgstr "" @@ -4177,7 +4264,7 @@ msgid "All selected BOM items will be deleted" msgstr "" #: part/templates/part/bom.html:160 part/views.py:585 -#: templates/js/stock.js:1288 +#: templates/js/stock.js:1313 msgid "Create New Part" msgstr "" @@ -4258,7 +4345,7 @@ msgstr "" msgid "All parts" msgstr "" -#: part/templates/part/category.html:29 part/views.py:2379 +#: part/templates/part/category.html:29 part/views.py:2397 msgid "Create new part category" msgstr "" @@ -4318,7 +4405,7 @@ msgid "View grid display" msgstr "" #: part/templates/part/category.html:209 -#: stock/templates/stock/location.html:192 templates/js/stock.js:712 +#: stock/templates/stock/location.html:192 templates/js/stock.js:737 msgid "Create new location" msgstr "" @@ -4373,14 +4460,8 @@ msgstr "" msgid "If this category is deleted, these parts will be moved to the top-level category Teile" msgstr "" -#: part/templates/part/category_navbar.html:34 -#: part/templates/part/category_navbar.html:37 -#: part/templates/part/navbar.html:22 -msgid "Parameters" -msgstr "" - #: part/templates/part/category_parametric.html:10 -#: part/templates/part/navbar.html:19 part/templates/part/params.html:10 +#: part/templates/part/navbar.html:21 part/templates/part/params.html:10 msgid "Part Parameters" msgstr "" @@ -4408,7 +4489,7 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:11 part/templates/part/navbar.html:11 +#: part/templates/part/detail.html:11 part/templates/part/navbar.html:13 msgid "Part Details" msgstr "" @@ -4488,6 +4569,36 @@ msgstr "" msgid "Part is not active" msgstr "" +#: part/templates/part/internal_prices.html:11 +#: part/templates/part/navbar.html:100 +msgid "Internal Price Information" +msgstr "" + +#: part/templates/part/internal_prices.html:19 part/views.py:2822 +msgid "Add Internal Price Break" +msgstr "" + +#: part/templates/part/internal_prices.html:28 templates/403.html:5 +#: templates/403.html:11 +msgid "Permission Denied" +msgstr "" + +#: part/templates/part/internal_prices.html:31 templates/403.html:14 +msgid "You do not have permission to view this page." +msgstr "" + +#: part/templates/part/internal_prices.html:59 +msgid "No internal price break information found" +msgstr "" + +#: part/templates/part/internal_prices.html:110 +msgid "Edit internal price break" +msgstr "" + +#: part/templates/part/internal_prices.html:111 +msgid "Delete internal price break" +msgstr "" + #: part/templates/part/manufacturer.html:11 msgid "Part Manufacturers" msgstr "" @@ -4501,127 +4612,141 @@ msgstr "" msgid "Create new manufacturer" msgstr "" -#: part/templates/part/navbar.html:26 part/templates/part/variants.html:11 +#: part/templates/part/navbar.html:28 part/templates/part/variants.html:11 msgid "Part Variants" msgstr "" -#: part/templates/part/navbar.html:29 +#: part/templates/part/navbar.html:31 msgid "Variants" msgstr "" -#: part/templates/part/navbar.html:40 +#: part/templates/part/navbar.html:42 msgid "Allocated Stock" msgstr "" -#: part/templates/part/navbar.html:43 +#: part/templates/part/navbar.html:45 msgid "Allocations" msgstr "" -#: part/templates/part/navbar.html:64 part/templates/part/navbar.html:67 +#: part/templates/part/navbar.html:66 part/templates/part/navbar.html:69 msgid "Used In" msgstr "" -#: part/templates/part/navbar.html:72 part/templates/part/order_prices.html:12 +#: part/templates/part/navbar.html:74 part/templates/part/order_prices.html:12 msgid "Order Price Information" msgstr "" -#: part/templates/part/navbar.html:75 +#: part/templates/part/navbar.html:77 msgid "Order Price" msgstr "" -#: part/templates/part/navbar.html:98 +#: part/templates/part/navbar.html:103 part/templates/part/order_prices.html:93 +#: part/templates/part/part_pricing.html:82 +msgid "Internal Price" +msgstr "" + +#: part/templates/part/navbar.html:106 msgid "Sales Price Information" msgstr "" -#: part/templates/part/navbar.html:112 part/templates/part/part_tests.html:10 +#: part/templates/part/navbar.html:120 part/templates/part/part_tests.html:10 msgid "Part Test Templates" msgstr "" -#: part/templates/part/navbar.html:115 stock/templates/stock/item_base.html:409 +#: part/templates/part/navbar.html:123 stock/templates/stock/item_base.html:414 msgid "Tests" msgstr "" -#: part/templates/part/navbar.html:119 part/templates/part/navbar.html:122 +#: part/templates/part/navbar.html:127 part/templates/part/navbar.html:130 #: part/templates/part/related.html:10 msgid "Related Parts" msgstr "" -#: part/templates/part/navbar.html:131 part/templates/part/notes.html:12 +#: part/templates/part/navbar.html:139 part/templates/part/notes.html:12 msgid "Part Notes" msgstr "" -#: part/templates/part/order_prices.html:21 +#: part/templates/part/order_prices.html:24 +#: part/templates/part/part_base.html:282 +msgid "Calculate" +msgstr "" + +#: part/templates/part/order_prices.html:31 msgid "Pricing ranges" msgstr "" -#: part/templates/part/order_prices.html:26 -#: part/templates/part/part_pricing.html:19 +#: part/templates/part/order_prices.html:36 +#: part/templates/part/part_pricing.html:22 msgid "Supplier Pricing" msgstr "" -#: part/templates/part/order_prices.html:27 -#: part/templates/part/order_prices.html:52 -#: part/templates/part/order_prices.html:83 -#: part/templates/part/part_pricing.html:23 -#: part/templates/part/part_pricing.html:49 -#: part/templates/part/part_pricing.html:81 +#: part/templates/part/order_prices.html:37 +#: part/templates/part/order_prices.html:62 +#: part/templates/part/order_prices.html:94 +#: part/templates/part/order_prices.html:108 +#: part/templates/part/part_pricing.html:26 +#: part/templates/part/part_pricing.html:52 +#: part/templates/part/part_pricing.html:85 +#: part/templates/part/part_pricing.html:100 msgid "Unit Cost" msgstr "" -#: part/templates/part/order_prices.html:34 -#: part/templates/part/order_prices.html:59 -#: part/templates/part/order_prices.html:88 -#: part/templates/part/part_pricing.html:29 -#: part/templates/part/part_pricing.html:55 -#: part/templates/part/part_pricing.html:85 +#: part/templates/part/order_prices.html:44 +#: part/templates/part/order_prices.html:69 +#: part/templates/part/order_prices.html:99 +#: part/templates/part/order_prices.html:113 +#: part/templates/part/part_pricing.html:32 +#: part/templates/part/part_pricing.html:58 +#: part/templates/part/part_pricing.html:89 +#: part/templates/part/part_pricing.html:104 msgid "Total Cost" msgstr "" -#: part/templates/part/order_prices.html:42 -#: part/templates/part/part_pricing.html:37 +#: part/templates/part/order_prices.html:52 +#: part/templates/part/part_pricing.html:40 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/order_prices.html:51 -#: part/templates/part/order_prices.html:103 -#: part/templates/part/part_pricing.html:45 +#: part/templates/part/order_prices.html:61 +#: part/templates/part/order_prices.html:128 +#: part/templates/part/part_pricing.html:48 msgid "BOM Pricing" msgstr "" -#: part/templates/part/order_prices.html:67 -#: part/templates/part/part_pricing.html:63 +#: part/templates/part/order_prices.html:77 +#: part/templates/part/part_pricing.html:66 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/order_prices.html:74 -#: part/templates/part/part_pricing.html:70 +#: part/templates/part/order_prices.html:84 +#: part/templates/part/part_pricing.html:73 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/order_prices.html:97 -#: part/templates/part/part_pricing.html:94 +#: part/templates/part/order_prices.html:122 +#: part/templates/part/part_pricing.html:113 msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/order_prices.html:113 +#: part/templates/part/order_prices.html:138 msgid "Stock Pricing" msgstr "" -#: part/templates/part/order_prices.html:121 +#: part/templates/part/order_prices.html:146 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/order_prices.html:140 +#: part/templates/part/order_prices.html:165 #, python-format msgid "Single Price - %(currency)s" msgstr "" -#: part/templates/part/order_prices.html:152 +#: part/templates/part/order_prices.html:177 #, python-format msgid "Single Price Difference - %(currency)s" msgstr "" -#: part/templates/part/order_prices.html:163 +#: part/templates/part/order_prices.html:189 #, python-format msgid "Part Single Price - %(currency)s" msgstr "" @@ -4630,19 +4755,6 @@ msgstr "" msgid "Add new parameter" msgstr "" -#: part/templates/part/params.html:18 -#: templates/InvenTree/settings/category.html:29 -#: templates/InvenTree/settings/part.html:44 -msgid "New Parameter" -msgstr "" - -#: part/templates/part/params.html:28 -#: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1756 templates/InvenTree/settings/header.html:8 -#: templates/js/stock.js:137 -msgid "Value" -msgstr "" - #: part/templates/part/params.html:41 templates/InvenTree/settings/user.html:19 msgid "Edit" msgstr "" @@ -4660,7 +4772,7 @@ msgid "Part List" msgstr "" #: part/templates/part/part_base.html:26 templates/js/company.js:156 -#: templates/js/company.js:254 templates/js/part.js:84 templates/js/part.js:161 +#: templates/js/company.js:355 templates/js/part.js:84 templates/js/part.js:161 msgid "Inactive" msgstr "" @@ -4740,14 +4852,10 @@ msgid "Can Build" msgstr "" #: part/templates/part/part_base.html:178 templates/js/part.js:312 -#: templates/js/part.js:484 +#: templates/js/part.js:485 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:265 -msgid "Calculate" -msgstr "" - #: part/templates/part/part_tests.html:17 msgid "Add Test Template" msgstr "" @@ -4816,7 +4924,7 @@ msgid "Showing stock for all variants of %(full_name)s" msgstr "" #: part/templates/part/stock_count.html:7 templates/js/bom.js:239 -#: templates/js/part.js:302 templates/js/part.js:488 +#: templates/js/part.js:302 templates/js/part.js:489 msgid "No Stock" msgstr "" @@ -4853,7 +4961,7 @@ msgstr "" msgid "New Variant" msgstr "" -#: part/templatetags/inventree_extras.py:98 +#: part/templatetags/inventree_extras.py:99 msgid "Unknown database" msgstr "" @@ -4922,227 +5030,239 @@ msgstr "" msgid "Created new part" msgstr "" -#: part/views.py:914 +#: part/views.py:925 msgid "Part QR Code" msgstr "" -#: part/views.py:1016 +#: part/views.py:1027 msgid "Upload Part Image" msgstr "" -#: part/views.py:1022 part/views.py:1057 +#: part/views.py:1033 part/views.py:1068 msgid "Updated part image" msgstr "" -#: part/views.py:1031 +#: part/views.py:1042 msgid "Select Part Image" msgstr "" -#: part/views.py:1060 +#: part/views.py:1071 msgid "Part image not found" msgstr "" -#: part/views.py:1071 +#: part/views.py:1082 msgid "Edit Part Properties" msgstr "" -#: part/views.py:1106 +#: part/views.py:1117 msgid "Duplicate BOM" msgstr "" -#: part/views.py:1136 +#: part/views.py:1147 msgid "Confirm duplication of BOM from parent" msgstr "" -#: part/views.py:1157 +#: part/views.py:1168 msgid "Validate BOM" msgstr "" -#: part/views.py:1178 +#: part/views.py:1189 msgid "Confirm that the BOM is valid" msgstr "" -#: part/views.py:1189 +#: part/views.py:1200 msgid "Validated Bill of Materials" msgstr "" -#: part/views.py:1323 +#: part/views.py:1334 msgid "No BOM file provided" msgstr "" -#: part/views.py:1684 +#: part/views.py:1695 msgid "Enter a valid quantity" msgstr "" -#: part/views.py:1709 part/views.py:1712 +#: part/views.py:1720 part/views.py:1723 msgid "Select valid part" msgstr "" -#: part/views.py:1718 +#: part/views.py:1729 msgid "Duplicate part selected" msgstr "" -#: part/views.py:1756 +#: part/views.py:1767 msgid "Select a part" msgstr "" -#: part/views.py:1762 +#: part/views.py:1773 msgid "Selected part creates a circular BOM" msgstr "" -#: part/views.py:1766 +#: part/views.py:1777 msgid "Specify quantity" msgstr "" -#: part/views.py:2028 +#: part/views.py:2039 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:2035 +#: part/views.py:2046 msgid "Part was deleted" msgstr "" -#: part/views.py:2044 +#: part/views.py:2055 msgid "Part Pricing" msgstr "" -#: part/views.py:2178 +#: part/views.py:2196 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:2188 +#: part/views.py:2206 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:2195 +#: part/views.py:2213 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:2203 +#: part/views.py:2221 msgid "Create Part Parameter" msgstr "" -#: part/views.py:2253 +#: part/views.py:2271 msgid "Edit Part Parameter" msgstr "" -#: part/views.py:2267 +#: part/views.py:2285 msgid "Delete Part Parameter" msgstr "" -#: part/views.py:2327 +#: part/views.py:2345 msgid "Edit Part Category" msgstr "" -#: part/views.py:2365 +#: part/views.py:2383 msgid "Delete Part Category" msgstr "" -#: part/views.py:2371 +#: part/views.py:2389 msgid "Part category was deleted" msgstr "" -#: part/views.py:2423 +#: part/views.py:2441 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:2524 +#: part/views.py:2542 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:2580 +#: part/views.py:2598 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:2599 +#: part/views.py:2617 msgid "Create BOM Item" msgstr "" -#: part/views.py:2669 +#: part/views.py:2687 msgid "Edit BOM item" msgstr "" -#: part/views.py:2725 +#: part/views.py:2743 msgid "Confim BOM item deletion" msgstr "" -#: report/models.py:180 +#: part/views.py:2831 +msgid "Edit Internal Price Break" +msgstr "" + +#: part/views.py:2839 +msgid "Delete Internal Price Break" +msgstr "" + +#: report/models.py:181 msgid "Template name" msgstr "" -#: report/models.py:186 +#: report/models.py:187 msgid "Report template file" msgstr "" -#: report/models.py:193 +#: report/models.py:194 msgid "Report template description" msgstr "" -#: report/models.py:199 +#: report/models.py:200 msgid "Report revision number (auto-increments)" msgstr "" -#: report/models.py:275 +#: report/models.py:291 +msgid "Pattern for generating report filenames" +msgstr "" + +#: report/models.py:298 msgid "Report template is enabled" msgstr "" -#: report/models.py:295 +#: report/models.py:318 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:303 +#: report/models.py:326 msgid "Include Installed Tests" msgstr "" -#: report/models.py:304 +#: report/models.py:327 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:347 +#: report/models.py:371 msgid "Build Filters" msgstr "" -#: report/models.py:348 +#: report/models.py:372 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:385 +#: report/models.py:410 msgid "Part Filters" msgstr "" -#: report/models.py:386 +#: report/models.py:411 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:416 +#: report/models.py:441 msgid "Purchase order query filters" msgstr "" -#: report/models.py:450 +#: report/models.py:475 msgid "Sales order query filters" msgstr "" -#: report/models.py:500 +#: report/models.py:525 msgid "Snippet" msgstr "" -#: report/models.py:501 +#: report/models.py:526 msgid "Report snippet file" msgstr "" -#: report/models.py:505 +#: report/models.py:530 msgid "Snippet file description" msgstr "" -#: report/models.py:540 +#: report/models.py:565 msgid "Asset" msgstr "" -#: report/models.py:541 +#: report/models.py:566 msgid "Report asset file" msgstr "" -#: report/models.py:544 +#: report/models.py:569 msgid "Asset file description" msgstr "" @@ -5174,7 +5294,7 @@ msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/order.js:195 templates/js/stock.js:987 +#: templates/js/order.js:195 templates/js/stock.js:1012 msgid "Date" msgstr "" @@ -5197,7 +5317,7 @@ msgid "Moved {n} parts to {loc}" msgstr "" #: stock/forms.py:114 stock/forms.py:418 stock/models.py:509 -#: stock/templates/stock/item_base.html:376 templates/js/stock.js:654 +#: stock/templates/stock/item_base.html:381 templates/js/stock.js:658 msgid "Expiry Date" msgstr "" @@ -5483,12 +5603,12 @@ msgid "Stock Item Attachments" msgstr "" #: stock/templates/stock/item_base.html:33 -#: stock/templates/stock/item_base.html:380 templates/js/table_filters.js:150 +#: stock/templates/stock/item_base.html:385 templates/js/table_filters.js:150 msgid "Expired" msgstr "" #: stock/templates/stock/item_base.html:43 -#: stock/templates/stock/item_base.html:382 templates/js/table_filters.js:155 +#: stock/templates/stock/item_base.html:387 templates/js/table_filters.js:155 msgid "Stale" msgstr "" @@ -5618,7 +5738,7 @@ msgstr "" msgid "Stock Item Details" msgstr "" -#: stock/templates/stock/item_base.html:289 templates/js/build.js:508 +#: stock/templates/stock/item_base.html:289 templates/js/build.js:593 msgid "No location set" msgstr "" @@ -5630,25 +5750,29 @@ msgstr "" msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:380 +#: stock/templates/stock/item_base.html:356 +msgid "No manufacturer set" +msgstr "" + +#: stock/templates/stock/item_base.html:385 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:382 +#: stock/templates/stock/item_base.html:387 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:389 templates/js/stock.js:660 +#: stock/templates/stock/item_base.html:394 templates/js/stock.js:664 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:394 +#: stock/templates/stock/item_base.html:399 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:398 +#: stock/templates/stock/item_base.html:403 msgid "No stocktake performed" msgstr "" @@ -5945,7 +6069,7 @@ msgstr "" msgid "Add Stock Items" msgstr "" -#: stock/views.py:1001 users/models.py:183 +#: stock/views.py:1001 users/models.py:187 msgid "Add" msgstr "" @@ -6011,7 +6135,7 @@ msgstr "" msgid "Serialize Stock" msgstr "" -#: stock/views.py:1575 templates/js/build.js:244 +#: stock/views.py:1575 templates/js/build.js:326 msgid "Create new Stock Item" msgstr "" @@ -6043,14 +6167,6 @@ msgstr "" msgid "Add Stock Tracking Entry" msgstr "" -#: templates/403.html:5 templates/403.html:11 -msgid "Permission Denied" -msgstr "" - -#: templates/403.html:14 -msgid "You do not have permission to view this page." -msgstr "" - #: templates/404.html:5 templates/404.html:11 msgid "Page Not Found" msgstr "" @@ -6119,11 +6235,11 @@ msgstr "" msgid "Enter a search query" msgstr "" -#: templates/InvenTree/search.html:268 templates/js/stock.js:298 +#: templates/InvenTree/search.html:268 templates/js/stock.js:303 msgid "Shipped to customer" msgstr "" -#: templates/InvenTree/search.html:271 templates/js/stock.js:308 +#: templates/InvenTree/search.html:271 templates/js/stock.js:313 msgid "No stock location set" msgstr "" @@ -6168,12 +6284,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/category.html:70 -#: templates/InvenTree/settings/part.html:81 +#: templates/InvenTree/settings/part.html:85 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/category.html:71 -#: templates/InvenTree/settings/part.html:82 +#: templates/InvenTree/settings/part.html:86 msgid "Delete Template" msgstr "" @@ -6221,11 +6337,11 @@ msgstr "" msgid "Part Options" msgstr "" -#: templates/InvenTree/settings/part.html:40 +#: templates/InvenTree/settings/part.html:44 msgid "Part Parameter Templates" msgstr "" -#: templates/InvenTree/settings/part.html:61 +#: templates/InvenTree/settings/part.html:65 msgid "No part parameter templates found" msgstr "" @@ -6341,47 +6457,51 @@ msgid "API Version" msgstr "" #: templates/about.html:39 +msgid "Python Version" +msgstr "" + +#: templates/about.html:44 msgid "Django Version" msgstr "" -#: templates/about.html:46 +#: templates/about.html:51 msgid "Commit Hash" msgstr "" -#: templates/about.html:53 +#: templates/about.html:58 msgid "Commit Date" msgstr "" -#: templates/about.html:58 +#: templates/about.html:63 msgid "InvenTree Documentation" msgstr "" -#: templates/about.html:63 +#: templates/about.html:68 msgid "View Code on GitHub" msgstr "" -#: templates/about.html:68 +#: templates/about.html:73 msgid "Credits" msgstr "" -#: templates/about.html:73 +#: templates/about.html:78 msgid "Mobile App" msgstr "" -#: templates/about.html:78 +#: templates/about.html:83 msgid "Submit Bug Report" msgstr "" -#: templates/about.html:85 templates/clip.html:4 +#: templates/about.html:90 templates/clip.html:4 msgid "copy to clipboard" msgstr "" -#: templates/about.html:85 +#: templates/about.html:90 msgid "copy version information" msgstr "" -#: templates/about.html:95 templates/js/modals.js:568 -#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54 +#: templates/about.html:100 templates/js/modals.js:568 +#: templates/js/modals.js:861 templates/modals.html:29 templates/modals.html:54 #: templates/modals.html:97 msgid "Close" msgstr "" @@ -6442,7 +6562,7 @@ msgstr "" msgid "Unknown response from server" msgstr "" -#: templates/js/barcode.js:119 templates/js/modals.js:901 +#: templates/js/barcode.js:119 templates/js/modals.js:921 msgid "Invalid server response" msgstr "" @@ -6506,7 +6626,7 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/bom.js:175 templates/js/build.js:1004 +#: templates/js/bom.js:175 templates/js/build.js:1091 msgid "Open subassembly" msgstr "" @@ -6542,7 +6662,7 @@ msgstr "" msgid "Delete BOM Item" msgstr "" -#: templates/js/bom.js:470 templates/js/build.js:340 templates/js/build.js:1102 +#: templates/js/bom.js:470 templates/js/build.js:423 templates/js/build.js:1189 msgid "No BOM items found" msgstr "" @@ -6562,37 +6682,45 @@ msgstr "" msgid "Delete build output" msgstr "" -#: templates/js/build.js:243 templates/stock_table.html:20 +#: templates/js/build.js:184 +msgid "No build order allocations found" +msgstr "" + +#: templates/js/build.js:222 templates/js/order.js:382 +msgid "Location not specified" +msgstr "" + +#: templates/js/build.js:325 templates/stock_table.html:20 msgid "New Stock Item" msgstr "" -#: templates/js/build.js:559 +#: templates/js/build.js:644 msgid "Required Part" msgstr "" -#: templates/js/build.js:580 +#: templates/js/build.js:665 msgid "Quantity Per" msgstr "" -#: templates/js/build.js:648 templates/js/build.js:1066 +#: templates/js/build.js:735 templates/js/build.js:1153 #: templates/stock_table.html:59 msgid "Order stock" msgstr "" -#: templates/js/build.js:701 +#: templates/js/build.js:788 msgid "No builds matching query" msgstr "" -#: templates/js/build.js:718 templates/js/part.js:390 templates/js/part.js:634 -#: templates/js/stock.js:509 templates/js/stock.js:941 +#: templates/js/build.js:805 templates/js/part.js:390 templates/js/part.js:635 +#: templates/js/stock.js:514 templates/js/stock.js:966 msgid "Select" msgstr "" -#: templates/js/build.js:738 +#: templates/js/build.js:825 msgid "Build order is overdue" msgstr "" -#: templates/js/build.js:837 +#: templates/js/build.js:924 msgid "No parts allocated for" msgstr "" @@ -6612,17 +6740,29 @@ msgstr "" msgid "No manufacturer parts found" msgstr "" -#: templates/js/company.js:148 templates/js/company.js:246 +#: templates/js/company.js:148 templates/js/company.js:347 #: templates/js/part.js:68 templates/js/part.js:153 msgid "Template part" msgstr "" -#: templates/js/company.js:152 templates/js/company.js:250 +#: templates/js/company.js:152 templates/js/company.js:351 #: templates/js/part.js:72 templates/js/part.js:157 msgid "Assembled part" msgstr "" -#: templates/js/company.js:227 +#: templates/js/company.js:226 +msgid "No parameters found" +msgstr "" + +#: templates/js/company.js:262 +msgid "Edit parameter" +msgstr "" + +#: templates/js/company.js:263 +msgid "Delete parameter" +msgstr "" + +#: templates/js/company.js:328 msgid "No supplier parts found" msgstr "" @@ -6710,76 +6850,76 @@ msgstr "" msgid "Loading Data" msgstr "" -#: templates/js/modals.js:567 templates/js/modals.js:845 +#: templates/js/modals.js:567 templates/js/modals.js:860 #: templates/modals.html:30 templates/modals.html:55 msgid "Submit" msgstr "" -#: templates/js/modals.js:797 +#: templates/js/modals.js:811 msgid "Invalid response from server" msgstr "" -#: templates/js/modals.js:797 +#: templates/js/modals.js:811 msgid "Form data missing from server response" msgstr "" -#: templates/js/modals.js:810 +#: templates/js/modals.js:824 msgid "Error posting form data" msgstr "" -#: templates/js/modals.js:901 +#: templates/js/modals.js:921 msgid "JSON response missing form data" msgstr "" -#: templates/js/modals.js:911 +#: templates/js/modals.js:931 msgid "No Response" msgstr "" -#: templates/js/modals.js:912 +#: templates/js/modals.js:932 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/modals.js:916 +#: templates/js/modals.js:936 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/modals.js:917 +#: templates/js/modals.js:937 msgid "Server returned error code 400" msgstr "" -#: templates/js/modals.js:921 +#: templates/js/modals.js:941 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/modals.js:922 +#: templates/js/modals.js:942 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/modals.js:926 +#: templates/js/modals.js:946 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/modals.js:927 +#: templates/js/modals.js:947 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/modals.js:931 +#: templates/js/modals.js:951 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/modals.js:932 +#: templates/js/modals.js:952 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/modals.js:936 +#: templates/js/modals.js:956 msgid "Error 408: Timeout" msgstr "" -#: templates/js/modals.js:937 +#: templates/js/modals.js:957 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/modals.js:940 +#: templates/js/modals.js:960 msgid "Error requesting form data" msgstr "" @@ -6795,6 +6935,10 @@ msgstr "" msgid "No sales orders found" msgstr "" +#: templates/js/order.js:343 +msgid "No sales order allocations found" +msgstr "" + #: templates/js/part.js:10 msgid "YES" msgstr "" @@ -6823,39 +6967,39 @@ msgstr "" msgid "No variants found" msgstr "" -#: templates/js/part.js:280 templates/js/part.js:518 +#: templates/js/part.js:280 templates/js/part.js:519 msgid "No parts found" msgstr "" -#: templates/js/part.js:457 +#: templates/js/part.js:458 msgid "No category" msgstr "" -#: templates/js/part.js:475 templates/js/table_filters.js:323 +#: templates/js/part.js:476 templates/js/table_filters.js:323 msgid "Low stock" msgstr "" -#: templates/js/part.js:659 templates/js/stock.js:965 +#: templates/js/part.js:660 templates/js/stock.js:990 msgid "Path" msgstr "" -#: templates/js/part.js:702 +#: templates/js/part.js:703 msgid "No test templates matching query" msgstr "" -#: templates/js/part.js:753 templates/js/stock.js:75 +#: templates/js/part.js:754 templates/js/stock.js:75 msgid "Edit test result" msgstr "" -#: templates/js/part.js:754 templates/js/stock.js:76 +#: templates/js/part.js:755 templates/js/stock.js:76 msgid "Delete test result" msgstr "" -#: templates/js/part.js:760 +#: templates/js/part.js:761 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/part.js:805 +#: templates/js/part.js:806 msgid "Single Price Difference" msgstr "" @@ -6953,155 +7097,155 @@ msgstr "" msgid "Test Date" msgstr "" -#: templates/js/stock.js:290 +#: templates/js/stock.js:295 msgid "In production" msgstr "" -#: templates/js/stock.js:294 +#: templates/js/stock.js:299 msgid "Installed in Stock Item" msgstr "" -#: templates/js/stock.js:302 +#: templates/js/stock.js:307 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/stock.js:334 +#: templates/js/stock.js:339 msgid "No stock items matching query" msgstr "" -#: templates/js/stock.js:355 +#: templates/js/stock.js:360 msgid "items" msgstr "" -#: templates/js/stock.js:447 +#: templates/js/stock.js:452 msgid "batches" msgstr "" -#: templates/js/stock.js:474 +#: templates/js/stock.js:479 msgid "locations" msgstr "" -#: templates/js/stock.js:476 +#: templates/js/stock.js:481 msgid "Undefined location" msgstr "" -#: templates/js/stock.js:577 +#: templates/js/stock.js:582 msgid "Stock item is in production" msgstr "" -#: templates/js/stock.js:582 +#: templates/js/stock.js:587 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/stock.js:585 +#: templates/js/stock.js:590 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/stock.js:589 +#: templates/js/stock.js:594 msgid "Stock item has expired" msgstr "" -#: templates/js/stock.js:591 +#: templates/js/stock.js:596 msgid "Stock item will expire soon" msgstr "" -#: templates/js/stock.js:595 +#: templates/js/stock.js:600 msgid "Stock item has been allocated" msgstr "" -#: templates/js/stock.js:599 +#: templates/js/stock.js:604 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/stock.js:607 +#: templates/js/stock.js:611 msgid "Stock item has been rejected" msgstr "" -#: templates/js/stock.js:611 +#: templates/js/stock.js:615 msgid "Stock item is lost" msgstr "" -#: templates/js/stock.js:614 +#: templates/js/stock.js:618 msgid "Stock item is destroyed" msgstr "" -#: templates/js/stock.js:618 templates/js/table_filters.js:143 +#: templates/js/stock.js:622 templates/js/table_filters.js:143 msgid "Depleted" msgstr "" -#: templates/js/stock.js:647 +#: templates/js/stock.js:651 msgid "Stocktake" msgstr "" -#: templates/js/stock.js:828 +#: templates/js/stock.js:853 msgid "Stock Status" msgstr "" -#: templates/js/stock.js:843 +#: templates/js/stock.js:868 msgid "Set Stock Status" msgstr "" -#: templates/js/stock.js:857 +#: templates/js/stock.js:882 msgid "Select Status Code" msgstr "" -#: templates/js/stock.js:858 +#: templates/js/stock.js:883 msgid "Status code must be selected" msgstr "" -#: templates/js/stock.js:997 +#: templates/js/stock.js:1022 msgid "Invalid date" msgstr "" -#: templates/js/stock.js:1044 +#: templates/js/stock.js:1069 msgid "Location no longer exists" msgstr "" -#: templates/js/stock.js:1063 +#: templates/js/stock.js:1088 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/stock.js:1082 +#: templates/js/stock.js:1107 msgid "Customer no longer exists" msgstr "" -#: templates/js/stock.js:1100 +#: templates/js/stock.js:1125 msgid "Stock item no longer exists" msgstr "" -#: templates/js/stock.js:1123 +#: templates/js/stock.js:1148 msgid "Added" msgstr "" -#: templates/js/stock.js:1131 +#: templates/js/stock.js:1156 msgid "Removed" msgstr "" -#: templates/js/stock.js:1163 +#: templates/js/stock.js:1188 msgid "No user information" msgstr "" -#: templates/js/stock.js:1175 +#: templates/js/stock.js:1200 msgid "Edit tracking entry" msgstr "" -#: templates/js/stock.js:1176 +#: templates/js/stock.js:1201 msgid "Delete tracking entry" msgstr "" -#: templates/js/stock.js:1300 +#: templates/js/stock.js:1325 msgid "Create New Location" msgstr "" -#: templates/js/stock.js:1341 +#: templates/js/stock.js:1366 msgid "No installed items" msgstr "" -#: templates/js/stock.js:1364 +#: templates/js/stock.js:1389 msgid "Serial" msgstr "" -#: templates/js/stock.js:1392 +#: templates/js/stock.js:1417 msgid "Uninstall Stock Item" msgstr "" @@ -7267,56 +7411,56 @@ msgstr "" msgid "Purchasable" msgstr "" -#: templates/js/tables.js:321 +#: templates/js/tables.js:323 msgid "Loading data" msgstr "" -#: templates/js/tables.js:324 +#: templates/js/tables.js:326 msgid "rows per page" msgstr "" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "Showing" msgstr "" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "to" msgstr "" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "of" msgstr "" -#: templates/js/tables.js:327 +#: templates/js/tables.js:329 msgid "rows" msgstr "" -#: templates/js/tables.js:330 templates/search_form.html:6 +#: templates/js/tables.js:332 templates/search_form.html:6 #: templates/search_form.html:8 msgid "Search" msgstr "" -#: templates/js/tables.js:333 +#: templates/js/tables.js:335 msgid "No matching results" msgstr "" -#: templates/js/tables.js:336 +#: templates/js/tables.js:338 msgid "Hide/Show pagination" msgstr "" -#: templates/js/tables.js:339 +#: templates/js/tables.js:341 msgid "Refresh" msgstr "" -#: templates/js/tables.js:342 +#: templates/js/tables.js:344 msgid "Toggle" msgstr "" -#: templates/js/tables.js:345 +#: templates/js/tables.js:347 msgid "Columns" msgstr "" -#: templates/js/tables.js:348 +#: templates/js/tables.js:350 msgid "All" msgstr "" @@ -7560,35 +7704,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:170 +#: users/models.py:174 msgid "Permission set" msgstr "" -#: users/models.py:178 +#: users/models.py:182 msgid "Group" msgstr "" -#: users/models.py:181 +#: users/models.py:185 msgid "View" msgstr "" -#: users/models.py:181 +#: users/models.py:185 msgid "Permission to view items" msgstr "" -#: users/models.py:183 +#: users/models.py:187 msgid "Permission to add items" msgstr "" -#: users/models.py:185 +#: users/models.py:189 msgid "Change" msgstr "" -#: users/models.py:185 +#: users/models.py:189 msgid "Permissions to edit items" msgstr "" -#: users/models.py:187 +#: users/models.py:191 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/order/forms.py b/InvenTree/order/forms.py index effa696d43..48b5245a5f 100644 --- a/InvenTree/order/forms.py +++ b/InvenTree/order/forms.py @@ -10,10 +10,17 @@ from django.utils.translation import ugettext_lazy as _ from mptt.fields import TreeNodeChoiceField +from djmoney.forms.fields import MoneyField + from InvenTree.forms import HelperForm from InvenTree.fields import RoundingDecimalFormField from InvenTree.fields import DatePickerFormField +from InvenTree.helpers import clean_decimal + +from common.models import InvenTreeSetting +from common.forms import MatchItemForm + import part.models from stock.models import StockLocation @@ -291,3 +298,37 @@ class EditSalesOrderAllocationForm(HelperForm): 'line', 'item', 'quantity'] + + +class OrderMatchItemForm(MatchItemForm): + """ Override MatchItemForm fields """ + + def get_special_field(self, col_guess, row, file_manager): + """ Set special fields """ + + # set quantity field + if 'quantity' in col_guess.lower(): + return forms.CharField( + required=False, + widget=forms.NumberInput(attrs={ + 'name': 'quantity' + str(row['index']), + 'class': 'numberinput', + 'type': 'number', + 'min': '0', + 'step': 'any', + 'value': clean_decimal(row.get('quantity', '')), + }) + ) + # set price field + elif 'price' in col_guess.lower(): + return MoneyField( + label=_(col_guess), + default_currency=InvenTreeSetting.get_setting('INVENTREE_DEFAULT_CURRENCY'), + decimal_places=5, + max_digits=19, + required=False, + default_amount=clean_decimal(row.get('purchase_price', '')), + ) + + # return default + return super().get_special_field(col_guess, row, file_manager) diff --git a/InvenTree/order/serializers.py b/InvenTree/order/serializers.py index 821e8bf343..e527b3cec9 100644 --- a/InvenTree/order/serializers.py +++ b/InvenTree/order/serializers.py @@ -17,8 +17,7 @@ from InvenTree.serializers import InvenTreeAttachmentSerializerField from company.serializers import CompanyBriefSerializer, SupplierPartSerializer from part.serializers import PartBriefSerializer -from stock.serializers import LocationBriefSerializer -from stock.serializers import StockItemSerializer, LocationSerializer +from stock.serializers import LocationBriefSerializer, StockItemSerializer, LocationSerializer from .models import PurchaseOrder, PurchaseOrderLineItem from .models import PurchaseOrderAttachment, SalesOrderAttachment diff --git a/InvenTree/order/templates/order/order_wizard/match_parts.html b/InvenTree/order/templates/order/order_wizard/match_parts.html index f97edff913..e0f030bad5 100644 --- a/InvenTree/order/templates/order/order_wizard/match_parts.html +++ b/InvenTree/order/templates/order/order_wizard/match_parts.html @@ -2,6 +2,7 @@ {% load inventree_extras %} {% load i18n %} {% load static %} +{% load crispy_forms_tags %} {% block form_alert %} {% if form.errors %} @@ -67,7 +68,7 @@ {% for field in form.visible_fields %} {% if field.name == row.quantity %} - {{ field }} + {{ field|as_crispy_field }} {% endif %} {% endfor %} {% if row.errors.quantity %} @@ -80,19 +81,19 @@ {% if item.column.guess == 'Purchase_Price' %} {% for field in form.visible_fields %} {% if field.name == row.purchase_price %} - {{ field }} + {{ field|as_crispy_field }} {% endif %} {% endfor %} {% elif item.column.guess == 'Reference' %} {% for field in form.visible_fields %} {% if field.name == row.reference %} - {{ field }} + {{ field|as_crispy_field }} {% endif %} {% endfor %} {% elif item.column.guess == 'Notes' %} {% for field in form.visible_fields %} {% if field.name == row.notes %} - {{ field }} + {{ field|as_crispy_field }} {% endif %} {% endfor %} {% else %} diff --git a/InvenTree/order/views.py b/InvenTree/order/views.py index 4a8e576a6d..98f3384ca9 100644 --- a/InvenTree/order/views.py +++ b/InvenTree/order/views.py @@ -30,7 +30,9 @@ from stock.models import StockItem, StockLocation from part.models import Part from common.models import InvenTreeSetting +from common.forms import UploadFileForm, MatchFieldForm from common.views import FileManagementFormView +from common.files import FileManager from . import forms as order_forms from part.views import PartPricing @@ -572,7 +574,28 @@ class SalesOrderShip(AjaxUpdateView): class PurchaseOrderUpload(FileManagementFormView): ''' PurchaseOrder: Upload file, match to fields and parts (using multi-Step form) ''' + class OrderFileManager(FileManager): + REQUIRED_HEADERS = [ + 'Quantity', + ] + + ITEM_MATCH_HEADERS = [ + 'Manufacturer_MPN', + 'Supplier_SKU', + ] + + OPTIONAL_HEADERS = [ + 'Purchase_Price', + 'Reference', + 'Notes', + ] + name = 'order' + form_list = [ + ('upload', UploadFileForm), + ('fields', MatchFieldForm), + ('items', order_forms.OrderMatchItemForm), + ] form_steps_template = [ 'order/order_wizard/po_upload.html', 'order/order_wizard/match_fields.html', @@ -583,7 +606,6 @@ class PurchaseOrderUpload(FileManagementFormView): _("Match Fields"), _("Match Supplier Parts"), ] - # Form field name: PurchaseOrderLineItem field form_field_map = { 'item_select': 'part', 'quantity': 'quantity', @@ -591,6 +613,7 @@ class PurchaseOrderUpload(FileManagementFormView): 'reference': 'reference', 'notes': 'notes', } + file_manager_class = OrderFileManager def get_order(self): """ Get order or return 404 """ @@ -598,6 +621,8 @@ class PurchaseOrderUpload(FileManagementFormView): return get_object_or_404(PurchaseOrder, pk=self.kwargs['pk']) def get_context_data(self, form, **kwargs): + """ Handle context data for order """ + context = super().get_context_data(form=form, **kwargs) order = self.get_order() @@ -708,26 +733,7 @@ class PurchaseOrderUpload(FileManagementFormView): """ Once all the data is in, process it to add PurchaseOrderLineItem instances to the order """ order = self.get_order() - - items = {} - - for form_key, form_value in self.get_all_cleaned_data().items(): - # Split key from row value - try: - (field, idx) = form_key.split('-') - except ValueError: - continue - - if idx not in items: - # Insert into items - items.update({ - idx: { - self.form_field_map[field]: form_value, - } - }) - else: - # Update items - items[idx][self.form_field_map[field]] = form_value + items = self.get_clean_items() # Create PurchaseOrderLineItem instances for purchase_order_item in items.values(): diff --git a/InvenTree/part/models.py b/InvenTree/part/models.py index b979f7ece5..55ecd9d5ed 100644 --- a/InvenTree/part/models.py +++ b/InvenTree/part/models.py @@ -1488,16 +1488,17 @@ class Part(MPTTModel): return True - def get_price_info(self, quantity=1, buy=True, bom=True): + def get_price_info(self, quantity=1, buy=True, bom=True, internal=False): """ Return a simplified pricing string for this part Args: quantity: Number of units to calculate price for buy: Include supplier pricing (default = True) bom: Include BOM pricing (default = True) + internal: Include internal pricing (default = False) """ - price_range = self.get_price_range(quantity, buy, bom) + price_range = self.get_price_range(quantity, buy, bom, internal) if price_range is None: return None @@ -1585,9 +1586,10 @@ class Part(MPTTModel): - Supplier price (if purchased from suppliers) - BOM price (if built from other parts) + - Internal price (if set for the part) Returns: - Minimum of the supplier price or BOM price. If no pricing available, returns None + Minimum of the supplier, BOM or internal price. If no pricing available, returns None """ # only get internal price if set and should be used @@ -2536,7 +2538,9 @@ class BomItem(models.Model): def price_range(self): """ Return the price-range for this BOM item. """ - prange = self.sub_part.get_price_range(self.quantity) + # get internal price setting + use_internal = common.models.InvenTreeSetting.get_setting('PART_BOM_USE_INTERNAL_PRICE', False) + prange = self.sub_part.get_price_range(self.quantity, intenal=use_internal) if prange is None: return prange diff --git a/InvenTree/part/templates/part/category.html b/InvenTree/part/templates/part/category.html index 44cbeac99f..ef250d4c89 100644 --- a/InvenTree/part/templates/part/category.html +++ b/InvenTree/part/templates/part/category.html @@ -8,6 +8,15 @@ {% block content %} +{% if messages %} + {% for message in messages %} +
+ {{ message|safe }} +
+ {% endfor %} +{% endif %} + +
diff --git a/InvenTree/part/templates/part/category_navbar.html b/InvenTree/part/templates/part/category_navbar.html index d84b49a311..bd61300531 100644 --- a/InvenTree/part/templates/part/category_navbar.html +++ b/InvenTree/part/templates/part/category_navbar.html @@ -1,4 +1,7 @@ {% load i18n %} +{% load inventree_extras %} + +{% settings_value 'PART_SHOW_IMPORT' as show_import %}
+{% endblock %} \ No newline at end of file diff --git a/InvenTree/part/templates/part/import_wizard/match_fields.html b/InvenTree/part/templates/part/import_wizard/match_fields.html new file mode 100644 index 0000000000..ba709bc639 --- /dev/null +++ b/InvenTree/part/templates/part/import_wizard/match_fields.html @@ -0,0 +1,99 @@ +{% extends "part/import_wizard/part_upload.html" %} +{% load inventree_extras %} +{% load i18n %} +{% load static %} + +{% block form_alert %} +{% if missing_columns and missing_columns|length > 0 %} + +{% endif %} +{% if duplicates and duplicates|length > 0 %} + +{% endif %} +{% endblock form_alert %} + +{% block form_buttons_top %} + {% if wizard.steps.prev %} + + {% endif %} + +{% endblock form_buttons_top %} + +{% block form_content %} + + + {% trans "File Fields" %} + + {% for col in form %} + +
+ + {{ col.name }} + +
+ + {% endfor %} + + + + + {% trans "Match Fields" %} + + {% for col in form %} + + {{ col }} + {% for duplicate in duplicates %} + {% if duplicate == col.value %} + + {% endif %} + {% endfor %} + + {% endfor %} + + {% for row in rows %} + {% with forloop.counter as row_index %} + + + + + {{ row_index }} + {% for item in row.data %} + + + {{ item }} + + {% endfor %} + + {% endwith %} + {% endfor %} + +{% endblock form_content %} + +{% block form_buttons_bottom %} +{% endblock form_buttons_bottom %} + +{% block js_ready %} +{{ block.super }} + +$('.fieldselect').select2({ + width: '100%', + matcher: partialMatcher, +}); + +{% endblock %} \ No newline at end of file diff --git a/InvenTree/part/templates/part/import_wizard/match_references.html b/InvenTree/part/templates/part/import_wizard/match_references.html new file mode 100644 index 0000000000..99b9ccd191 --- /dev/null +++ b/InvenTree/part/templates/part/import_wizard/match_references.html @@ -0,0 +1,91 @@ +{% extends "part/import_wizard/part_upload.html" %} +{% load inventree_extras %} +{% load i18n %} +{% load static %} +{% load crispy_forms_tags %} + +{% block form_alert %} +{% if form.errors %} +{% endif %} +{% if form_errors %} + +{% endif %} +{% endblock form_alert %} + +{% block form_buttons_top %} + {% if wizard.steps.prev %} + + {% endif %} + +{% endblock form_buttons_top %} + +{% block form_content %} + + + + {% trans "Row" %} + {% for col in columns %} + + + + + {% if col.guess %} + {{ col.guess }} + {% else %} + {{ col.name }} + {% endif %} + + {% endfor %} + + + + {% comment %} Dummy row for javascript del_row method {% endcomment %} + {% for row in rows %} + + + + + + {% add row.index 1 %} + + {% for item in row.data %} + + {% if item.column.guess %} + {% with row_name=item.column.guess|lower %} + {% for field in form.visible_fields %} + {% if field.name == row|keyvalue:row_name %} + {{ field|as_crispy_field }} + {% endif %} + {% endfor %} + {% endwith %} + {% else %} + {{ item.cell }} + {% endif %} + + + {% endfor %} + + {% endfor %} + +{% endblock form_content %} + +{% block form_buttons_bottom %} +{% endblock form_buttons_bottom %} + +{% block js_ready %} +{{ block.super }} + +$('.bomselect').select2({ + dropdownAutoWidth: true, + matcher: partialMatcher, +}); + +$('.currencyselect').select2({ + dropdownAutoWidth: true, +}); + +{% endblock %} \ No newline at end of file diff --git a/InvenTree/part/templates/part/import_wizard/part_upload.html b/InvenTree/part/templates/part/import_wizard/part_upload.html new file mode 100644 index 0000000000..87809603bb --- /dev/null +++ b/InvenTree/part/templates/part/import_wizard/part_upload.html @@ -0,0 +1,61 @@ +{% extends "part/category.html" %} +{% load inventree_extras %} +{% load i18n %} +{% load static %} + +{% block menubar %} +{% include 'part/category_navbar.html' with tab='import' %} +{% endblock %} + +{% block category_content %} +
+
+

+ {% trans "Import Parts from File" %} + {{ wizard.form.media }} +

+
+
+ {% if roles.part.change %} + +

{% blocktrans with step=wizard.steps.step1 count=wizard.steps.count %}Step {{step}} of {{count}}{% endblocktrans %} + {% if description %}- {{ description }}{% endif %}

+ + {% block form_alert %} + {% endblock form_alert %} + + + {% csrf_token %} + {% load crispy_forms_tags %} + + {% block form_buttons_top %} + {% endblock form_buttons_top %} + + + {{ wizard.management_form }} + {% block form_content %} + {% crispy wizard.form %} + {% endblock form_content %} +
+ + {% block form_buttons_bottom %} + {% if wizard.steps.prev %} + + {% endif %} + + + {% endblock form_buttons_bottom %} + + {% else %} + + {% endif %} +
+
+{% endblock %} + +{% block js_ready %} +{{ block.super }} + +{% endblock %} \ No newline at end of file diff --git a/InvenTree/part/templates/part/order_prices.html b/InvenTree/part/templates/part/order_prices.html index 5e5552c5f9..c8f0ea29a0 100644 --- a/InvenTree/part/templates/part/order_prices.html +++ b/InvenTree/part/templates/part/order_prices.html @@ -16,6 +16,7 @@ {% default_currency as currency %} {% settings_value "PART_INTERNAL_PRICE" as show_internal_price %} +
{% csrf_token %}
diff --git a/InvenTree/part/templates/part/part_base.html b/InvenTree/part/templates/part/part_base.html index 6bb1320e5a..b486e2c589 100644 --- a/InvenTree/part/templates/part/part_base.html +++ b/InvenTree/part/templates/part/part_base.html @@ -244,7 +244,14 @@ label: 'image', method: 'PATCH', success: function(data, status, xhr) { - location.reload(); + + // If image / thumbnail data present, live update + if (data.image) { + $('#part-image').attr('src', data.image); + } else { + // Otherwise, reload the page + location.reload(); + } } } ); diff --git a/InvenTree/part/test_api.py b/InvenTree/part/test_api.py index d606b12637..4922ed4e04 100644 --- a/InvenTree/part/test_api.py +++ b/InvenTree/part/test_api.py @@ -13,6 +13,7 @@ from InvenTree.status_codes import StockStatus from part.models import Part, PartCategory from stock.models import StockItem from company.models import Company +from common.models import InvenTreeSetting class PartAPITest(InvenTreeAPITestCase): @@ -311,6 +312,59 @@ class PartAPITest(InvenTreeAPITestCase): self.assertEqual(len(data['results']), n) + def test_default_values(self): + """ + Tests for 'default' values: + + Ensure that unspecified fields revert to "default" values + (as specified in the model field definition) + """ + + url = reverse('api-part-list') + + response = self.client.post(url, { + 'name': 'all defaults', + 'description': 'my test part', + 'category': 1, + }) + + data = response.data + + # Check that the un-specified fields have used correct default values + self.assertTrue(data['active']) + self.assertFalse(data['virtual']) + + # By default, parts are not purchaseable + self.assertFalse(data['purchaseable']) + + # Set the default 'purchaseable' status to True + InvenTreeSetting.set_setting( + 'PART_PURCHASEABLE', + True, + self.user + ) + + response = self.client.post(url, { + 'name': 'all defaults', + 'description': 'my test part 2', + 'category': 1, + }) + + # Part should now be purchaseable by default + self.assertTrue(response.data['purchaseable']) + + # "default" values should not be used if the value is specified + response = self.client.post(url, { + 'name': 'all defaults', + 'description': 'my test part 2', + 'category': 1, + 'active': False, + 'purchaseable': False, + }) + + self.assertFalse(response.data['active']) + self.assertFalse(response.data['purchaseable']) + class PartDetailTests(InvenTreeAPITestCase): """ @@ -391,7 +445,14 @@ class PartDetailTests(InvenTreeAPITestCase): # Try to remove the part response = self.client.delete(url) - + + # As the part is 'active' we cannot delete it + self.assertEqual(response.status_code, 405) + + # So, let's make it not active + response = self.patch(url, {'active': False}, expected_code=200) + + response = self.client.delete(url) self.assertEqual(response.status_code, 204) # Part count should have reduced @@ -542,8 +603,6 @@ class PartDetailTests(InvenTreeAPITestCase): # And now check that the image has been set p = Part.objects.get(pk=pk) - print("Image:", p.image.file) - class PartAPIAggregationTest(InvenTreeAPITestCase): """ diff --git a/InvenTree/part/test_param.py b/InvenTree/part/test_param.py index 4e6556e63d..85eea7ee57 100644 --- a/InvenTree/part/test_param.py +++ b/InvenTree/part/test_param.py @@ -23,7 +23,7 @@ class TestParams(TestCase): def test_str(self): t1 = PartParameterTemplate.objects.get(pk=1) - self.assertEquals(str(t1), 'Length (mm)') + self.assertEqual(str(t1), 'Length (mm)') p1 = PartParameter.objects.get(pk=1) self.assertEqual(str(p1), 'M2x4 LPHS : Length = 4mm') diff --git a/InvenTree/part/urls.py b/InvenTree/part/urls.py index d12612c604..c35786e5d3 100644 --- a/InvenTree/part/urls.py +++ b/InvenTree/part/urls.py @@ -128,6 +128,10 @@ part_urls = [ # Create a new part url(r'^new/?', views.PartCreate.as_view(), name='part-create'), + # Upload a part + url(r'^import/', views.PartImport.as_view(), name='part-import'), + url(r'^import-api/', views.PartImportAjax.as_view(), name='api-part-import'), + # Create a new BOM item url(r'^bom/new/?', views.BomItemCreate.as_view(), name='bom-item-create'), diff --git a/InvenTree/part/views.py b/InvenTree/part/views.py index 39e0f13b45..2f129dd30b 100644 --- a/InvenTree/part/views.py +++ b/InvenTree/part/views.py @@ -17,6 +17,7 @@ from django.views.generic import DetailView, ListView, FormView, UpdateView from django.forms.models import model_to_dict from django.forms import HiddenInput, CheckboxInput from django.conf import settings +from django.contrib import messages from moneyed import CURRENCIES from djmoney.contrib.exchange.models import convert_money @@ -40,6 +41,10 @@ from .models import PartSellPriceBreak, PartInternalPriceBreak from common.models import InvenTreeSetting from company.models import SupplierPart +from common.files import FileManager +from common.views import FileManagementFormView, FileManagementAjaxView + +from stock.models import StockLocation import common.settings as inventree_settings @@ -719,6 +724,168 @@ class PartCreate(AjaxCreateView): return initials +class PartImport(FileManagementFormView): + ''' Part: Upload file, match to fields and import parts(using multi-Step form) ''' + permission_required = 'part.add' + + class PartFileManager(FileManager): + REQUIRED_HEADERS = [ + 'Name', + 'Description', + ] + + OPTIONAL_MATCH_HEADERS = [ + 'Category', + 'default_location', + 'default_supplier', + ] + + OPTIONAL_HEADERS = [ + 'Keywords', + 'IPN', + 'Revision', + 'Link', + 'default_expiry', + 'minimum_stock', + 'Units', + 'Notes', + ] + + name = 'part' + form_steps_template = [ + 'part/import_wizard/part_upload.html', + 'part/import_wizard/match_fields.html', + 'part/import_wizard/match_references.html', + ] + form_steps_description = [ + _("Upload File"), + _("Match Fields"), + _("Match References"), + ] + + form_field_map = { + 'name': 'name', + 'description': 'description', + 'keywords': 'keywords', + 'ipn': 'ipn', + 'revision': 'revision', + 'link': 'link', + 'default_expiry': 'default_expiry', + 'minimum_stock': 'minimum_stock', + 'units': 'units', + 'notes': 'notes', + 'category': 'category', + 'default_location': 'default_location', + 'default_supplier': 'default_supplier', + } + file_manager_class = PartFileManager + + def get_field_selection(self): + """ Fill the form fields for step 3 """ + # fetch available elements + self.allowed_items = {} + self.matches = {} + + self.allowed_items['Category'] = PartCategory.objects.all() + self.matches['Category'] = ['name__contains'] + self.allowed_items['default_location'] = StockLocation.objects.all() + self.matches['default_location'] = ['name__contains'] + self.allowed_items['default_supplier'] = SupplierPart.objects.all() + self.matches['default_supplier'] = ['SKU__contains'] + + # setup + self.file_manager.setup() + # collect submitted column indexes + col_ids = {} + for col in self.file_manager.HEADERS: + index = self.get_column_index(col) + if index >= 0: + col_ids[col] = index + + # parse all rows + for row in self.rows: + # check each submitted column + for idx in col_ids: + data = row['data'][col_ids[idx]]['cell'] + + if idx in self.file_manager.OPTIONAL_MATCH_HEADERS: + try: + exact_match = self.allowed_items[idx].get(**{a: data for a in self.matches[idx]}) + except (ValueError, self.allowed_items[idx].model.DoesNotExist, self.allowed_items[idx].model.MultipleObjectsReturned): + exact_match = None + + row['match_options_' + idx] = self.allowed_items[idx] + row['match_' + idx] = exact_match + continue + + # general fields + row[idx.lower()] = data + + def done(self, form_list, **kwargs): + """ Create items """ + items = self.get_clean_items() + + import_done = 0 + import_error = [] + + # Create Part instances + for part_data in items.values(): + + # set related parts + optional_matches = {} + for idx in self.file_manager.OPTIONAL_MATCH_HEADERS: + if idx.lower() in part_data: + try: + optional_matches[idx] = self.allowed_items[idx].get(pk=int(part_data[idx.lower()])) + except (ValueError, self.allowed_items[idx].model.DoesNotExist, self.allowed_items[idx].model.MultipleObjectsReturned): + optional_matches[idx] = None + else: + optional_matches[idx] = None + + # add part + new_part = Part( + name=part_data.get('name', ''), + description=part_data.get('description', ''), + keywords=part_data.get('keywords', None), + IPN=part_data.get('ipn', None), + revision=part_data.get('revision', None), + link=part_data.get('link', None), + default_expiry=part_data.get('default_expiry', 0), + minimum_stock=part_data.get('minimum_stock', 0), + units=part_data.get('units', None), + notes=part_data.get('notes', None), + category=optional_matches['Category'], + default_location=optional_matches['default_location'], + default_supplier=optional_matches['default_supplier'], + ) + try: + new_part.save() + import_done += 1 + except ValidationError as _e: + import_error.append(', '.join(set(_e.messages))) + + # Set alerts + if import_done: + alert = f"{_('Part-Import')}
{_('Imported {n} parts').format(n=import_done)}" + messages.success(self.request, alert) + if import_error: + error_text = '\n'.join([f'
  • x{import_error.count(a)}: {a}
  • ' for a in set(import_error)]) + messages.error(self.request, f"{_('Some errors occured:')}
      {error_text}
    ") + + return HttpResponseRedirect(reverse('part-index')) + + +class PartImportAjax(FileManagementAjaxView, PartImport): + ajax_form_steps_template = [ + 'part/import_wizard/ajax_part_upload.html', + 'part/import_wizard/ajax_match_fields.html', + 'part/import_wizard/ajax_match_references.html', + ] + + def validate(self, obj, form, **kwargs): + return PartImport.validate(self, self.steps.current, form, **kwargs) + + class PartNotes(UpdateView): """ View for editing the 'notes' field of a Part object. Presents a live markdown editor. @@ -847,11 +1014,13 @@ class PartPricingView(PartDetail): # BOM Information for Pie-Chart if part.has_bom: + # get internal price setting + use_internal = InvenTreeSetting.get_setting('PART_BOM_USE_INTERNAL_PRICE', False) ctx_bom_parts = [] # iterate over all bom-items for item in part.bom_items.all(): ctx_item = {'name': str(item.sub_part)} - price, qty = item.sub_part.get_price_range(quantity), item.quantity + price, qty = item.sub_part.get_price_range(quantity, internal=use_internal), item.quantity price_min, price_max = 0, 0 if price: # check if price available diff --git a/InvenTree/stock/test_api.py b/InvenTree/stock/test_api.py index e1fb616335..729bf25a9b 100644 --- a/InvenTree/stock/test_api.py +++ b/InvenTree/stock/test_api.py @@ -354,16 +354,18 @@ class StockItemTest(StockAPITestCase): self.assertContains(response, 'does not exist', status_code=status.HTTP_400_BAD_REQUEST) # POST without quantity - response = self.client.post( + response = self.post( self.list_url, - data={ + { 'part': 1, 'location': 1, - } + }, + expected_code=201, ) - self.assertContains(response, 'This field is required', status_code=status.HTTP_400_BAD_REQUEST) - + # Item should have been created with default quantity + self.assertEqual(response.data['quantity'], 1) + # POST with quantity and part and location response = self.client.post( self.list_url, diff --git a/InvenTree/templates/InvenTree/settings/part.html b/InvenTree/templates/InvenTree/settings/part.html index 1bf5f8794a..eb9fa8ff51 100644 --- a/InvenTree/templates/InvenTree/settings/part.html +++ b/InvenTree/templates/InvenTree/settings/part.html @@ -41,6 +41,22 @@ +

    {% trans "Part Import" %}

    + + + + + + {% include "InvenTree/settings/header.html" %} + + {% include "InvenTree/settings/setting.html" with key="PART_SHOW_IMPORT" icon="fa-file-upload" %} + +
    + + +

    {% trans "Part Parameter Templates" %}

    @@ -125,4 +141,8 @@ }); }); + $("#import-part").click(function() { + launchModalForm("{% url 'api-part-import' %}?reset", {}); + }); + {% endblock %} \ No newline at end of file diff --git a/InvenTree/templates/js/stock.js b/InvenTree/templates/js/stock.js index 06bbb7c20e..b557f0c327 100644 --- a/InvenTree/templates/js/stock.js +++ b/InvenTree/templates/js/stock.js @@ -179,27 +179,32 @@ function loadStockTestResultsTable(table, options) { var match = false; var override = false; + // Extract the simplified test key var key = item.key; // Attempt to associate this result with an existing test - tableData.forEach(function(row, index) { + for (var idx = 0; idx < tableData.length; idx++) { + + var row = tableData[idx]; if (key == row.key) { item.test_name = row.test_name; item.required = row.required; - match = true; - if (row.result == null) { item.parent = parent_node; - tableData[index] = item; + tableData[idx] = item; override = true; } else { item.parent = row.pk; } + + match = true; + + break; } - }); + } // No match could be found if (!match) {